如何强制httpd使用来自红帽软件集合的rh-php56?

10

有人成功让httpd使用来自Red Hat软件集合的rh-php56吗?

我看到了有关在CLI中启用较新版本php的文档...但没有关于使Apache使用通过rh-php56包安装的新版本PHP的文档。

(我应该澄清一下 - 这是针对RHEL 7.x盒子的)

3个回答

5

rh-php56仅为httpd24提供mod_php(不适用于基本系统)

更简单的方法是使用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>

这方面有任何新的进展吗?我在CentOS 7上遇到了同样的问题,无法让httpd使用rh-php56。我不想通过php-fpm重定向请求,这似乎是错误的?还是我对此太过于强迫症了... - Odyss3us
2
在我看来,mod_php应该消失了 ;) FPM对于安全性(独立进程)和性能(允许在线程模式下运行Apache)都更好。 - Remi Collet

1

将LoadModule命令添加到您的httpd.conf文件中,并将其指向来自RHSCL的php56模块:

LoadModule php5_module /opt/rh/httpd24/root/usr/lib64/httpd/modules/librh-php56-php5.so

这对我来说通常有效,但我只测试了基本页面渲染。如果在常规Apache配置中加载特殊集合模块存在一些错误,我不会感到惊讶。毕竟,RH特殊收藏包有意安装到文件系统的完全不同部分以避免冲突。您可能需要考虑使用RHSCL中的HTTPD24和PHP56来避免配置问题。

0

最近我在RHEL 7机器上升级一些PHP Web应用程序到php56。我研究了httpd24路线,但出于某种原因,使用带有rh-php56-php和rh-php56-php-fpm的nginx RHEL包似乎更简单。

  1. 安装所需的rh-php56-php软件包
  2. 启用并启动rh-php56-php-fpm systemd服务,并在/etc/opt/srh/rh-php56/中配置php-fpm(即编辑php-fpm.conf和php-fpm.d/www.conf文件)。您需要决定是否至少要让php-fpm侦听Unix套接字或通过TCP,还建议适当配置日志以帮助进行故障排除。
  3. 将nginx配置为代理到您的php-fpm Unix套接字或TCP地址,例如localhost:9000。有很多关于nginx配置php-fpm和Drupal / Mediawiki / Wordpress等的可搜索资源。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接