无法从 CentOS 中删除 PHP 包,也无法将 PHP 包更新到 PHP 5.3

无法从 CentOS 中删除 PHP 包,也无法将 PHP 包更新到 PHP 5.3

我在 CentOS 中遇到了一个有趣但又令人恼火的问题。

我正在尝试配置此服务器以运行我建立的 Symfony2 网站。该网站无法运行,我已将问题归咎于服务器上的一些 PHP 软件包是 5.1,而一些较新的软件包是 PHP 5.3。(Symfony2 需要 PHP 5.3 才能运行)。

我使用以下命令:

yum install php53u.x86_64

我收到此错误:

错误:php53-common 与 php-common 冲突

尽管它确实说已经安装好了。

无论如何,我去使用yum info php,它告诉我服务器上安装的 PHP 版本仍然是 5.1.6。我去使用yum remove php,想着如果我删除旧 PHP 安装的所有痕迹,我就可以重新安装 5.3,但我收到以下错误:

与参数 PHP 不匹配。

我究竟做错了什么?

答案1

已成功修复该问题。

rpm -qa | grep php按照建议使用反身性只会带回:

php53-通用-5.3.3-1.el5_7.6

作为唯一安装的包。我删除了这个包,然后使用以下命令安装了 PHP:

yum 安装 php53 php53-cli php53-common php53-gd php53-imap php53-intl php53-mbstring php53-mysql php53-odbc php53-pdo php53-pspell php53-snmp php53-xml php53-xmlrpc php-devel

安装此程序没有出现任何错误。我重新启动了 Apache 并使用 Symfony2 安装和 测试了服务器phpinfo();。它们都正常工作,服务器现在可以运行了!

谢谢反身性寻求帮助。

答案2

查看安装了哪些 PHP 包:rpm -qa | grep php

看起来你已经在使用http://iuscommunity.orgrepos。他们有一个很好的工具来帮助升级一组软件包,比如 PHP:

yum install yum-plugin-replace
yum replace php --replace-with php53

这将自动删除所有核心 PHP 包并从 IUS 安装最新版本。请参阅http://iuscommunity.org/Docs/ClientUsageGuide#Upgrading_Stock_RHEL_Packages_to_IUS_Packages了解更多信息。

答案3

将 PHP 从旧版本 5.1.x 更新到 5.3.x 的最简单方法,该方法称为“NASHOT 方法”。

  1. 进入 GUI 模式(X-Windows 最好是 Gnome 桌面),然后进入“添加/删除软件部分(包管理器)。

  2. 单击“搜索”选项卡并输入搜索字符串 php,并将单选按钮设置为“已安装的包”,然后点击“搜索”按钮。

  3. 搜索结果将显示现有的 php 模块,开头带有勾选的复选框。如下所示:

    [/] php-5.1.x.....
    [/] php-common-5.1.x......
    [/] php-cli-5.1.x......
    [/] php-ldap-5.1.x......
    Etc...Etc...
    
  4. 现在取消勾选所有结果行的复选框,然后单击“应用”按钮。这将删除现有的 PHP 版本模块。

  5. 在“包管理器”中单击“搜索”选项卡并输入搜索字符串php53。将单选按钮设置为“所有包”并点击“搜索”按钮。

  6. 搜索显示许多与新 PHP 版本 5.3.x 相关的结果行,并且每行前面都有未勾选的复选框。

  7. 现在勾选所有结果行的复选框,然后单击“应用”按钮。

现在,“包管理器”将开始检查所选 PHP 模块的依赖模块并下载新的 PHP 5.3.x 包模块。然后它会自动安装。

现在重新启动系统并使用 检查 PHP 版本php -v。结果应该是 PHP 5.3.x。

请注意:如果您的安装在“检查依赖项”处停止,请检查是否选择了“PHP53-odbc64-5.3.x.....”。实际上有 2 个 ODBC 包。每个包都适用于您的操作系统的 32 位和 64 位版本。因此,请仅选择与您的操作系统兼容的 ODBC 包。

相关内容