如何强制httpd使用红帽软件集合中的rh-php56
问题描述:
任何人在使用httpd在Red Hat软件集合中使用rh-php56方面有什么好运?如何强制httpd使用红帽软件集合中的rh-php56
我看到了有关如何在CLI上启用较新版本的PHP的文档...但不是让Apache使用通过rh-php56软件包安装的PHP新版本。
(我要澄清 - 这是一个RHEL 7.x的框)
答
RH-php56提供mod_php的仅httpd24(未对基本系统)
更简单的方法是使用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
总结上面的帖子,在/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文件并将其指向从php56模块RHSCL:
LoadModule php5_module /opt/rh/httpd24/root/usr/lib64/httpd/modules/librh-php56-php5.so
这通常似乎适用于我,但我只测试了基本页面呈现。如果在常规的Apache配置中加载特殊集合模块有一些错误,我不会感到惊讶。毕竟,RH Special Collections包有意安装到文件系统的完全不同的部分以避免冲突。您可能需要考虑使用RHSCL中的HTTPD24以及PHP56来避免配置问题。
答
我刚刚不得不面对在RHEL 7机器上升级到php56的一些PHP webapps。我查看了httpd24路由,出于某种原因,仅使用nginx
版本的RHEL包与rh-php56-php
和rh-php56-php-fpm
似乎简单得多。
- 安装你需要
- 启用并启动
rh-php56-php-fpm
systemd服务和配置/etc/opt/rh/rh-php56/
php-fpm
(即,编辑php-fpm.conf
和php-fpm.d/www.conf
文件)rh-php56-php
包。您需要决定是否希望php-fpm至少在unix套接字上或通过TCP进行监听,并且正确配置日志记录以帮助排除故障也是一个不错的主意。 - 将nginx配置为代理到您的php-fpm unix套接字或TCP地址,例如
localhost:9000
。在php-fpm和Drupal/Mediawiki/Wordpress等的nginx配置上有大量的googleable资源。
围绕它有什么新的发展?我在CentOS 7上遇到了同样的问题,无法'httpd'使用'rh-php56'。我不想通过php-fpm重定向请求,这似乎是错误的?或者我只是太ocd ... – Odyss3us
恕我直言mod_php应该死;)FPM是更好的安全(单独的进程),并为性能(允许在线程模式下运行Apache)。 –
太棒了,感谢您的反馈Remi! :) – Odyss3us