我必须在我的CentOS服务器上安装PHP 5.3。 如果我做yum install php ,那么基本仓库会安装5.1.6,这对于我需要安装的应用程序来说太旧了。 所以我一直在尝试使用IUS存储库,遵循IUS的官方指示:
root@linuxbox ~]# wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/ius-release-1-2.ius.el5.noarch.rpm root@linuxbox ~]# wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/epel-release-1-1.ius.el5.noarch.rpm root@linuxbox ~]# rpm -Uvh ius-release*.rpm epel-release*.rpm
好。 现在我只需要yum install php53等,我需要的所有…但我得到这个错误:
Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Check Error: file /usr/bin/php from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64 file /usr/bin/php-cgi from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64 file /usr/share/man/man1/php.1.gz from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64 file /etc/php.ini from install of php53u-common-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-common-5.1.6-27.el5_5.3.x86_64 Error Summary -------------
我不知道如何解决这个问题。 我想我必须删除基础包。 但是,作为Linux新手,我不知道该怎么做。
更新 :显然,RHEL5.6 包含PHP5.3 ,所以很快就会在CentOS本地显示。
file /usr/bin/php from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64 file /usr/bin/php-cgi from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64 file /usr/share/man/man1/php.1.gz from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64 file /etc/php.ini from install of php53u-common-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-common-5.1.6-27.el5_5.3.x86_64
这里的问题是,你正在安装的软件包有一个不同的名称(php53而不是php),但他们试图安装相同的文件…因此冲突。 这不一定是将软件包放在一起的最好方式,但是我不知道是否有更好的软件包可用,所以我们将忽略它。
要删除当前安装的软件包:
# yum remove php-cli php-common php
所以,一般来说, yum remove <list of packages>会删除软件包。 当然, yum list installed来查看已安装软件包(或rpm -qa )的列表。
截至2011年1月13日,这个问题的答案已经改变。红帽已经发布了5.6版本,其中包括PHP版本5.3作为一个单独的包( php53 )。
你必须删除旧的PHP,然后分别安装PHP 5.3。 这听起来与IUS存储库中的软件包类似,但现在是正式的了。
有关更多信息,请参阅Red Hat发行说明 。
请注意,这只是从红帽出来的,在CentOS中可用之前会有一点延迟。 但RHEL 5.6的更新看起来相对较小,所以我不应该指望它太长。
尝试删除旧版本的软件包之前安装新的:
yum擦除php-cli php-comon
然后尝试你的yum安装。
警告 :查看yum在提交之前所做的更改列表,以确保不会删除其他重要的软件包。
你是对的,你需要先卸载默认的php包。 在继续之前,请记住其他软件包可能对基本版本有特定的依赖关系。 有机会,你会没事的,但只是被警告,以后可能需要解决其他问题。
你应该可以通过发行来做到这一点
yum erase php-common php-cli
跟着你的
yum install php53
CentOS 6现已推出,并包含PHP 5.3:
php-cli , php-common和php-dev以及一些依赖关系,但是没有其他的东西(MySQL等等)没有被修改。 phpinfo确认我正在运行PHP版本5.3.3。 我有同样的问题,“百胜更新PHP”会给我冲突的错误。
运行“百胜更新”(更新一切)确实为我工作。 试试看。
另外,要知道如果你运行“yum erase php”或者“yum remove php”,它可能会删除所有依赖于PHP的包 …如果你已经安装了Plesk或者CPanel控制面板的话。 如果我没有弄错,你将不得不重新安装,这可能是一个痛苦。
经过多番研究,我刚刚解决了这个问题,即在CentOS 5.3上安装PHP 5.3.10。 我试过使用几个库,包括Atomicorp回购 ,但是这打破了plesk
我终于find了以下步骤作品,认为我分享。
开始
下载并启用REMI和EPEL存储库
cd ~ wget http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm vi /etc/yum.repos.d/remi.repo
在“[remi]”标题下将“enabled = 0”更改为“enabled = 1”
你必须删除php-sqlite2,否则你会得到一个依赖错误
yum remove php-sqlite2
在这种情况下将PHP更新到最新版本5.3.10
yum update php
备份php.ini并启用新安装的版本
mv /etc/php.ini /etc/php.ini.old mv /etc/php.ini.rpmnew /etc/php.ini
备份my.cnf并启用新安装的版本
mv /etc/my.cnf /etc/my.cnf.old mv /etc/my.cnf.rpmnew /etc/my.cnf
安装最新版本的ioncube扩展
wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz tar -xvf ioncube_loaders_lin_x86-64.tar.gz mv ioncube/* /usr/lib64/php/modules/ echo 'zend_extension=/usr/lib64/php/modules/ioncube_loader_lin_5.3.so' > /etc/php.d/ioncube-loader.ini
您可能还需要安装php扩展,在这种情况下,我还需要安装SOAP扩展:
yum install php-soap
重新启动服务以使更改生效
service mysqld restart service httpd restart
DONE
干杯; 标记