به وبگاه رسمی احمد حجازی خوش آمدید. در این وبگاه، می توانید مقالات آموزشی دست اول و اوریجینال را راجع به موضوعات مختلف برنامه نویسی از جمله برنامه نویسی وب، دروپال، آموزش فارسی VBscript، نکات و ترفند های لینوکس و ... بیابید. در تالار گفتمان می توانید سوالات خود را مطرح کنید و در اسرع وقت پاسخ خود را دریافت کنید. لطفا برای بررسی سرفصل های مطالب موجود در این وبگاه، نوار سمت راست سایت را نگاه کنید.

مقدمات وب و PHP - قسمت پنجم - دانلود و نصب دروپال بر روی XAMPP و شرح فایل های دروپال

نصب دروپال روی Xamppبه قسمت پنجم دوره آموزشی مقدمات وب خوش آمدید.

امیدوارم که قسمت های قبلی را پیگیری کرده باشید.
امروز قصد داریم Drupal را بر روی کامپیوتر شخصی مان نصب کنیم.
دروپال یک سیستم مدیریت محتوای متن باز و یک فریمورک برای توسعه ی اپلیکیشن های تحت وب می باشد.
در ادامه، روش دانلود و نصب آن را به صورت گام به گام و با تصاویر متعدد برای شما شرح خواهم داد.
همچنین برخی مطالب فنی را راجع به دروپال شرح می دهم. به همین خاطر حتی اگر کاربر حرفه ای دروپال هستید، باز هم ممکن است مطالب این مقاله برای شما جدید و آموزنده باشد.
لطفا در ادامه ی مقاله ما را همراهی نمایید.

مقدمات وب و PHP - قسمت چهارم - شروع کار با phpMyAdmin

phpmyadmin

در این قسمت قصد دارم شما را با ابزاری به نام phpMyAdmin آشنا کنم که ابزار اصلی شما برای مدیریت پایگاه داده ی MySQL در آینده خواهد بود.

phpMyAdmin یک نرم افزار است که به زبان php نوشته شده است و کاربرد آن برای مدیریت پایگاه داده های MySQL می باشد. این ابزار بسیار قدرنمند و پیشرفته می باشد و شما باید به تدریج با امکانات آن آشنا شوید.

امروز قصد داریم فقط اندکی با آن کار کنیم. در ادامه ی مقاله، با من همراه باشید.

مقدمات وب و PHP - قسمت سوم - ادامه پیکربندی XAMPP و شروع کار با PHP

htdocs

به مرحله ی سوم آمورش مقدمات وب خوش آمدید.

در این قسمت قصد داریم بیشتر با نرم افزار XAMPP آشنا شویم و قدری هم کد PHP خواهیم نوشت. در این قسمت شما یاد خواهید گرفت که چگونه از وب سروری که نصب کردید برای توسعه ی کد های PHP استفاده نمایید.

همچنین یاد می گیرید که چگونه پوشه ی htdocs را تنظیم کنید و محتویات آن را در مرورگر مشاهده کنید.

لطفا در ادامه ی مقاله ما را همراهی کنید.

مقدمات وب و PHP - قسمت دوم - پیکربندی XAMPP

XAMPP Security

سلام و خسته نباشید.

با قسمت دوم آموزش مقدمات وب در خدمت شما هستیم.

در این قسمت یاد می گیریم که چگونه کنترل پنل تحت وب xampp را تنظیم کنیم و موارد امنیتی را (مانند تنظیم پسورد ها) در آن انجام دهیم.
پسورد root را برای MySQL تنظیم خواهیم کرد و گشت و گذار مختصری در پنل xampp انجام خواهیم داد.

لطفا ادامه ی مطلب را مطالعه فرمایید.

مقدمات وب و PHP - قسمت اول - نصب XAMPP

Xampp apache mysql php

در این دوره ی آموزشی، تصمیم دارم گام به گام از صفر شروع کنم و مراحل نصب PHP و سپس دروپال رو بر روی ویندوز شرح دهم. هدف دوره، آموزش مقدماتی Drupal می باشد و تا هر مقدار که فرصت باشد، پیش خواهیم رفت.

در این دوره، فراخواهیم گرفت که نرم افزار Xampp را بر روی ویندوز نصب و تنظیم کنیم، با امکانات آن آشنا خواهیم شد و با MySQL و PHP کار خواهیم کرد. سپس Drupal را نصب خواهیم کرد و کار با آن را شروع می کنیم.

این دوره برای تمام کسانی که می خواهند از ابتدا طراحی وب مبتنی بر PHP را شروع کنند، مناسب می باشد.

آموزش ها پر از تصاویر گویا و مناسب است و همه چیز را قدم به قدم پیش خواهیم برد.

لطفا در ادامه ی مطلب با من همراه باشید و ما را از نظرات ارزشمند تان بی نصیب نگذارید!

یک پیکربندی دیگر برای امنیت دروپال

Drupal security

یک پیکربندی مناسب دیگر برای میزبانی اشتراکی سایت ها، توسط php و apache به این صورت می باشد که پروسه ی apache تحت کاربر و گروه www-data:www-data اجرا می شود. و برای هر وب سایت نیز یک کاربر و گروه در لینوکس ایجاد می کنیم.

مثلا برای سایت test1.com کاربر و گروه test1:test1 و برای سایت test2.com، کاربر و گروه test2:test2 را ایجاد می کنیم.

نکات و ترفند های لینوکس و مدیریت سرور

Debian linux

لینوکس سیستم عامل مورد علاقه ی من برای استفاده به عنوان سرور است. (هرچند که برای دسکتاپ، ویندوز را ترجیح می دهم)

من تاکنون بیش از 5 سال است که با لینوکس کار می کنم و از آن به عنوان سیستم عامل سرویس دهنده استفاده می کنم. و قصد دارم که در این وبلاگ، هر زمان که حوصله و مجال باشد، برخی از تکنیک هایی که فراگرفته ام را به اشتراک بگذارم.

رفع مشکلات تایپ در کنسول لینوکس

Linux terminal

گاهی اوقات در زمانی که با استفاده از SSH به سرور لینوکس لاگین می کنیم، متوجه می شویم که کلید های کی بورد به درستی کار نمی کند. به عنوان مثال کلید Delete و یا کلید های Home و End به جای این که کارشان را انجام دهند، فقط یک علامت ~ (تیلدا) تایپ می کنند.

این مشکل به خصوص در هاست های اشتراکی سی پنل که از jailshell استفاده می کنند، ممکن است اتفاق بیافتد. (در freebsd هم این موضوع وجود دارد. برای freebsd این مطلب را مطالعه کنید.

راه حل این مشکل بسیار ساده است. کافی است فایل ~/.inputrc زیر را ایجاد کنید. به صورت زیر:

vim ~/.inputrc

و محتویات زیر را داخل آن ذخیره کنید:

set input-meta on
set output-meta on

# some defaults / modifications for the emacs mode
$if mode=emacs

# allow the use of the Home/End keys
"\e[1~": beginning-of-line
"\e[4~": end-of-line

# allow the use of the Delete/Insert keys
"\e[3~": delete-char
"\e[2~": quoted-insert

# mappings for "page up" and "page down" to step to the beginning/end
# of the history
# "\e[5~": beginning-of-history
# "\e[6~": end-of-history

# alternate mappings for "page up" and "page down" to search the history
# "\e[5~": history-search-backward
# "\e[6~": history-search-forward

# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word

$if term=rxvt
"\e[8~": end-of-line
"\eOc": forward-word
"\eOd": backward-word
$endif

# for non RH/Debian xterm, can't hurt for RH/Debian xterm
# "\eOH": beginning-of-line
# "\eOF": end-of-line

# for freebsd console
# "\e[H": beginning-of-line
# "\e[F": end-of-line

$endif

نکات امنیتی دروپال در لینوکس

Drupal security

برای میزبانی دروپال در هاست های اشتراکی، برخی دغدغه های امنیتی وجود دارد. که من در این جا برخی از آن ها را مطرح می کنم. این مطلب برای مدیران سرور مفید خواهد بود.
سیستم عامل مورد شرح در این مطلب، لینوکس Debian 6 squeeze می باشد و دروپال مورد استفاده نسخه ی 7.25 می باشد. گرچه سایر نسخه ها و توزیع های لینوکس و دروپال نیز، مشابه خواهند بود.

مجوز فایل های اصلی دروپال

یک کانفیگ بسیار مناسب و متداول برای میزبانی اپلیکیشن های PHP به این صورت است که از وب سرور apache2 همراه با ماژول fastcgi و سرویس php-fpm استفاده می شود.
برای شرح بیشتر راجع به این نوع کانفیگ، به لینک زیر مراجعه کنید. دقت کنید که ادامه ی مطلب دقیقا بر اساس لینک زیر نمی باشد. لینک زیر فقط برای راه اندازی یک حالت خاص از کانفیگی که نام بردم می باشد:
Install Drupal in php-fpm (fastcgi) with Apache and a chroot php-fpm

نکته:برای شرح بیشتر در خصوص مجوز ها در لینوکس، این لینک را مطالعه کنید

در این پیکربندی، ما برای میزبانی هر سایت، یک کاربر جدید در لینوکس ایجاد می کنیم و در php-fpm یک pool جدید ایجاد می کنیم و تنظیم می کنیم که php-fpm برای هر سایت، با سطح دسترسی و هویت کاربر صاحب سایت اجرا شود.
فایده ی این کار این است که اگر چندین سایت مختلف داشته باشیم، هر سایت با مجوز های صاحب همان سایت اجرا می شود و اگر نفوذگر بتواند به یکی از سایت ها نفوذ کند، به سایر سایت ها دسترسی نخواهد داشت.

اما روال اجرای کار به این سادگی هم نیست. چند تا نکته را باید مد نظر قرار داد:

اولا وب سرور apache معمولا تحت کاربر www-data و گروه www-data اجرا می شود و وب سرور باید بتواند به فایل های دروپال (دست کم، پوشه ی اصلی سایت و پوشه ی files) دسترسی داشته باشد.
ثانیا، باید طوری تنظیم کنیم که سایر کاربرها، به جز www-data به فایل ها دسترسی نداشته باشند.

برای رسیدن به هدف اول، کافی است که group owner فایل های دروپال را به www-data تغییر دهیم.

chmod 711 /home/siteuser
chown siteuser:www-data -R /home/siteuser/public_html
chmod 750 /home/siteuser/public_html

اکنون که group owner فایل های دروپال با www-data تنظیم شده، باید مجوز فایل ها را طوری تنظیم کنیم که فقط php و apache به آن ها دسترسی داشته باشند. برای این منظور، مجوز پوشه ها را برابر 750 و مجوز فایل ها را برابر 640 در نظر می گیریم:

cd /home/siteuser/public_html
find -type d -exec chmod 750 {} \;
find -type f -exec chmod 640 {} \;

مجوز فایل های خاص

همچنین باید مجوز پوشه ی اصلی سایت و فایل settings.php را تنظیم کنیم. (البته این کار توسط دروپال هم انجام می شود.)

chmod 550 sites/default
chmod 440 sites/default/settings.php

مجوز فایل های جدید

اکنون مشکل در گام اول برطرف شده است، اما در گام بعدی، متوجه می شویم که فایل های جدیدی که توسط دروپال ایجاد می شود، مجوزهایشان صحیح نیست.
دو نوع فایل توسط دروپال قابل ایجاد است. یکی فایل هایی که مستقیما توسط php ایجاد شود. و دیگری فایل هایی که کاربر در سایت آپلود می کند.

تفاوت این دو دسته فایل در این است که در حالت اول، صرفا فایل ایجاد می شود، اما در حالت دوم، فایل پس از ایجاد، توسط تابع drupal_chmod مجوز دهی می شود. عمده ی تمرکز ما روی حالت دوم است. زیرا حالت اول معمولا رخ نمی دهد.

برای تغییر مجوز فایل های ایجاد شده توسط PHP باید از دستور umask استفاده کنیم. با توجه به این که می خواهیم کاربر other به فایل ها هیچ دسترسی نداشته باشد، umask قابل استفاده 0027 می باشد. ساده ترین راه برای انچام این تنظیم، این است که خط زیر را به ابتدای فایل index.php دروپال اضافه کنیم. (ظاهرا می توان آن را به فایل settings.php هم اضافه کرد که در این صورت بهتر خواهد بود.)

umask(0027);

به این ترتیب، پوشه هایی که توسط php ایجاد می شوند، با مجوز 750 و فایل ها با مجوز 640 ایجاد خواهند شد که مطلوب ماست.

نکته ی دیگر این است که فایل هایی که توسط کاربر آپلود می شوند (مانند فایل های ضمیمه ی ارسال شده در node ها) به طور خودکار توسط دروپال مجوز 644 و پوشه ها مجوز 755 می گیرند و این مطلوب ما نیست.

خوشبختانه دروپال گزینه ای برای تنظیم این موضوع دارد. یک variable موجود است به نام file_chmod_directory که مجوز پوشه های جدید را مشخص می کند و variable دیگری به نام file_chmod_file وجود داره که مجوز فایل های جدید را مشخص می کند. می توان این دو variable را به کمک تابع variable_set تنظیم کرد. اما روش ساده تر و ایمن تر این است که دو تا خط زیر را به انتهای فایل settings.php دروپال اضافه کنیم.

دو خط زیر سبب می شود که variable های فوق override شوند و از مقادیر مشخص شده در فایل settings.php استفاده شود:

$conf['file_chmod_directory'] = octdec('0750');
$conf['file_chmod_file'] = octdec('0640');

سپس فایل settings.php را ذخیره می کنیم (دقت کنید که این فایل read only است و باید در موقع ذخیره کردن با برنامه ی vim، از ! استفاده کرد.)

صاحب فایل های آپلود شده و ایجاد شده ی جدید

آخرین موضوع برای حل کردن این است که وقتی یک فایل جدید در دروپال آپلود می شود، از آن جایی که فایل توسط php ذخیره می شود که owner سایت ذخیره می شود. در حالی که ما می خواهیم group owner آن www-data باشد. چون در غیر این صورت در فایل توسط apache قابل serve شدن نخواهد بود و بارز ترین و سریع ترین واکنشی که مشاهده می کنیم این است که دروپال بدون استایل لود می شود و کلیه ی صفحات سایت بدون هیچ شکل و شمایلی نشان داده می شوند و یا کد های javascript اجرا نمی شود.

اگر در این حالت firebug را باز کنیم، می بینیم که علت بروز این مشکل، خطای 403 در هنگام لود شدن استایل ها و فایل های جاوااسکریپ می باشد.

درگاه پرداخت بانک سامان برای Ubercart 3

بانک سامانبه نام خدا

درگاه پرداخت بانک سامان برای Ubercart 3 در دروپال 7 آماده ی استفاده است. این پروژه متن باز بوده و تحت لایسنس GNU GENERAL PUBLIC LICENSE منتشر شده است.

می توانید از صفحه ی زیر به این ماژول دسترسی داشته باشید:

https://www.drupal.org/project/uc_samanbank

صفحه‌ها

اشتراک در خوراک صفحه اصلی