PHP升级失败,CentOS 6.7

系统信息

操作系统 CentOS Linux 6.7

在x86_64上的内核和CPU Linux 2.6.32-042stab108.1

yum repolist enabled 

只有我手动添加的

  • 基地 – CentOS-6 –
  • 基础epel – 用于Enterprise Linux 6的额外软件包 – x86_64
  • 额外 – CentOS-6 – 其他
  • ius – 适用于Enterprise Linux 6的IUS社区软件包 – x86_64
  • mod-pagespeed – mod-pagespeed
  • remi-safe – 用于Enterprise Linux 6的安全Remi的RPM存储库 – x86_64
  • rhscl-php55-epel-6-x86_64 – PHP 5.5.21 –
  • epel-6-x86_64更新 – CentOS-6 – 更新
  • virtualmin – RHEL / CentOS / Scientific 6 – x86_64 –
  • Virtualmin virtualmin-universal – Virtualmin分配中立
  • 软件包vz-base – vz-base vz-updates – vz-updates

可用的安装版本

  • / usr / bin / php 5.3.3
  • / usr / bin / php55 5.5.30

我尝试了以下(使用virtualmin)

  1. 启用5.5.30为一个特定的目录,并没有得出这个错误从virtualmin 这个虚拟服务器使用PHP的mod_php执行模式,这样不允许每个目录的版本select。
  2. 启用目录特定版本home/<domain>/domains/<subdomain>.<domain>.com/public_html/publicphpinfo(); returns 5.3.3 version phpinfo(); returns 5.3.3 version
  3. 尝试yum replace php-common --replace-with=php55-php-common有太多的包WARNING: Unable to resolve all providers ,并没有继续。
  4. 试图删除5.3版本,但其他PHP代码rest,这就是为什么我犹豫replace该版本
  5. 浏览网页的答案只是为了发现,我读的东西超过一半是破碎,存储库过期或与其他包冲突当我尝试yum upgrade php

有人可以帮助这个令人沮丧的情况吗? 我真的以为安装另一个版本,并启用它的目录将解决这个问题。

我们build议您使用SCL版本的软件包,这样PHP版本可以和平共处,而不会引起冲突。 我已经在我们的新服务器上运行了Remi的PHP 5.6.15包,在Virtualmin下运行,并且工作正常(我必须调整php-lib.pl中的检测代码,尽pipe在几天之内不需要当新的Virtualmin出来)。

另外,你应该使用fcgid执行模式,而不是 mod_php。 mod_php只能在单个Apache实例中的一个版本中存在,并且不会与多个版本一起使用。 fcgid是使用install.sh安装的Virtualmin系统中的默认执行模式,但可在“系统设置:服务器模板:模板名称:Apache网站”中进行configuration。 “默认的PHP执行模式”是你想要的选项,FCGId是使用多个PHP版本(以及其他各种其他原因)的正确值。

当前版本的Virtualmin不支持所有的SCL PHP软件包,但是下一个版本可以很容易地处理任意版本(并且可能有能力查询SCL命令找出你喜欢的PHP版本;我不知道不知道有多less实施了)。

在过去的几周里,在我们的论坛上,关于这个问题已经有相当多的讨论,因为SCL已经获得了更多的PHP版本,并且Virtualmin对SCL包的支持得到了扩展。

这里有一些文档(我不确定是否Eric已经更新了,以解决SCL的最近的变化,但是如果还没有的话,他们将很快):

http://www.virtualmin.com/documentation/web/multiplephp

注意,Apache无法pipe理各种版本的PHP(使用mod_php),所以你只能安装“php”或“php55-php”

要在Apache HTTPD服务器中启用不同版本的PHP,您需要使用“FPM”。

使用Apache 2.2(在CentOS 6.x中),您必须使用mod_proxy_fastcgi(在EPEL中可用,从2.4反向移植)和ProxyPass指令。

Apache 2.4(在CentOS 7.x中)更简单,它支持SetHandler到fastcgi代理。

一些例子: