无法使 PHP-FPM 工作,因此无法使用多个版本的 php

无法使 PHP-FPM 工作,因此无法使用多个版本的 php

服务器运行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 已经非常旧并且接近使用寿命的终点。

相关内容