我想把我的CentOS 6.4服务器从php53(epel repository)升级到php53u(ius repository)。 我已经启用了ius版本库,但是因为在服务器上有生产网站,所以我只是犹豫不决。
(因为生产站点在Drupal 7中,我想要保持在5.3的轨道上,但是我也想安装一个Drupal 8开发站点,这个站点最less需要5.3.10 – epel只给我5.3.3)
有谁能给我一个暗示什么是最安全的方法:
几分钟的停机时间是可以接受的,但不是更多。
我假设你的命令应该在两个单独的行上。 我编辑它来反映这一点。
这里的问题是,“百胜擦除PHP”也将拉出依赖。 这意味着你将失去依赖于PHP的安装包。 有一个叫做replace的yum命令。 但它并不总是现在,有时…惊喜。 而不是一个好办法。
因此,我更喜欢打破yum shell 。 完成操作的命令如下所示:
yum shell erase php install php53u php53u-common php53u-xml php53u-devel php53u-mysql php53u-pecl php53u-gd ts run
为了,我们是:
yum shell y/n提示符以供审批。 为了确保我真的得到了一切,我已经知道写一些bash。 就像是:
rpm -qa --queryformat '%{NAME}-%{VERSION}.%{ARCH}\n' | grep -E '^php53[^u].*5\.3' | tr '\n' ' ' rpm -qa --queryformat '%{NAME}-%{VERSION}.%{ARCH}\n' | grep -E '^php53[^u].*5\.3' | sed 's/php53/php53u/;s/-5\.3\..*//'
第一行给出了我在yum shell里面erase后的包列表。 第二行给出了install后要放置的软件包列表。 请注意,您可能需要手动处理一些辅助包(例如来自PECL的包)。 在rpm -qa | grep php | grep -vE '^php53.*5\.3'上使用一些变体 rpm -qa | grep php | grep -vE '^php53.*5\.3' rpm -qa | grep php | grep -vE '^php53.*5\.3'来跟踪这些。 但是,他们应该是很less见的。
好的,这就是我所做的,什么工作,什么不工作:
三种情况:
只需安装php53u,看看会发生什么替代PHP,但抱怨依赖关系
删除PHP并安装php53u
这就像一个魅力的工作:
yum erase php
yum install php53u php53u-common php53u-xml php53u-devel php53u-mysql php53u-pecl php53u-gd
评论者的build议是,首先在testing服务器上进行testing(感谢我的邀请!)。 我在一台运行Drupal 7开发站点的CentOS 5.9服务器(以及一大堆非php相关的东西)上testing了它。 该服务器运行一个MySQL 5.6服务器,需要手动安装php53u-mysql rpm,使用–nodeps才能使其正常工作 – 只需在此处添加完整性即可。
最后,没有停机时间,只是一个优雅的httpd重新加载。
我的问题围绕着“php53常见的与php常见冲突”问题展开。 这个盒子是一个旧的服务器,我将在把它放在生产机器上之前testing一些代码。 它运行的是Centos 5,曾经是生产,但现在已经降级到testing。 现在升级到Centos 6x已经太旧了,没有新的东西,所以我现在还是坚持下来。
所以……几乎没有任何工作,直到我偶然发现在networking上的这个想法:
安装epel和ius版本库。 删除所有的PHP软件包安装所有php53u软件包,如上面的答案中所反映的。
我根本没有使用“yum erase”。
我通常在CentOS 6.x中将5.x默认php升级到ius php53u的是:
rpm -Uhv https://centos6.iuscommunity.org/ius-release.rpm yum -y install yum-utils yum-plugin-replace yum -y install libtidy yum -y --enablerepo=ius-archive replace php --replace-with php53u yum -y --enablerepo=ius-archive install php53u php53u-common php53u-imap php53u-bcmath php53u-gd php53u-dba php53u-mbstring php53u-mcrypt php53u-mysql php53u-soap php53u-xml php53u-tidy php -v