Apache 2.4安装完成后默认的php解析器是Apache 2.0 Handler,有时候某些网站的访问请求需要用PHP-FPM来处理,可以仅仅对这些网站进行特殊配置,让这些网站使用PHP-FPM,而其他网站继续使用Apache 2.0 Handler
目前Apache 2.4常用的PHP解析器有如下两个
- libapache2-mod-php7.2(Apache 2.0 Handler)
- php7.2-fpm(FPM/FastCGI)
环境
- Debian 9
- Apache 2.4
- PHP 7.2
启用proxy fcgi
1 |
a2enmod proxy proxy_fcgi |
网上教程里说还要安装libapache2-mod-fastcgi这个包,但是这个包在最新的源里没有,要手动安装,但是似乎启用PHP-FPM也并不必须要安装它,而且在Apache的官方文档里也没有说要安装这个包。。。
修改网站配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/vps ServerSignature Off <Directory /var/www/vps > Options -Indexes </Directory> <IfModule mod_proxy.c> ProxyRequests Off ProxyMaxForwards 100 ProxyPreserveHost On ProxyPassMatch "^/(.*\.php(/.*)?)$" "unix:/var/run/php/php7.2-fpm.sock|fcgi://localhost/var/www/vps/" </IfModule> </VirtualHost> |
这里在fcgi://之后的路径需要和网站根目录对应,否则会出现如下错误
1 |
AH01071: Got error 'Primary script unknown\n' |
重启Apache服务
1 |
service apache2 restart |
这样配置完成后,则只有配置了proxy的网站会使用PHP-FPM来处理php文件,其余网站依然还是使用Apache 2.0 Handler来处理php
Know More
https://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html
There are no comments yet