如何强制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)

参见:

总结上面的帖子,在/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> 
+0

围绕它有什么新的发展?我在CentOS 7上遇到了同样的问题,无法'httpd'使用'rh-php56'。我不想通过php-fpm重定向请求,这似乎是错误的?或者我只是太ocd ... – Odyss3us

+1

恕我直言mod_php应该死;)FPM是更好的安全(单独的进程),并为性能(允许在线程模式下运行Apache)。 –

+0

太棒了,感谢您的反馈Remi! :) – Odyss3us

使用的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-phprh-php56-php-fpm似乎简单得多。

  1. 安装你需要
  2. 启用并启动rh-php56-php-fpm systemd服务和配置/etc/opt/rh/rh-php56/php-fpm(即,编辑php-fpm.confphp-fpm.d/www.conf文件)rh-php56-php包。您需要决定是否希望php-fpm至少在unix套接字上或通过TCP进行监听,并且正确配置日志记录以帮助排除故障也是一个不错的主意。
  3. 将nginx配置为代理到您的php-fpm unix套接字或TCP地址,例如localhost:9000。在php-fpm和Drupal/Mediawiki/Wordpress等的nginx配置上有大量的googleable资源。