Вопрос или проблема
Я получаю следующую ошибку при нажатии на Настроить ваш сайт
после чистой установки. Похоже, что $wp_customize
неправильно равен null в указанном файле? Вся установка прошла успешно, и мне сложно найти документацию по этой проблеме.
Фатальная ошибка: необработанная ошибка: Вызов функции члена changeset_post_id() на null в /home/<user>/blog/wp-admin/customize.php:29 Стек вызовов: #0 {main} выброшено в /home/<user>/blog/wp-admin/customize.php на строке 29
Похоже, я получил неправильную конфигурацию nginx
из статьи о том, как настроить WordPress в подкаталоге.
Конфигурация до
location @wp {
rewrite ^/blog(.*) /blog/index.php?q=$1;
}
location ^~ /blog {
root /home/user;
index index.php index.html index.htm;
try_files $uri $uri/ @wp;
location ~ \.php$ {
include fastcgi_params;
fastcgi_index index.php;
fastcgi_intercept_errors on;
# Удалил эту строку
fastcgi_split_path_info ^(/blog)(/.*)$;
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
}
break;
}
Конфигурация после
location @wp {
rewrite ^/blog(.*) /blog/index.php?q=$1;
}
location ^~ /blog {
root /home/user;
index index.php index.html index.htm;
try_files $uri $uri/ @wp;
location ~ \.php$ {
include fastcgi_params;
# Добавил эту строку
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_index index.php;
fastcgi_intercept_errors on;
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
}
break;
}
Как упоминалось в некоторых комментариях, некоторые переменные сервера PHP были неправильно заданы из-за неправильной конфигурации nginx, что вызывало проблемы при загрузке /wp-admin/customize.php
.
Вы можете подтвердить, что ваша конфигурация nginx неверна для этого сценария, если вы посетите /wp-admin/customize.php?wp_customize=on
, и это начнет работать вместо того, чтобы выдать фатальную ошибку.
Нашёл ошибку в конфигурации nginx.
найти код:
fastcgi_param PATH_INFO $document_root$fastcgi_script_name;
заменить на:
fastcgi_param PATH_INFO $fastcgi_path_info;
Сайт заработал без ошибок. Моя проблема решена.
Ответ или решение
Решение проблемы с Fatal Error в wp-admin/customize.php после чистой установки WordPress
При установке WordPress и попытке доступа к секции «Настройка вашего сайта» возникает ошибка:
Fatal error: Uncaught Error: Call to a member function changeset_post_id() on null in /home/<user>/blog/wp-admin/customize.php:29 Stack trace: #0 {main} thrown in /home/<user>/blog/wp-admin/customize.php on line 29
Эта ошибка возникает из-за того, что переменная $wp_customize
оказывается равной null, что нарушает выполнение сценария. Давайте разберемся с причиной этого поведения и тем, как это можно исправить.
Причина проблемы
Неправильная настройка Nginx
Предполагаемая основная причина возникновения этой ошибки связана с некорректной конфигурацией вашего веб-сервера Nginx. Ваша первоначальная конфигурация не устанавливает необходимые PHP-серверные параметры, что приводит к проблемам при попытке загрузить страницу /wp-admin/customize.php
.
В частности, переменные окружения для FastCGI были неправильно настроены, что серьезно сказывается на том, как Nginx передает запросы PHP. Ваша конфигурация включала настройку:
fastcgi_param SCRIPT_FILENAME $request_filename;
Однако для полноценной работы WordPress, эта строка должна быть настроена следующим образом:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
Шаги для исправления конфигурации
-
Измените параметры FastCGI: Убедитесь, что вы правильно настраиваете параметры FastCGI, как указано выше. Добавьте строку, которая гарантирует, что файл исполняемого скрипта PHP будет правильно определен Nginx.
-
Обновите следующие параметры: Также было замечено, что переменная
PATH_INFO
была неправильно настроена. Вместо:
fastcgi_param PATH_INFO $document_root$fastcgi_script_name;
используйте:
fastcgi_param PATH_INFO $fastcgi_path_info;
Эти изменения помогут Nginx корректно обрабатывать запросы к файлам PHP.
- Перезагрузите Nginx: После внесения изменений в конфигурацию Nginx убедитесь, что вы перезагрузили веб-сервер:
sudo systemctl restart nginx
Дополнительные проверки
Для проверки того, была ли исправлена проблема, вы можете посетить следующий URL:
/wp-admin/customize.php?wp_customize=on
Если страница загружается без ошибок, это свидетельствует о том, что проблема действительно заключалась в неправильной конфигурации Nginx.
Заключение
Проблема с ошибкой Fatal в файле /wp-admin/customize.php
после установки WordPress во многом связана с настройками вашего веб-сервера. Основное внимание следует уделить правильной настройке параметров FastCGI Nginx. С внесенными изменениями вы сможете успешно использовать возможности настройки WordPress без дальнейших ошибок.
Если у вас остались вопросы или требуется дополнительная помощь по настройке, не стесняйтесь обращаться на специализированные форумы или к профессиональным разработчикам.