如何解决使用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:\Website\wp-includes\wp-db.php:1670
Stack trace:
#0 D:\Website\wp-includes\wp-db.php(632): wpdb->db_connect()
#1 D:\Website\wp-includes\load.php(476): wpdb->__construct('DB_USER_VAL','DB_PASS_VAL','DB_NAME_VAL','127.0.0.1')
#2 D:\Websites\Navand\wp-settings.php(124): require_wp_db()
#3 D:\Website\wp-config.php(92): require_once('D:\\Website...')
#4 D:\Website\wp-load.php(37): require_once('D:\\Website...')
#5 D:\Website\wp-blog-header.php(13): require_once('D:\\Website...')
#6 D:\Website\index.php(17): require('D:\\Website...')
#7 {main} thrown in D:\Website\wp-includes\wp-db.php on line 1670
注意:
- 调用phpinfo()时,Apache PHP可以正常工作 已为两个php安装均设置了
- extension_dir
- 两个php安装均启用了php_mysql和pdo_mysql
- 两个php.ini文件都相同(由WinMerge检查)
为什么在Apache和TS-PHP上调用相同的mysql函数会产生错误,但在IIS上可以正常工作?以及如何解决此问题(因为我无法更改WordPress源代码)
解决方法
惊喜!
根据答案https://stackoverflow.com/a/14786808/1441476,对于在Apache下运行的版本,在php.ini中使用绝对扩展目录对我有用(InvalidRequestError: Can't call Query.update() or Query.delete() when join(),outerjoin(),select_from(),or from_self() has been called
而不是extension_dir = "C:/Programs/php/php-7.4.9-Win32-vc15-x64/ext"
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。