相同的PHP,相同的服务器,不同的结果

时间:2018-09-29 21:39:50

标签: php wordpress mysqli

我在同一服务器(CentOS 7.5.1804)上有三个域,所有域都运行WordPress 4.9.8,都运行相同版本的PHP(7.2.10),并使用相同的php.ini文件(从字面上看,不是相同的php.ini文件复制到每个目录(完全相同的单个文件)。

问题在于,WordPress仅在一个域上认为我没有安装php-mysql,而其他两个站点都可以正常工作。

我在非工作域中得到了以下信息:

  

您的PHP安装似乎缺少MySQL扩展,   是WordPress必需的。

尽管在不工作的站点上使用了相同的php.ini文件,但phpinfo()报告缺少mysqli部分。

域为:hummdis.com(无效),dev.hummdis.com(有效), exoticallyplugged.com(有效)。

想法?

3 个答案:

答案 0 :(得分:1)

我能想到的唯一解释是所有针对MySQL的测试均失败,并且在您所有的站点中都失败了。

但是在两个工作站点上,您有一个$view = new View(); $view->setLayout('Kuroi/EvzDuser.email'); // <-- this works $view->setTemplatePath('Kuroi/EvzDuser.Plugin'); // <-- this doesn't work!!! $view->set('html',$html); $view->set('lang',$this->lang); $layout=$view->render('email_register'); 修正文件,可以使一切正确。对于不起作用的那个,WP_CONTENT_DIR没有修复。

这是relevant source section

db.php

如您所见,只有在所有测试都失败并且没有找到“ db.php”的情况下,才会生成错误。

您可能还需要检查站点之间的if ( ! extension_loaded( 'mysql' ) && ! extension_loaded( 'mysqli' ) && ! extension_loaded( 'mysqlnd' ) && ! file_exists( WP_CONTENT_DIR . '/db.php' ) ) { wp_load_translations_early(); $protocol = wp_get_server_protocol(); header( sprintf( '%s 500 Internal Server Error', $protocol ), true, 500 ); header( 'Content-Type: text/html; charset=utf-8' ); die( __( 'Your PHP installation appears to be missing the MySQL extension which is required by WordPress.' ) ); 指令是否相同。我似乎还记得MySQL模块可能是动态加载的,如果是这样,可能是某些网站加载了它们,而有些则没有

答案 1 :(得分:0)

因此,我已经解决了该问题,但我不确定100%会解决此问题。但是,这些是我采取的步骤:

  1. yum update
  2. 这导致:
  

发现3个先前存在的rpmdb问题,“ yum check”输出如下:

我将不提供完整的更新,原因是由于这些问题,我无法执行Yum更新。

  1. 我找到了this post,并按照了步骤进行操作。
  2. 然后我发现this post,并按照安装yum plugin-priorities的步骤进行操作。

然后我测试了该站点,它的加载没有问题。

答案 2 :(得分:0)

在$ PATH中可能缺少位置和一些信息。转到工作域的通用行并发出:哪个php-mysql 并向不起作用的人发出相同的命令。

如果您使用不同的linux用户,.profile似乎会出现问题