مستند کانفیگ آپاچی برای استفاده از fastcgi و php-fpm روی دبیان
شرح مسئله
قبل از اجرای این مستند شرحمسئله همین مستند برای اوبونتو را مطالعه کنید.
فهرست مندرجات
نصب
اولین گام اینست که آپاچی را همراه با ماژول fastcgi نصب کنید:
apt-get install apache2-mpm-worker
ماژول FPM در مخازن رسمی دبیان نیست. پس باید فایل مخازن را باز کنید و موارد لازم را به آن اضافه کنید:
nano /etc/apt/sources.list
برای سیستمعامل دبیان در مخازن non-free هست پس باید این ۳ خط در فایل موجود باشد:
deb http://ftp.us.debian.org/debian wheezy main contrib non-free
deb http://security.debian.org/ wheezy/updates main contrib non-free
deb http://ftp.debian.org/debian/ wheezy-updates main contrib non-free
گام بعد نصب PHP همراه پشتیبانی از PHP5-FPM است:
apt-get update && apt-get install libapache2-mod-fastcgi php5-fpm php5
لود کردن ماژولها
گام بعد فعال کردن ماژول php5-fpm هست. برای این منظور باید ماژول actions را فعال کنیم:
a2enmod actions
در بعضی موارد ممکن است PHP-FPM به صورت دیفالت روی پورت ۹۰۰۰ لیسن کند. برای جلویگیری از overhead تیسیپی باید طوری تنظیم شود که به جای پورت ۹۰۰۰ از سوکت یونیکس استفاده کند. در اینجا باید اطمینان پیدا کنیم php-fpm به جای TCP از سوکت UNIX استفاده میکند:
grep -E '^\s*listen\s*=\s*[a-zA-Z/]+' /etc/php5/fpm/pool.d/www.conf
خروجی این کامند اگر این نبود باید برخی از تنظیمات php-fpm اصلاح شود:
listen = /var/run/php5-fpm.sock
با دستور زیر ورژن آپاچی را چک کنید:
apache2 -v
بسته به اینکه ورژن آپاچی شما ۲.۲ یا قدیمیتر است یا ۲.۴ یا جدیدتر تنظیمات مربوطه را در فایل زیر وارد کنید:
nano /etc/apache2/mods-enabled/fastcgi.conf
تنظیمات نسخه ۲.۲ آپاچی:
<IfModule mod_fastcgi.c>
AddType application/x-httpd-fastphp5 .php
Action application/x-httpd-fastphp5 /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization
</IfModule>
تنظیمات نسخه ۲.۴ آپاچی:
<IfModule mod_fastcgi.c>
AddType application/x-httpd-fastphp5 .php
Action application/x-httpd-fastphp5 /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization
<Directory /usr/lib/cgi-bin>
Require all granted
</Directory>
</IfModule>
با دستور زیر مطمئن شوید که تنظیمات انجام شده روی آپاچی مشکل دستوری ندارد:
apache2ctl configtest
اگر خروجی دستور Ok نبود مشکل را پیدا و برطرف کنید. اگر Ok بود آپاچی را ریست کنید:
service apache2 restart
اطمینان از اعمال درست تنظیمات
اطمینان از اعمال درست تنظیمات همین مستند برای اوبونتو را مطالعه کنید.