服务器运行CentOs 6.10
同一台服务器上,某些网站需要使用 php5,而其他网站需要使用 php7,因此我使用了 remi 存储库并启用了所需的 php 版本。
我已经卸载了 mod_php 并安装了 php-fpm 和 mod_fcgid。
在 中/etc/php-fpm.d/www.conf
,我添加了:
listen = /var/run/php-fpm/www.sock
listen.group = apache
listen.mode = 0660
我创建了/var/www/cgi-bin/php.fastcgi
以下内容:
#!/bin/bash
PHPRC="/etc/php.ini"
PHP_FCGI_CHILDREN=4
PHP_FCGI_MAX_REQUESTS=1000
export PHPRC
export PHP_FCGI_CHILDREN
export PHP_FCGI_MAX_REQUESTS
exec /usr/bin/php-cgi
以下是域的虚拟主机示例:
<VirtualHost *:80>
# Admin email, Server name and Server alias
ServerAdmin [email protected]
ServerName domain.com
# Document Root settings
DirectoryIndex index.php
DocumentRoot /var/www/vhosts/domain.com/httpdocs/
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
# Logging settings
LogLevel warn
ErrorLog /var/www/vhosts/domain.com/log/error.log
CustomLog /var/www/vhosts/domain.com/log/access.log combined
</VirtualHost>
我基本上遵循了本指南但我也尝试了从网上找到的各种其他方法,但都无济于事。
如果我访问服务器上的域,我只会收到内部服务器错误或者 php 未正确解析并且仅输出为原始文本。
上面的配置中我缺少什么?
答案1
使用php-cgi
已经过时且弃用的版本,您应该改用 FPM 服务。
看 :
注意:PHP-FPM 现在是 Fedora 和 RHEL-8 中的默认方式(因此在即将发布的 CentOS 8 中也是如此)
PS CentOS 6 中的 Apache HTTP 服务器 2.2 版不支持 SetHandler 进行代理,但你可以使用 httpd24 集合SCL 存储库。我还建议您升级到较新的 CentOS 版本,6 已经非常旧并且接近使用寿命的终点。