При обновлении версии PHP появляется предупреждение "Use of undefined constant WP_CONTENT_DIR"

23 июн. 2020 г., 18:02:14
Просмотры: 20.2K
Голосов: 5

На моем общем хостинге HostGator с возможностью настройки PHP для каждого домена через CPanel, при включении PHP 7.3 (или других версий 7.x) для существующего блога появляется страница с ошибкой:

Warning: Use of undefined constant WP_CONTENT_DIR – assumed 'WP_CONTENT_DIR' (это вызовет ошибку в будущих версиях PHP) в /my_site/public_html/wp-includes/load.php на строке 141 Похоже, что в вашей установке PHP отсутствует расширение MySQL, которое требуется для WordPress

Когда я ищу это в Google, все советы касаются установки mysqld, но он наверняка уже установлен, так как свежая установка WordPress на отдельном поддомене прекрасно работает с PHP 7.3. Вероятно, я что-то упускаю в файле wp-config.php моего старого сайта. Однако, сравнивая рабочие и нерабочие версии, я не вижу явных различий.

2
Комментарии

Как ты решил эту проблему? У меня точно такая же ситуация.

Abhishek Balani Abhishek Balani
17 июл. 2020 г. 16:42:13

@TheOddAbhi Должен обновить информацию - оказалось, что в корневой директории (выше public_html) у меня был файл .htaccess с командами для PHP 7.1, который мешал настройкам в CPanel. У меня есть подозрение, что это было так с тех пор, как я начал работать с HostGator, и они переносили мои данные с предыдущего хостинга.

Ken Y-N Ken Y-N
18 июл. 2020 г. 19:22:43
Все ответы на вопрос 5
1

Убедитесь, что константа WP_CONTENT_DIR определена в вашем файле wp-config.php. Это должен быть путь к директории wp-content.

define('WP_CONTENT_DIR', '/путь/до/wordpress/wp-content');
23 июн. 2020 г. 18:35:43
Комментарии

Спасибо. Это решило проблему для меня. Не полностью, но устранило эту ошибку.

Abhishek Balani Abhishek Balani
17 июл. 2020 г. 16:51:15
0

Вот что помогло в моем случае: мой сайт на WordPress, размещенный у Hostgator, выдавал ту же ошибку, пока я не закомментировал корневой файл .htaccess. Вот так:

Я закомментировал стандартные настройки PHP

Мой сайт является поддоменом, поэтому у него был собственный .htaccess, в котором и была указана версия PHP (cPanel сделал это автоматически). Мне не пришлось редактировать wp-config.php или другие файлы.

Это решение я нашел в комментариях к этой записи:

https://wordpress.org/support/topic/php-7-3-errors/#post-12720824

27 авг. 2020 г. 02:47:16
0

Обычно константа WP_CONTENT_DIR определяется в файле https://developer.wordpress.org/reference/files/wp-includes/default-constants.php/ (который загружается после wp-settings.php):

     if ( ! defined( 'WP_CONTENT_DIR' ) ) {
            define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' ); 
            // Без завершающего слеша, только абсолютные пути - WP_CONTENT_URL определяется ниже.
        }

Это установит WP_CONTENT_DIR по умолчанию в папку 'wp-content' вашего сайта, если вы (или кто-то/что-то) не определили это ранее в wp-config.php с помощью команды вроде этой:

define('WP_CONTENT_DIR', '/путь/до/wordpress/wp-content');

В «чистой»/стандартной установке не должно быть этого DEFINE в файле wp-settings. Возможно, у вас есть плагин или функция, которая переместила папку контента в новое местоположение в качестве «метода безопасности» (хотя полезность этого спорна — «безопасность через неясность» работает не так хорошо) и изменила значение переменной WP_CONTENT_DIR.

Поэтому проверьте ваш файл wp-settings.php на наличие этого оператора DEFINE. Удалите его (если вы действительно не хотите, чтобы ваши файлы wp-content находились в другом месте), или найдите на вашем сайте плагин, который делает это.

23 июн. 2020 г. 20:52:27
0

В моём случае одновременно работали два файла .htaccess (один в "public_html" и один выше корневой директории), что вызывало конфликт. Я удалил файл, и это сработало. Таким образом мне удалось решить проблему с обновлением версии WordPress.

Оригинальная статья с этим решением: https://iiiji.com/fix-php-upgrade-error-whm-cpanel/

9 сент. 2020 г. 22:03:49
1

Я только что обновил версию PHP с 7.0 до 7.4 через Multi Php Editor для своего сайта и столкнулся с ошибкой "Use of undefined constant WP_CONTENT_DIR – assumed ‘WP_CONTENT_DIR’".

После этого я понизил версию обратно до 7.0 и получил следующую ошибку:

Ваша установка PHP, похоже, не содержит расширение MySQL, которое требуется для работы WordPress.

Затем я снова обновил версию до 7.4.

Как я решил проблему? Просто удалил файл .htaccess и обновил страницу. После этого все заработало как надо.

Спасибо

17 дек. 2020 г. 04:16:22
Комментарии

Это звучит странно. Что было в файле .htaccess, что сломало PHP? Я не думаю, что можно отключить расширение MySQL для PHP через .htaccess, разве нет?

Rup Rup
17 дек. 2020 г. 10:25:39