Как обновить сайт до WordPress 6.3 и выше

Обновлено 03.10.2023

Обновление WordPressДобрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. Не так давно сайт поймал от Яндекса фильтр МПК, об этом я рассказывал, суть в том, что после "полезного пинка", я вновь стал доставать из далекого ящика задачи, которые ставил перед собой очень давно, но все забивал, потому что не хотел в этом до конца разобраться. В мои задачи входило ускорить загрузку сайта, перевести блог на php 7.4 и выше, а так же обновить движок WordPress на версию 6.3.1 и выше в дальнейшем, так как многие плагины мне стали писать, что если хочешь новую версию, то будь добр обнови php, иначе ни как. А раз появилась возможность, что-то сделать лучше, то нужно это делать, может и алгоритм Яндекса снизойдет и замети это, но я в этом сомневаюсь😀.

Алгоритм обновления с WordPress 5.2 на WordPress 6.3 и выше

1️⃣Первое, что вы должны сделать это изучить матрицу совместимости вашей текущей версии CMS с версиями PHP. И так на момент всех работ у меня была на сайте WordPress 5.2.  Переходим на сайт с матрицей совместимости:

https://make.wordpress.org/core/handbook/references/php-compatibility-and-wordpress-versions/

Как видно из таблицы совместимости мой WordPress 5.2 невозможно перевести на WordPress 6.3, так как там необходима минимально PHP 7.0. Поэтому нужно обновляться. Исходя из таблицы, я могу перейти на версию PHP 7.3, выше уже не поддерживает текущая CMS.

Матрица совместимости WordPress и PHP

2️⃣Сам процесс переключения PHP в настройках сайта на хостинге McHost, я подробно описывал, можете посмотреть по ссылке. Но редко бывает все гладко в этом деле. После того, как я переключил в настройках сайта на PHP 7.3, то мой блог просто перестал открываться. В таких случаях нужно изучать логи и обращаться в техническую поддержку хостинга. Подключаемся к ftp на хостинге, хотя можно и из кабинета скачать лог ошибок. В логе меня ждала вот такая ошибка:

 

[Thu Aug 31 22:45:49 2023] [warn] [client 187.123.231.195] mod_fcgid: stderr: WordPress database error Lost connection to MySQL server during query for query SELECT option_value FROM aaa_options WHERE option_name = 'aioseop_notices' LIMIT 1 made by require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, AIOSEOP_Core->init, AIOSEOP_Core->_requires, require_once('/plugins/all-in-one-seo-pack/admin/class-aioseop-notices.php'), AIOSEOP_Notices->__construct, AIOSEOP_Notices->obj_load_options, AIOSEOP_Notices->obj_get_options, get_option, referer: /wp-admin/update-core.php

или

[Thu Aug 31 22:45:48 2023] [warn] [client 178.208.83.41] mod_fcgid: stderr: WordPress database error Lost connection to MySQL server during query for query SELECT * FROM `aaa_hmwp_ip_countries` WHERE `ip` = '178.208.83.41' ORDER BY `id` DESC LIMIT 1 made by require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), include_once('/plugins/hide_my_wp/hide-my-wp.php'), HideMyWP->__construct, require_once('/plugins/hide_my_wp/load.php'), PP_Helper->countryCode, referer: /wp-cron.php?doing_wp_cron=1693511145.2489919873809814453125

Тут мне пришлось откатиться до версии PHP 5.6. После чего я отключил кэширование в плагине WP Super Cache и удалил все файлы. После чего отключил сам плагин.

Отключение WP Super Cache

3️⃣После этого повторив попытку обновления до PHP 7.3 она увенчалась успехом. Можно было двигаться теперь дальше, но обязательно проверьте ваш сайт на наличие ошибок, пробегитесь по возможности по всем страничкам, пунктам меню. Например у меня в меню не работала одна страница, сайт говорил, что ее либо нет либо появлялась ошибка:

Внутренняя ошибка сервера

Внутренняя ошибка сервера

В логах я толком ничего не нашел, выкрутился тем, что восстановил из резервной копии базу данных, поверх той, что была. Это устранило все ошибки.

4️⃣Теперь когда у нас свежая версия PHP, мы смело можем произвести обновление до  WordPress 6.3.1 из админки, не забывайте перед этим действием сделать резервную копию сайта или иметь актуальную.

Обновление до WordPress 6.3.1

Удостоверьтесь, что с новой версией CMS у вас открываются и работают все элементы сайта, выполняются плагины. Хорошей практикой будет полное удаление кэша если он есть, и полная проверка. Надеюсь, что у вас все будет хорошо, если нет, то снимаем с сервера логи и производим откат на резервную копию.

5️⃣Когда вы произвели обновление с WordPress 5.2 до WordPress 6.3.1 смело руководствуясь матрицей совместимости, производим обновление до PHP 7.4, тем самым сделав минимальную защиту и оптимизацию по CMS+PHP связке.

На выходе вы получаете более быстрый сайт с новыми фишками, а WordPress 6.3.1 процентов на 30 быстрее WordPress 5.2, и так же более безопасный за счет свежей PHP, которая так же даст вашему сайту хорошее ускорение и более оптимальную работу с ресурсами сервера.

Обязательно изучите логи ошибок на хостинге, чтобы проверить нет ли там старых артефактов с ошибками, которые так же нужно исправить, например у меня была ошибка в плагине Dagon Design Sitemap Generator

mod_fcgid: stderr: PHP Warning: Use of undefined constant ddsg_language - assumed 'ddsg_language' (this will throw an Error in a future version of PHP) in /wp-content/plugins/sitemap-generator/sitemap-generator.php on line 45, referer: /wp-admin/post.php?post=47042&action=edit

И лучше все ошибки стараться устранить, так как они будут дополнительно нагружать ваш сайт, за сутки например в случае с Dagon Design Sitemap Generator, произошло 7300 событий, что не мало.

Use of undefined constant ddsg_language

Там я заменил строку:

$ddsg_lang_file = trim(get_option(ddsg_language));
на
$ddsg_lang_file = trim(get_option('ddsg_language'));

Подробнее тут - https://wordpress.org/support/topic/notice-use-of-undefined-constant-ddsg_language/

И вот таких казалось бы мелочей может быть очень много, но если сложить их вместе, то эффект будет весьма заметным.  Поэтому не ленитесь все проверить. На этом у меня все ,с вами был Иван Сёмин, автор и создать IT портала Pyatilistnik.org.

Автор - Сёмин Иван

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *