我知道有很多关于这个的帖子,但是大多数帖子似乎都是在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/
目录中提供文件,wordpressin是一个子目录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错误日志中没有任何内容 - 几乎没有任何东西,它充满了缺少的favicon线,但我创建了一个空白的,以减少噪音。
当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根目录中 - 这个工作,我可以打开erro日志
现在这给了我一些工作 - 因为我已经到了问题的路线:
[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无法连接到mysql 8(https://bugs.php.net/bug.php?id=76660)
降级到PHP 7.2.7并且问题消失了......考虑到已接受的答案所做的更改。
mysql_connect()
是一个函数,直到PHP 5.2
,并在PHP 5.5.0中被弃用,并在PHP 7.0.0中被删除。相反,应该使用MySQLi或PDO_MySQL扩展。 Ref: PHP Manual