我在同一服务器(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(有效)。
想法?
答案 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没有修复。
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%会解决此问题。但是,这些是我采取的步骤:
yum update
发现3个先前存在的rpmdb问题,“ yum check”输出如下:
我将不提供完整的更新,原因是由于这些问题,我无法执行Yum更新。
然后我测试了该站点,它的加载没有问题。
答案 2 :(得分:0)
在$ PATH中可能缺少位置和一些信息。转到工作域的通用行并发出:哪个php-mysql 并向不起作用的人发出相同的命令。
如果您使用不同的linux用户,.profile似乎会出现问题