Ошибка Wordpress http 500 при установке

Я знаю, что есть много сообщений об этом, но большинство из них, кажется, намного позже в жизни сайта 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 error - но никакой дополнительной информации.

Есть идеи, в чем проблема? Может быть, это проблема с правами доступа к файлам, я предполагаю, что nginx работает от имени моего пользователя Windows, который является администратором.

ОБНОВИТЬ:

Windows php не поставляется с файлом php.ini (почему !!!), поэтому я взял его из http://www.reallylinux.com/docs/php.ini и поместил его в корневой каталог 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:

Не удается подключиться к mysql 8 с помощью Php 7.2.8 (https://bugs.php.net/bug.php?id=76660)

Переход на PHP 7.2.7, и проблема исчезла ... с учетом изменений, внесенных в принятый ответ.


person Morvael    schedule 28.08.2018    source источник
comment
Это ошибка кода 500. Проверьте свой файл журнала PHP, чтобы понять проблему (/var/log/php.log что-то вроде этого)   -  person elhostis    schedule 28.08.2018
comment
@elhostis - Спасибо - я проверил настройку error_log в phpinfo (), но у нее нет значения, я проверил расположение файла php.ini в phpinfo (), и там написано C: \ windows - но это не там ... что имеет смысл, так как почему у php есть права на запись для создания этого файла в C; \ windows .... кто-нибудь знает, где он должен быть?   -  person Morvael    schedule 28.08.2018


Ответы (1)


mysql_connect() - это функция, которая существовала до PHP 5.2, устарела в PHP 5.5.0 и была удалена в PHP 7.0.0. Вместо этого следует использовать расширение MySQLi или PDO_MySQL. Ссылка: Руководство по PHP

person Satya    schedule 28.08.2018
comment
спасибо, странно, что Wordpress говорит, что для этого требуется php 7, но затем в конфигурации устанавливает его внутреннюю ссылку для использования mysqli_connect() на false. В любом случае перевернул это и исправил проблему, когда php не просматривал правильные директории для расширений - (php для Windows действительно должен предоставлять файл php.ini!), Но теперь проблема заключается в следующем: «Неперехваченная ошибка: вызов неопределенной функции mysqli_init ( ) ', поэтому я не уверен на 100%, что это была причина маршрута. - person Morvael; 28.08.2018
comment
ОК - перевернул логическое значение wordpress назад, так что теперь оно говорит private $use_mysqli = false; Кажется, wordpress нуждается в mysqli, и чтобы ему сказали не использовать его ... очень странно. Это больше не дает мне 500 ошибок. Это все еще не работает, но это, очевидно, другая проблема. - person Morvael; 28.08.2018
comment
Вы пробовали использовать PHP-PDO, я думаю, более эффективно - person Satya; 29.08.2018
comment
Я совсем не пробовал, я никогда не использовал Wordpress до сих пор и не использовал PHP более 10 лет, так что пока просто нащупываю основы ... эффективность - это долгий путь. Прямо сейчас мне очень не хватает MS .NET WebAPI! - person Morvael; 29.08.2018