使用apache执行ThreadSafe PHP的Wordpress无法连接到mysql,但IIS和NTS PHP没有问



我开发了一个WordPress网站,用于使用PHP FastCGI在IIS上运行,它很有效。

我发现这个网站太慢了,所以试着在Apache下测试它。

现在我已经安装了WordPress网站,IIS,Apache和2个不同的php安装。

1 PHP是非线程安全的PHP(V7.4.9(,它将由IIS FastCGI模块调用并正常工作。

另一个是ThreadSafe PHP(V7.4.9(,它将从Apache调用,但不适用于mysql。

当我在Apache(localhost:81(下执行代码时,它会产生以下错误:

Fatal error: Uncaught Error: Call to undefined function mysql_connect() in D:Websitewp-includeswp-db.php:1670 
Stack trace: 
#0 D:Websitewp-includeswp-db.php(632): wpdb->db_connect() 
#1 D:Websitewp-includesload.php(476): wpdb->__construct('DB_USER_VAL', 'DB_PASS_VAL', 'DB_NAME_VAL', '127.0.0.1') 
#2 D:WebsitesNavandwp-settings.php(124): require_wp_db() 
#3 D:Websitewp-config.php(92): require_once('D:\Website...') 
#4 D:Websitewp-load.php(37): require_once('D:\Website...') 
#5 D:Websitewp-blog-header.php(13): require_once('D:\Website...') 
#6 D:Websiteindex.php(17): require('D:\Website...') 
#7 {main} thrown in D:Websitewp-includeswp-db.php on line 1670

注:

  • Apache PHP在调用phpinfo((时工作正常
  • 已经为两个php安装设置了extensiondir
  • phpmysql和pdo_mysql都为php安装启用
  • 两个php.ini文件相同(由WinMerge检查(

为什么在Apache和TS-PHP上调用相同的mysql函数会产生错误,但在IIS上却能正常工作?以及我如何解决这个问题(因为我无法更改WordPress源(

惊喜!根据答案https://stackoverflow.com/a/14786808/1441476,对于在apache下运行的版本,在php.ini中使用绝对扩展dir,对我有效(extension_dir = "C:/Programs/php/php-7.4.9-Win32-vc15-x64/ext"而不是extension_dir = "ext"(

最新更新