آموزش نصب و کانفیگ Nginx و PHP-FPM در Ubuntu 13.04

آموزش نصب و کانفیگ Nginx و PHP-FPM در Ubuntu 13.04

Nginx (که به صورت ” engine x ” تلفظ میشود ) یک وب سرور HTTP رایگان، متن باز و با کارایی بالا میباشد که به علت پایداری ،داشتن مجموعه ای پربار از ویژگی ها، پیکربندی ساده، و مصرف منابع کم سرور شناخته شده است. این آموزش نشان می دهد که چگونه Nginx و هندل php-fpm را بر روی سرور لینوکس اوبونتو ۱۳٫۰۴ که از PHP5 (از طریق PHP-FPM) و MySQL پشتیبانی می کند، نصب کنید .

آموزش نصب و کانفیگ Nginx و PHP-FPM در Ubuntu 13.04

آموزش نصب و کانفیگ Nginx و PHP-FPM در Ubuntu 13.04

(LEMP = Linux + nginx (pronounced “engine x”) + MySQL + PHP)

نکات مقدماتی نصب و کانفیگ Nginx و php-fpm

در این آموزش از نام هاست server1.example.com با IP آدرس ۱۹۲٫۱۶۸٫۰٫۱۰۰ استفاده شده است . این تنظیمات ممکن است با تنظیمات شما متفاوت باشد، بنابراین باید آنها را با تنظمات مورد نظر خود در بخش های مناسب جایگزین کنید.

 تمامی مراحل این آموزش با دسترسی های کاربری ریشه (root) اجرا خواهد شد، بنابراین مطمئن شوید که به عنوان کاربر ریشه وارد شده اید :

sudo su

  • نصب MySQL 5

آموزش نصب و کانفیگ Nginx و PHP-FPM در Ubuntu 13.04

آموزش نصب و کانفیگ Nginx و PHP-FPM در Ubuntu 13.04

برای نصب MySQL دستور زیر را اجرا کنید:

apt-get install mysql-server mysql-client

در حین نصب MySQL از شما خواسته میشود که یک رمز عبور برای کاربر روت MySQL  تعیین کنید. این رمز عبور برای کاربری [email protected] و همچنین [email protected] نیز معتبر است، البته استفاده از  MySQL root password در فایل کانفیگ اسکریپت سرور های شلوغ توصیه نمیشود .در این مرحله یک کلمه عبور به عنوان MySQL root password انتخاب کنید :

New password for the MySQL “root” user: <– yourrootsqlpassword
Repeat password for the MySQL “root” user: <– yourrootsqlpassword

  • نصب Nginx

آموزش نصب و کانفیگ Nginx و PHP-FPM در Ubuntu 13.04

آموزش نصب و کانفیگ Nginx و PHP-FPM در Ubuntu 13.04

Nginx به صورت یک پکیج برای اوبونتو ۱۳٫۰۴ در دسترس است که میتوانید برای نصب آن به شرح زیر عمل کنید:

apt-get install nginx

سپس برای استارت شدن سرویس  nginx دستور زیر را اجرا کنید :

/etc/init.d/nginx start

 IP وب سرور یا نام هاست خود را در مرورگر تایپ کنید (به عنوان مثال http://192.168.0.100)، باید صفحه زیر را ببینید:

آموزش نصب Nginx در Ubuntu 13.04

آموزش نصب Nginx در Ubuntu 13.04

 ریشه سند nginx به طور پیش فرض در اوبونتو ۱۳٫۰۴ ، مسیر  /usr/share/nginx/html است

  • نصب PHP5

بهترین روش برای کار کردن با PHP5 در nginx استفاده از PHP-FPM یا (FastCGI Process Manager ) است . PHP-FPM یک پیاده سازی مدرن و مدیریت شده از PHP FastCGI به همراه امکانات بسیار زیاد بوده که برای انواع سایت ها مخصوصا سایت های فعال و پر بازدید مناسب است . برای نصب PHP5 در لینوکس Ubuntu دستور زیر را اجرا کنید:

apt-get install php5-fpm

PHP-FPM یک فرایند دیمن (با اسکریپت init  /etc/init.d/php5-fpm) است که یک سرور FastCGI در سوکت / var/run/php5-fpm.sock اجرا میکند. (روش های دیگری نیز به جز استفاده از سوکت وجود دارد)

  • تنظیمات nginx

تنظیمات nginx در مسیر / etc / nginx / nginx.conf قرار دارد . برای این کار باید فایل nginx.conf را به کمک دستور vi ویرایش کنیم  :

vi /etc/nginx/nginx.conf

این تنظیمات به آسانی قابل درک بوده و میتوانید برای کسب اطلاعات بیشتر به لینک های زیر مراجعه کنید :

http://wiki.nginx.org/NginxFullExample

http://wiki.nginx.org/NginxFullExample2

 اول تعداد worker processes را تعیین کرده و سپس یک مقدار معقول برای keepalive_timeout مشخص کنید (این مرحله اختیاری است)

هاست های مجازی یا همان vhost ها در تابع  {} server  تعریف میشوند . هاست مجازی پیش فرض در فایل /etc/nginx/sites-available/default  قرار دارد و باید به به شرح زیر تغییر یابند:

vi /etc/nginx/sites-available/default

 فایل index.php را به خط index اضافه کنید. root /usr/share/nginx/html بدان معنی است که ریشه سند، دایرکتوری /usr/share/nginx/html است. سایر تنظیمات مورد نظر در مثال فوق مشخص است .

برای کسب اطلاعات بیشتر به لینک زیر مراجعه کنید:

http://wiki.nginx.org/Pitfalls#Passing_Uncontrolled_Requests_to_PHP

http://forum.nginx.org/read.php?2,88845,page=3

 فایل را ذخیره و nginx را مجددا بارگذاری کنید:

/etc/init.d/nginx reload

سپس /etc/php5/fpm/php.ini…را باز کنید

vi /etc/php5/fpm/php.ini

و cgi.fix_pathinfo را مساوی ۰ قرار دهید (cgi.fix_pathinfo=0) :

PHP-FPM را مجددا بارگذاری کنید:

/etc/init.d/php5-fpm reload

فایل php  زیر را در ریشه سند /usr/share/nginx/html ایجاد کنید :

vi /usr/share/nginx/html/info.php

 

حال باید فایل را در مرورگر فراخوانی کنید برای مثال :

 http://192.168.0.100/info.php

آموزش نصب Nginx در Ubuntu 13.04

آموزش نصب Nginx در Ubuntu 13.04

همانطور که در خط Server API نشان داده شده PHP5 با استفاده از FPM / FastCGI کار می کند. شما میتوانید تمامی ماژول های فعال در PHP5 را ببینید. MySQL در لیست موجود نیست این بدان معناست که MySQL هنوز در PHP5 پشتیبانی نمیشود.

  • پشتیبانی PHP5 از MySQL

برای اینکه MySQL در PHP پشتیبانی شود ، میتوانید پکیج php5-mysql را نصب کنید. ایده خوبی است اگر برخی دیگر از ماژول های PHP5 را نصب کنید ، این ماژول ها ممکن است برای برنامه های شما مورد نیاز باشند . برای جستجوی ماژول های PHP5 در دسترس میتوانید از دستور زیر استفاده کنید :

apt-cache search php5

انتخاب php ماژول ها در هر سرور و بسته به نوع کاربری آن متفاوت است . در یک حالت استاندارد ، ماژول های مورد نیاز خود را به شرح زیر نصب میکنیم  :

apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

APC  یک PHP opcode cacher رایگان و باز برای ذخیره و بهینه سازی کد میانی PHP است. APC  شبیه به آپکد کش های دیگر در php مانند eAccelerator و Xcache است. به شدت توصیه می شود که یکی از آنها را برای سرعت بخشیدن به صفحات PHP تان نصب کنید.

 APC را می توانید با دستور زیر نصب کنید:

apt-get install php-apc

PHP-FPM را مجددا بارگذاری کنید :

/etc/init.d/php5-fpm reload

http://192.168.0.100/info.php را در مرورگر خود بار دیگر بارگذاری کنید ، اکنون در بخش ماژول ها باید تعداد زیادی ماژول جدید از جمله ماژول MySQL وجود داشته باشد :

آموزش نصب Nginx در Ubuntu 13.04

آموزش نصب Nginx در Ubuntu 13.04

  • تعامل PHP-FPM و NGINX با استفاده از TCP

PHP-FPM به طور پیش فرض به کمک سوکت  /var/run/php5-fpm.sock با وب سرور تعامل خواهد داشت . به دلیل پیچیده تر بودن ساختار SOCKET و جلوگیلی از ارور های احتمالی BAD GATEWAY در وب سرور NGINX ما از اتصال TCP برای ارتباط با وب سرور استفاده میکنیم .برای این کار، فایل /etc/php5/fpm/pool.d/www.conf را باز کنید:

vi /etc/php5/fpm/pool.d/www.conf

خط listen  را به شرح زیر تغییر دهید:

 با این کار PHP-FPM به پورت ۹۰۰۰ گوش کرده و آماده سرویس دهی خواهد بود ، اطمینان حاصل کنید که در سرور  شما، از این پورت  استفاده نمیشود سرویس دیگری با‌ آن کار نمیکند .

 سپس PHP-FPM را مجددا بارگذاری کنید:

/etc/init.d/php5-fpm reload

در تنظیمات nginx خود خط :

;fastcgi_pass unix:/var/run/php5-fpm.sock

را به ;fastcgi_pass 127.0.0.1:9000 تغییر دهید :

vi /etc/nginx/sites-available/default

در نهایت nginx را مجددا بارگذاری کنید :

/etc/init.d/nginx reload

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

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

پاسخ به کلیه سوالات شما در زمینه وب هاستینگ و مدیریت سرور در انجمن کامپایلر

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *