多个PHP版本,无法连接mysqli。

3

根据http://kb.sp.parallels.com/en/118378的说明,我已经成功地将php 5.4.38和5.5.21安装到运行php 5.3的centos 6.6 plesk服务器上。

在将一个joomla网站转移到这个服务器后,我遇到了以下问题:

Error displaying the error page: Application Instantiation Error: Could not connect to MySQL.

通过在Joomla的configuration.php中将$dbtype从mysqli更改为mysql,我使其正常工作,但这不是我想要的。
此外,我还有更多自定义网站需要转移,它们使用mysqli,但所有这些网站都返回:
Warning: mysqli_connect(): (HY000/2002): No such file or director

我检查了unix_socket,发现它是默认设置的,但是我还是在php 5.4和5.5的php.ini文件中保存了它:mysqli.default_socket = /var/lib/mysql/mysql.sock,但仍然没有作用。

难道php-mysqli没有安装到其他版本的php中吗?如果是这样的话,那么如何在这些并行的php实例中安装模块呢?

默认的Centos 5.3.3中mysqli的phpinfo为:

  • MysqlI Support enabled
  • Client API library version 5.1.73
  • Active Persistent Links 0
  • Inactive Persistent Links 0
  • Active Links 0
  • Client API header version 5.1.73
  • MYSQLI_SOCKET /var/lib/mysql/mysql.sock

自定义安装的5.4版本mysqli的phpinfo为:

  • MysqlI Support enabled
  • Client API library version mysqlnd 5.0.11-dev - 20120503 - $Id: bf************************8c5c77 $
  • Active Persistent Links 0
  • Inactive Persistent Links 0
  • Active Links 0

你是否检查了每个安装的php.ini配置文件,以确保mysqli已启用?尝试在每个安装上运行php_info()来查看。 - Styphon
你能告诉我为什么要使用多个版本吗? - phpfresher
是的,看起来已经启用了,但是比较5.5和5.3的phpinfo,我发现在5.3中有两行额外的内容: “客户端API头版本5.1.73 MYSQLI_SOCKET /var/lib/mysql/mysql.sock” 这两行在5.5和5.4中都没有。 - JoePanpi
我使用多个版本,因为CentOS自带的是5.3.3,而Joomla需要5.3.10及以上版本。 - JoePanpi
1个回答

1
我遇到了同样的问题,我通过将“localhost”更改为127.0.0.1来解决。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接