我知道有很多关于此的文章,但是其中大多数似乎是在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”的空白数据库,可以通过命令行以及使用wordpress网站凭据的HeidiSQL应用程序进行访问。
我知道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错误日志中什么都没有-实际上什么也没有,它充满了丢失的favicon行,但是我创建了一个空白行以减少噪声。
当wp-config.php
用数据库信息和行define('WP_DEBUG', true);
进行硬编码时,访问install.php
时将显示错误500错误-但没有其他信息。
知道什么是问题吗? 可能是文件权限问题,我假设nginx以Windows用户身份(管理员)运行。
更新:
Windows php没有附带php.ini文件(为什么!),因此我从http://www.reallylinux.com/docs/php.ini中抓取了一个文件并将其放置在php根目录中-这很有用,我可以打开错误日志记录< / p>
现在,这使我有了工作的希望-在我着手解决问题的过程中:
[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,问题就消失了……考虑到可接受答案中的更改。
答案 0 :(得分:1)
mysql_connect()
是一个在PHP 5.2
之前存在的功能,在 PHP 5.5.0 中已弃用,并在 PHP 7.0.0 <版本中将其删除< / strong>。相反,应使用MySQLi或PDO_MySQL扩展。 Ref: PHP Manual