我在 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 方法”。
进入 GUI 模式(X-Windows 最好是 Gnome 桌面),然后进入“添加/删除软件部分(包管理器)。
单击“搜索”选项卡并输入搜索字符串 php,并将单选按钮设置为“已安装的包”,然后点击“搜索”按钮。
搜索结果将显示现有的 php 模块,开头带有勾选的复选框。如下所示:
[/] php-5.1.x..... [/] php-common-5.1.x...... [/] php-cli-5.1.x...... [/] php-ldap-5.1.x...... Etc...Etc...
现在取消勾选所有结果行的复选框,然后单击“应用”按钮。这将删除现有的 PHP 版本模块。
在“包管理器”中单击“搜索”选项卡并输入搜索字符串
php53
。将单选按钮设置为“所有包”并点击“搜索”按钮。搜索显示许多与新 PHP 版本 5.3.x 相关的结果行,并且每行前面都有未勾选的复选框。
现在勾选所有结果行的复选框,然后单击“应用”按钮。
现在,“包管理器”将开始检查所选 PHP 模块的依赖模块并下载新的 PHP 5.3.x 包模块。然后它会自动安装。
现在重新启动系统并使用 检查 PHP 版本php -v
。结果应该是 PHP 5.3.x。
请注意:如果您的安装在“检查依赖项”处停止,请检查是否选择了“PHP53-odbc64-5.3.x.....”。实际上有 2 个 ODBC 包。每个包都适用于您的操作系统的 32 位和 64 位版本。因此,请仅选择一与您的操作系统兼容的 ODBC 包。