我开发了一个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"
(