如何在RHEL上永久启用PHP 5.4?(系统上也安装了PHP 5.3.3)


How to permanent enable PHP 5.4 on RHEL? (PHP 5.3.3 also installed on the system)

我最近在RHN软件集合1.1的RHEL 6.5服务器上安装了PHP54该软件包已成功安装,需要注意的是,服务器上有一个先前安装的PHP版本(5.3.3),即当前启用的版本。

我检查了几个网站/论坛/博客,建议总是一样的,通过scl(从软件收集环境中安装和运行软件)和/或源文件"/opt/rh/php54/enable"启用。从下面的命令中可以看出,这似乎是启用PHP54的适当解决方法。

但它不是永久性的,一旦我退出shell,启用PHP的用户就会放弃更改。注意:这些命令已作为"root"运行,其行为与以下命令中显示的完全相同。

我已经找到了将源代码解决方法添加到用户的".bash_profile"中的参考,但这似乎不是对我来说最好的解决方案,我想知道是否有其他人已经面临过这个问题,以及它是如何解决的。

有什么建议吗?

[mithrandir@mordor ~]# scl enable php54 "php -v"
PHP 5.4.16 (cli) (built: Feb  4 2014 08:10:51)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

[mithrandir@mordor ~]# php -v
PHP 5.3.3 (cli) (built: Jul 15 2014 08:48:08)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

[mithrandir@mordor ~]# source /opt/rh/php54/enable
[mithrandir@mordor ~]# php -v
PHP 5.4.16 (cli) (built: Feb  4 2014 08:10:51)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

[mithrandir@mordor ~]# date
Fri Aug 29 12:29:35 MDT 2014
[mithrandir@mordor ~]# exit
logout
[me@mordor ~]$ sudo su -
[sudo] password for me:
[mithrandir@mordor ~]# php -v
PHP 5.3.3 (cli) (built: Jul 15 2014 08:48:08)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
[mithrandir@mordor ~]# date
Fri Aug 29 12:29:57 MDT 2014

似乎要从RH软件集合中启用包,唯一的方法是在"/etc/profile.d"下添加一个脚本,并包含"source/opt/RH/php54/enable"命令。

这是RH开发者博客的链接,展示了解决方案。请注意,它适用于python33,但此解决方法适用于RHSC上包含的软件,如PHP54。

永久启用软件集合

我实施了解决方案,它正在发挥作用。我希望这能帮助其他人。

打开命令shell窗口,检查安装的PHP rpm包。

# rpm -qa | grep php

应该有一个Apachephp模块。您需要下载一个rpm文件,该文件将PHP添加到Apache web服务器中。使用网站http://blog.famillecollet.com/post/2013/06/16/Red-Hat-will-provide-PHP-5.4-for-RHEL-6.在这里你可以找到如何永久安装PHP 5.4的提示。:

# source /opt/rh/php54/enable
# php -v
PHP 5.4.14 (cli) (built: May 23 2013 07:42:19) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

如果您希望永久启用PHP 5.4,并且/etc/conf.d/目录中有PHP 5.4的conf文件(可能是php54php.conf),您可以注释掉/etc/conf.d/PHP.conf中加载PHP 5.3模块的行:

<IfModule prefork.c>
  LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
  LoadModule php5_module modules/libphp5-zts.so
</IfModule>

您也可以删除/etc/conf.d/php.conf或重命名文件以删除.conf扩展名,这样/etc/conf/httpd.conf就不会加载它。