Я установил apache2.4 и php-fpm, но у меня все еще есть php5-cgi обработка моих запросов, хотя процесс php-fpm запущен.
Вот что я сделал:
apt-get install php5-fpm apt-get install libapache2-mod-fastcgi a2enmod actions
Измените файл /etc/apache2/mods-available/fastcgi.conf следующим образом:
<IfModule mod_fastcgi.c> AddHandler php5-fcgi .php Action php5-fcgi /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> service apache2 restart
Но теперь, если я запустил phpinfo (), я получаю:
Server API CGI/FastCGI
вместо FPM / FastCGI
Хорошо, я наконец нашел, почему php fpm не был использован: мне нужно было включить его в мои файлы vhost. Редактировать :
/etc/apache2/sites-enabled/domain.conf
Удалить :
AddType application/x-httpd-php .php AddHandler fcgid-script .php AddHandler fcgid-script .php5 FCGIWrapper /home/domain/fcgi-bin/php5.fcgi .php
Добавить :
ProxyPassMatch ^/(.*.php(/.*)?)$ unix:/var/run/php5-fpm.sock|fcgi://localhost/home/domain/domains/domain/public_html/$1
еще одна попытка:
Установите Apache Worker MPM (многопроцессорные модули)
sudo apt-get install apache2-mpm-worker sudo apt-get install libapache2-mod-fastcgi php5-fpm php5 sudo apt-get update
и опять:
sudo apt-get install libapache2-mod-fastcgi php5-fpm php5 sudo a2enmod actions fastcgi alias
перезапустить apache
sudo service apache2 restart
затем sudo nano /etc/apache2/conf.d/php5-fpm.conf
и вставьте это в:
<IfModule mod_fastcgi.c> AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization <Directory /usr/lib/cgi-bin> Require all granted </Directory> #directory statement mult be on multiple lines </IfModule>
тогда :
sudo service apache2 restart
и это должно работать