如何强制 httpd 使用 red hat software collections 中的 rh-php56
How to force httpd to use rh-php56 from red hat software collections
是否有人有幸使 httpd 使用 Red Hat Software Collections 中的 rh-php56?
我看到了关于如何在 CLI 中启用更新版本的 php 的文档...但不是为了让 Apache 使用通过 rh-[=18 安装的新版本的 PHP =] 包。
(我应该澄清一下——这是针对 RHEL 7.x 框的)
rh-php56 只为 httpd24 提供 mod_php(不适用于基本系统)
更简单的方法是使用 php-fpm(这也允许 运行 apache 处于线程模式)
参见:
- http://blog.remirepo.net/post/2014/08/01/Apache-httpd-server-2.4.10-and-PHP-FPM-5.6-in-Fedora-21
- http://blog.remirepo.net/post/2014/03/28/PHP-FPM-and-HTTPD-2.4-improvement
总结以上 post,在 /etc/httpd/conf.d/php.conf
中使用
# Redirect to local php-fpm is mod_php not available
<IfModule !mod_php5.c>
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
</IfModule>
将 LoadModule 命令添加到您的 httpd.conf 并将其指向 RHSCL 中的 php56 模块:
LoadModule php5_module /opt/rh/httpd24/root/usr/lib64/httpd/modules/librh-php56-php5.so
这对我来说似乎很管用,但我只测试了基本的页面呈现。如果有一些与在常规 Apache 配置中加载特殊集合模块相关的错误,我不会感到惊讶。毕竟,RH Special Collections 软件包有意安装到文件系统的一个完全不同的部分以避免冲突。您可能需要考虑使用 RHSCL 中的 HTTPD24 以及 PHP56 以避免配置问题。
我最近不得不为 RHEL 7 机器上的某些 PHP 网络应用程序升级到 php56。我查看了 httpd24 路由,出于某种原因,使用带有 rh-php56-php
和 rh-php56-php-fpm
.
的股票 nginx
RHEL 包似乎更简单
- 安装你需要的
rh-php56-php
包
- 启用并启动
rh-php56-php-fpm
systemd 服务并在 /etc/opt/rh/rh-php56/
中配置 php-fpm
(即编辑 php-fpm.conf
和 php-fpm.d/www.conf
文件)。您需要决定是否希望 php-fpm 至少在 unix 套接字上或通过 TCP 进行侦听,并且正确配置日志记录以帮助解决问题也是一个好主意。
- 将 nginx 配置为代理到您的 php-fpm unix 套接字或 TCP 地址,例如
localhost:9000
。 php-fpm 和 Drupal / Mediawiki / Wordpress / 等的 nginx 配置上有大量 googleable 资源
是否有人有幸使 httpd 使用 Red Hat Software Collections 中的 rh-php56?
我看到了关于如何在 CLI 中启用更新版本的 php 的文档...但不是为了让 Apache 使用通过 rh-[=18 安装的新版本的 PHP =] 包。
(我应该澄清一下——这是针对 RHEL 7.x 框的)
rh-php56 只为 httpd24 提供 mod_php(不适用于基本系统)
更简单的方法是使用 php-fpm(这也允许 运行 apache 处于线程模式)
参见:
- http://blog.remirepo.net/post/2014/08/01/Apache-httpd-server-2.4.10-and-PHP-FPM-5.6-in-Fedora-21
- http://blog.remirepo.net/post/2014/03/28/PHP-FPM-and-HTTPD-2.4-improvement
总结以上 post,在 /etc/httpd/conf.d/php.conf
中使用# Redirect to local php-fpm is mod_php not available
<IfModule !mod_php5.c>
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
</IfModule>
将 LoadModule 命令添加到您的 httpd.conf 并将其指向 RHSCL 中的 php56 模块:
LoadModule php5_module /opt/rh/httpd24/root/usr/lib64/httpd/modules/librh-php56-php5.so
这对我来说似乎很管用,但我只测试了基本的页面呈现。如果有一些与在常规 Apache 配置中加载特殊集合模块相关的错误,我不会感到惊讶。毕竟,RH Special Collections 软件包有意安装到文件系统的一个完全不同的部分以避免冲突。您可能需要考虑使用 RHSCL 中的 HTTPD24 以及 PHP56 以避免配置问题。
我最近不得不为 RHEL 7 机器上的某些 PHP 网络应用程序升级到 php56。我查看了 httpd24 路由,出于某种原因,使用带有 rh-php56-php
和 rh-php56-php-fpm
.
nginx
RHEL 包似乎更简单
- 安装你需要的
rh-php56-php
包 - 启用并启动
rh-php56-php-fpm
systemd 服务并在/etc/opt/rh/rh-php56/
中配置php-fpm
(即编辑php-fpm.conf
和php-fpm.d/www.conf
文件)。您需要决定是否希望 php-fpm 至少在 unix 套接字上或通过 TCP 进行侦听,并且正确配置日志记录以帮助解决问题也是一个好主意。 - 将 nginx 配置为代理到您的 php-fpm unix 套接字或 TCP 地址,例如
localhost:9000
。 php-fpm 和 Drupal / Mediawiki / Wordpress / 等的 nginx 配置上有大量 googleable 资源