Centos 7 apache php-fpm 似乎无法正常工作

Centos 7 apache php-fpm 似乎无法正常工作

服务器上已安装的相关软件包:

php php-cli php-common php-opcache php-mcrypt php-gd php-curl php-fpm php-dom php-intl php-pecl-mongodb php-mbstring php-xml php-pear php-devel php-pecl-zip

Centos 7 Apache/httpd

背景故事:

我们正在从旧服务器迁移到新服务器,因为现在我们终于有时间重新配置一切。在旧服务器上,一切都正常,但缺少一些可以提升性能的功能。其中之一就是 php-fpm。现在新服务器配置几乎完成了,只缺少与自动部署工具和 php-fpm 的连接。所以我按照以下教程安装了 php-fpm:

https://www.webhostinghero.com/centos-apache-php-fpm/

https://www.mynotepaper.com/install-latest-php-php-fpm-on-centos-7/

https://www.stephenrlang.com/2018/02/centos-7-apache-2-4-with-php-fpm/

这些是谷歌上关于这个主题的前 3 个结果,我对这整件事有点厌倦了,因为我已经花了 2 个月的时间来完成整个配置,现在我真的很想完成它。问题是上面的这些都不起作用。

什麼是有效?

嗯,httpd 运行正常。php-fpm 也有一个服务,它似乎在监听端口 9000。所以第一个问题是我不太确定我该如何确定它是否在工作。正如我所说,httpd 和 php-fpm 的服务都很好。还添加到自动启动

我该如何尝试找出它是否有效?

好吧,phpinfo 是最受欢迎的,但我的问题是我不想将配置公之于众。我们已经在服务器上尝试过入侵,但都没有成功,所以最好保持安全。第二个选项是php -i | grep "Server API" 应该返回这个 - 考虑到教程:“FPM/fastCGI”,它返回“命令行界面”

我认为这可能意味着它不起作用。是真的吗?

我到目前为止做了什么?

/etc/php.ini有此行,正如教程中所建议的那样:cgi.fix_pathinfo=0

然后这里/etc/php-fpm.d/www.conf

user = apache
group = apache
listen.owner = apache
listen.group = apache
listen = /var/run/php-fpm/default.sock

然后这里/etc/httpd/conf.modules.d/00-mpm.conf

而不是这个:LoadModule mpm_prefork_module modules/mod_mpm_prefork.so 我有这个: LoadModule mpm_event_module modules/mod_mpm_event.so

然后这里/etc/httpd/conf.d/php.conf

# Proxy declaration
<Proxy "unix:/var/run/php-fpm/default.sock|fcgi://php-fpm">
    # we must declare a parameter in here (doesn't matter which) or it'll not register the proxy ahead of time
        ProxySet disablereuse=off
</Proxy>

# Redirect to the proxy
<FilesMatch \.php$>
    SetHandler proxy:fcgi://php-fpm
</FilesMatch>

加上一些默认的东西。这些都是从我上面链接的描述中得到的

配置完成后,每次都会重新加载服务,但得到的结果都一样。所以我不知道缺少什么才能让它工作——主要是因为这是我第一次在 apache 中使用 php-fpm。

网站仍在运行,但是这个 fpm 东西却无法运行。

有任何想法吗?

答案1

“有任何想法吗?”

也许与所需的 a2enmod、a2enconf 和 a2dismod 命令有关?当我在 apache 2.4 上切换到 php7.3-fpm 时,我必须执行以下操作(这是在 debian 10 和 ubuntu 18.04 上):

sudo systemctl stop apache2
sudo apt-get install php7.3-fpm  
a2enmod proxy_fcgi setenvif
a2enconf php7.3-fpm  # this may depend on your PHP vendor
a2dismod php7.3      # This disables mod_php.
a2dismod mpm_prefork # This disables the prefork MPM. Only one MPM can run at a time.
a2enmod mpm_event    # Enable event MPM. You could also enable mpm_worker.
sudo systemctl restart apache2

执行sudo apachectl -M并查找这些模块:

 http2_module (shared)
 mpm_event_module (shared)
 proxy_module (shared)
 proxy_fcgi_module (shared)

相关内容