我对 httpd 2.2 (CentOS 6) 进行了以下设置,其中mod_fastcgi
包括php-fpm
:
LoadModule fastcgi_module modules/mod_fastcgi.so
<IfModule mod_fastcgi.c>
AddHandler application/x-httpd-php71 .php
Action application/x-httpd-php71 /php71-fcgi
Alias /php71-fcgi /usr/lib/cgi-bin/php71-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php71-fcgi -socket /var/run/php71.sock -pass-header Authorization
Action application/x-httpd-php72 /php72-fcgi
Alias /php72-fcgi /usr/lib/cgi-bin/php72-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php72-fcgi -socket /var/run/php72.sock -pass-header Authorization
</IfModule>
<Directory /usr/lib/cgi-bin>
Order allow,deny
Allow from all
</Directory>
但是在 httpd 2.4(CentOS 7)中存在,mod_proxy_fcgi
并且由于mod_fastcgi
不可用,所以我没有FastCgiExternalServer
我正在尝试这样的事情:
AddHandler application/x-httpd-php70 .php
Action application/x-httpd-php70 /php70-fpm virtual
Alias /php70-fpm /php70-fpm
ProxyPassMatch "/php70-fpm" "unix:/var/run/php70.sock|fcgi://localhost"
Action application/x-httpd-php72 /php72-fpm virtual
Alias /php72-fpm /usr/local/php-fpm/php72-fpm
ProxyPass "/usr/local/php-fpm/php72-fpm"
"unix:/var/run/php72.sock|fcgi://localhost"
<Directory /usr/local/php-fpm>
Require all granted
</Directory>
我知道这是错误的(并且不起作用......)但目前我无法找到(如果有的话)一种方法来继续使用AddHandler application/x-httpd-phpXX .php
CentOS7 .htaccess
/Apache 2.4 进行版本更改。我知道我可以使用:
<FilesMatch "\.php$">
SetHandler "proxy:unix:/var/run/php70.sock|fcgi://localhost/"
</FilesMatch>
但我正在寻找一种方法来保持我的 .htaccess 保持不变。
答案1
经过一番搜索后,我发现可以使用“Define”指令:
我在 fcgi.conf(包含在 httpd.conf 中)中添加了以下内容:
Define php70 "proxy:unix:/var/run/php70.sock|fcgi://localhost"
然后,在 aAddHandler
中使用定义的“php70” .htaccess
:
AddHandler ${php70} .php
这是我找到的最接近的东西。希望它能对某些人有所帮助。