如何在启用了PDO的情况下在Red Hat Enterprise Linux上运行PHP 5.3? PHP53与yum一起安装

这个问题很复杂,我根本不是专家,所以请耐心等待。 我的服务器pipe理团队用一个标准的RHEL框设置了我。 它有PHP预装,以及Apache。

我现在试图在机器上安装Drupal 7,这已经提醒我一个问题:

数据库支持禁用

您的Web服务器似乎不支持任何常见的PDO数据库扩展。 检查您的托pipe服务提供商,看他们是否支持PDO(PHP数据对象),并提供Drupal支持的任何数据库。

谷歌search这个主题,并与我们的服务器人谈话,似乎我们需要启用php.ini文件中的PDO扩展。 很好,在/etc/php.ini中,我添加了扩展名= pdo.so和extension = mysql_pdo.so行。

没有什么改变,我有几个担心。 当我们在服务器上search一个pdo.so文件时,它位于/ usr / somewhere内部的modules目录下。 我们将path复制到php.ini中作为extension_dir=[that path] 。 重新启动Apache,没有改变。

当我运行php -version时,我看到一个错误消息,说它无法加载dynamic库,但它正在寻找/ usr / local / lib / php / extensions / some-strange-no- debug-non-zts-0330i504065 /目录。 不在我们刚刚在php.ini中设置为“extensions_dir”的目录中。 在phpinfo()输出中,它列出了我们在php.ini中设置的扩展目录。

其次,在phpinfo()输出中,在“configuration命令”部分中,存在--disable-pdo标志。

如果我检查which php ,然后在那里导航,在那个目录中有另一个名为php-config的文件。 打开那个,TA DA! 有一个“extension_dir”值匹配前面提到的/some-strange-no-debug-non-zts-92ur9u92i/目录。

这是否需要用适当的标志重新编译? 可以在php.ini中修复吗? 如果没有,我们甚至会重新编译php,如果它是用yum或rpm安装的话?

谢谢!!!

更新1
我应该说,我正在使用RHEL5 php53软件包。 我已经运行yum安装php53-pdo。 如果我尝试运行yum install php-pdo(或任何其他非php53 php软件包),我会在php53-common和php-common之间发生冲突错误,这就是为什么我开始运行php53软件包的原因。

假设您正在使用RHEL5 php53软件包:

 # yum install php53-pdo 

如果您仍然使用默认的RHEL5 PHP 5.1 RPMs,那么您首先将它们全部卸载,然后在php53链中安装您认为需要的所有东西。

 # yum search php53 

但是,RHEL php 5.3 RPM不支持PEAR或PECL。 他们也缺less一些其他的可用于较旧的RPM的PHP扩展。 如果您需要这些软件包,您可以自己安装(来自源代码),find您认为值得信任的另一个回购软件,或者咬紧牙关并转至RHEL6。 如果你使用RHEL的php53包装链,那么你绝对要testing你所有的代码。 testing开销实际上可能使得使用RHEL6更容易。

你可以这样做来启用pdo:

 yum install php-pdo 

取决于你正在使用的数据库(MySQL,PostgreSQL,…),确保你已经启用了相应的扩展名pdo_mysql.sopdo_pgsql.so 。 不要忘记重启Apache。

 $ php -i | grep pdo /etc/php.d/pdo.ini, /etc/php.d/pdo_mysql.ini, /etc/php.d/pdo_odbc.ini, /etc/php.d/pdo_pgsql.ini, /etc/php.d/pdo_sqlite.ini, pdo_mysql pdo_pgsql Revision => $Id: pdo_pgsql.c 300351 2010-06-10 12:11:19Z iliaa $ pdo_sqlite