如何在CentOS上安装PHP 5.3?


9

我必须在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的新手,我不知道该怎么做。

Answers:


8

更新:显然RHEL 5.6 包括PHP 5.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)的列表。


hm yeah remove可能比擦除更好,因为擦除还可以删除依赖项。首先尝试删除,如果失败,请尝试擦除。
Phil Hollenback

2
remove并且erase是synonymns,根据yum双方的CentOS和Fedora的最新版本下手册页。
larsk's

谢谢!那行得通,尽管我不必删除php,但该列表中的前两个。要安装php 5.3,我只需要安装php53吧?列出了很多软件包,但我认为这是唯一重要的权利吗?
Fivelitresofsoda 2011年

绝对是同义词。yumcommands.py如有疑问,请进来。:)
mattdm 2011年

大概。只有您知道您的应用程序是否需要任何其他模块(例如,xml支持,ldap支持,数据库等等)。
larsk's

4

从2011年1月13日起,答案已经改变。Red Hat发布了5.6版,其中包括PHP 5.3版作为单独的软件包(php53)。

您必须删除旧的PHP,然后分别安装PHP 5.3。这听起来与IUS存储库中的软件包相似,但现在是正式的。

有关更多信息,请参见Red Hat发行说明

请注意,这只是Red Hat的功能,在CentOS中可用之前会稍有延迟。不过,RHEL 5.6更新看起来相对较小,因此我不应该期望它太长。


是的 4个月后 它仍然不在centos仓库中。:(
斯坦恩


自2011年4月起可用。请参阅CentOS 5.6发行说明
Stefan Lasiewski 2011年

2

在安装新版本的软件包之前,请尝试删除它们的旧版本:

百胜清除php-cli php-comon

然后尝试安装yum。

警告:在提交之前,请先查看yum希望进行的更改,以确保您没有删除其他重要的软件包。


2

您是正确的,您需要先卸载默认的php软件包。在继续之前,请记住,其他软件包可能对基本版本有特定的依赖性。可能会没事的,但是只是警告您以后可能需要解决其他问题。

您应该可以通过发出

yum erase php-common php-cli

跟着你

yum install php53


1
  1. 我必须删除php-cliphp-common以及php-dev一些依赖项,但别无其他(MySQL等未受影响。)
  2. 我在PHP 5.3中安装了具有依赖关系的相同软件包,现在一切正常并正在运行。phpinfo确认我正在运行PHP版本5.3.3。
  3. 我重新启动了Apache,运行Joomla的站点运行正常。

0

我遇到了同样的问题,其中“ yum update php”会给我带来冲突错误。

不过,运行“ yum update”(更新所有内容)确实对我有用。试试看。

另外,请注意,如果您运行“ yum delete php”或“ yum remove php”,它可能会删除所有依赖PHP的软件包 ……如果已安装,则可能包括您的Plesk或CPanel控制面板。如果我没记错的话,您将不得不重新安装它们,这可能会很痛苦。


2
是的,我确实有这个问题。要升级PHP,yum想要删除Drupal,它并不是真正的依赖项:它需要PHP才能工作,但是它并不在乎哪个版本的PHP,因为它是PHP源代码,而不是编译程序。有什么方法可以卸载PHP5.2并将其留给Drupal吗?
巴特

0

经过大量研究,我刚刚解决了这个问题,即在CentOS 5.3上安装PHP 5.3.10。我曾尝试使用包括Atomicorp repo在内的几个存储库,但是这使plesk崩溃了

我终于找到了以下步骤,请与我分享。

开始

下载并启用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

完成

干杯; 标记

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.