我在 Arch Linux 上安装了Apache/2.4.54、PHP72-FPM、PHP74-FPM和一些其他版本的 PHP-FPM 。显然httpd.conf中存在一些错误配置,PHP 无法解释任何内容并且浏览器注释掉了代码。
我尝试了什么:
httpd.conf:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
httpd-vhosts.conf:
<VirtualHost *:80>
LoadModule php7_module modules/libphp72.so
AddHandler php72-script php
Include conf/extra/php72-module.conf
...
php72-module.conf:
<IfModule dir_module>
<IfModule php_module7>
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
SetHandler "proxy:unix:/run/php72-fpm/php-fpm.sock|fcgi://localhost/"
...
php72-fpm is active.
和
php -v
回报:PHP 8.1.12 (cli)
更新:
我搬家了:
<FilesMatch "\.php$">
SetHandler "proxy:unix:/run/php72-fpm/php-fpm.sock|fcgi://localhost/"
到<VirtualHost>
并得到[503 Unavailable]
,
错误日志:
[proxy:error] FCGI: attempt to connect to Unix domain socket /run/php-fpm72/php-fpm.sock (*:80) failed
[proxy_fcgi:error] failed to make connection to backend: httpd-UDS
我相信您在配置中将 php-fpm 与 modphp 混合使用。您应该做的唯一步骤是:
没有必要更新你的 vhosts 文件,除非 Archlinux 没有附带 apache helpers
a2*
。更新后更新
确保在该特定位置有一个 unix 套接字。您可能应该在配置中验证
/etc/php/fpm/pool.d/xxx.conf
套接字的确切位置,然后重新启动 php-fpm。