【发布时间】:2018-08-30 00:29:46
【问题描述】:
我知道有很多关于此的帖子,但其中大多数似乎是在 wordpress 网站的生命周期中很晚 - 我的内容发生在 install.php 上,所以我猜它更基础问题。
我的设置:
Windows 10 (1803)
Nginx (1.15.2)
PHP (7.2.9 - None Thread Safe)
MySQL (8.0 - Community)
文件结构 - (如果有任何霸凌)
nginx - \Development\nginx\nginx-1.15.2\
PHP - \Development\php\php-7.2.9-nts-Win32-VC15-x64\
nginx 正在从它的/html/ 目录提供文件,wordpress 在一个子目录html/wordpress
MySQL 创建了一个名为“wordpress”的空白数据库,可通过命令行访问,HeidiSQL 应用程序使用 wordpress 站点的凭据。
我知道 php 作为基本的 <?php phpinfo(); ?> 文件输出 PHP 信息,访问 http://127.0.0.1:8080/wordpress/wp-admin/setup-config.php 会启动安装过程,并显示请求数据库信息的屏幕。但是提交到:
http://127.0.0.1:8080/wordpress/wp-admin/setup-config.php?step=2
这会引发 500 错误,空白屏幕。
在 nginx 访问日志中我可以看到:
127.0.0.1 - - [28/Aug/2018:08:56:20 +0100] "POST /wordpress/wp-admin/setup-config.php?step=2 HTTP/1.1" 500 5 "http://127.0.0.1:8080/wordpress/wp-admin/setup-config.php?step=1&language=en_GB" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0"
但是 nginx 错误日志中没有任何内容 - 实际上什么也没有,它充满了丢失的图标行,但我创建了一个空白行来减少噪音。
当wp-config.php 使用数据库信息和define('WP_DEBUG', true); 行进行硬编码时,访问install.php 会给出错误500 错误-但没有其他信息。
知道问题是什么吗? 可能是文件权限问题,我假设 nginx 以我的 windows 用户身份运行 - 这是一个管理员。
更新:
Windows php 没有附带 php.ini 文件(为什么!!!)所以我从 http://www.reallylinux.com/docs/php.ini 抓取了一个并将其放在 eh php 根目录中 - 这有效,我可以打开错误日志记录
现在这给了我一些工作 - 因为我已经找到了问题的路线:
[error] 2200#6728: *9 FastCGI sent in stderr: "PHP Fatal error:
UncaughtError: Call to undefined function mysql_connect() in \nginx\nginx-1.15.2\html\wordpress\wp-includes\wp-db.php:1564
有人知道为什么 mysql_connect() 是未定义的吗?
更新 2:
问题的实际路径原因是这个 PHP 错误:
无法使用 Php 7.2.8 (https://bugs.php.net/bug.php?id=76660) 连接到 mysql 8
降级到 PHP 7.2.7,问题就消失了……鉴于已接受答案中所做的更改。
【问题讨论】:
-
这是一个 500 代码错误。检查您的 PHP 日志文件以了解问题(/var/log/php.log 之类的)
-
@elhostis - 谢谢 - 我检查了 phpinfo() 中的
error_log设置,但它有 没有值,我检查了 phpinfo() 中的 php.ini 文件位置和它说 C:\windows - 但它不存在......这是有道理的,因为 php 为什么会有写权限来在 C;\windows 中创建该文件......有人知道它应该在哪里吗?
标签: php wordpress nginx http-status-code-500