Добрый день! Уважаемые посетители и гости портала Pyatilistnik.info. В прошлый раз я вам рассказывал, как можно увеличить свой доход от рекламы Google Adsense и привел ряд примеров моих знакомых, где они показали внушительные цифры. В сегодняшней публикации я бы хотел рассмотреть ситуацию, при которой вы как добросовестный вебмастер следите за безопасностью сайта и хотите добиться его лучшего функционала и переводите его на последнюю версию PHP 7.3, после чего у вас ломается ваш сайт на WordPress. Давайте я покажу, как вы можете найти источник проблемы и устранить его.
Описание ситуации
Один мой приятель ведет блог про Москву и все, что связано с путешествиями, у него кстати недавно вышла отличная статья "Электронная регистрация на рейс S7" советую посмотреть. В какой-то момент она выстрелила и одновременно на сайт стало заходить по 400-600 человек, у него еще на тот момент не было высокопроизводительного хостинга McHost. В результате чего его сайт становился недоступным. Он почитав разных советов, решил обновить на своем хостинге версию PHP 5.6 на PHP 7.3, которая в кратном соотношении быстрее и требует меньшего количества ресурсов. Как видно из графика на WordPress 5.3 PHP 5.6 выдает поддержку всего 100 запросов в секунду, а вот PHP 7.3 и PHP 7.4 уже под 300 запросов в секунду.
Мой приятель зашел в админку хостинга и перевел свой сайт на последнюю доступную версию, ей оказалась PHP 7.3. После применения настроек его сайт на WordPress 5.3 перестал корректно работать, вместо главной страницы была непонятная, перекошенная субстанция с поехавшей версткой. Пропало меню, слайдер и не работали ни одни ссылки. По простому, теперь не работает сайт WordPress на новой версии php 7.3. Благо хоть у него сохранился доступ в админку.
После этой попытки он быстро откатил в админке хостинга свою версию PHP на 5.6 и обратился ко мне с проблемой.
Как найти проблему на сайте WordPress после перехода на PHP 7.3
Не каждый из вебмастеров может быть крутым PHP программистом и найти в чем причина, да и это очень трудоемко. Благо WordPress дружелюбная платформа и имеет огромное количество плагинов под самые разные задачи. Есть замечательный плагин php-compatibility-checker.
PHP Compatibility Checker - это плагин, который может быть установлен на любом сайте WordPress (не только на сайтах WP Engine), он сообщает вам, с какой версией PHP совместим ваш сайт. PHP 7 является самой последней версией PHP и работает намного быстрее, чем старые версии, но сначала необходимо убедиться, что ваш сайт готов к обновлению.
Используйте средство проверки совместимости PHP, чтобы увидеть, готов ли ваш сайт к PHP 7 . Сайты, переходящие с более старых версий PHP на PHP 7, часто могут сократить время загрузки страницы вдвое! Более быстрый сайт означает более низкий показатель отказов и более высокую конверсию.
Преимущества и особенности
- Простота установки на любом сайте, на любой хостинговой платформе
- Ошибки и предупреждения подразделяются на категории, чтобы сделать обзор ошибок как можно быстрее
- Посмотрите номер файла и номер строки нарушающего код с информацией о том, почему эта строка несовместима с выбранной вами версией PHP.
- Предложения по обновлению тем и плагинов
- Опция dev mode позволяет вам отключить стилизацию, чтобы вы могли видеть только текстовый отчет
- Установка плагина и запуск теста на совместимость с PHP займет всего несколько минут!
Официальная ссылка на плагин - https://ru.wordpress.org/plugins/php-compatibility-checker/
Как устанавливать плагин WordPress я вам рассказывал, на этом я останавливаться не буду.. Далее вы активируете PHP Compatibility Checker. Переходим в админке WordPress по пути "Инструменты - PHP Compatibility"
Указываем с какой версией PHP вы будите проводить тестирование на совместимость, а так же указываете, что именно нужно тестировать, тут на выбор два варианта:
- Сканировать все плагины и темы
- Сканировать только активные темы и плагины
Я советую вам выбирать вариант "Scan all plugins and themes". Делается, это на случай того, что у вас есть плагины которые не требуют постоянной активности и вы включаете их когда вам нужно, и вот чтобы и с ними ваш сайт WordPress работал на PHP 7.3, вы и должны произвести проверку.
Нажимаем кнопку "Scan Site". Хочу отметить, что сканирование может работать длительное время, все зависит от вашего хостинга, количества плагинов и загрузки сайта. После выполнения сканирования, плагин PHP Compatibility Checker выведет вам подробный отчет, что совместимо с нужной версией PHP, а что нет. В моем примере я вижу, что из-за плагина WP-Note я получаю эти самые проблемы с переходом сайта на PHP 7.4. Если вы откроете подробное описание ошибки, там будут номера строк и текст.
FOUND 2 ERRORS AFFECTING 1 LINE
-------------------------------------------------------------------------------------------------------------------------
43 | ERROR | Function eregi_replace() is deprecated since PHP 5.3 and removed since PHP 7.0; Use preg_replace() instead
43 | ERROR | Extension 'ereg' is deprecated since PHP 5.3 and removed since PHP 7.0; Use pcre instead
Так же вы потом можете выгрузить подробный отчет, о тестировании в PHP Compatibility Checker. Это позволит вам его передать разработчику или самому поискать причину проблемы.
Вот так выглядит пример отчета. Из отчета я вижу. что: Function eregi_replace() is deprecated since PHP 5.3 and removed since PHP 7.0; Use preg_replace() instead
43 | ERROR | Extension 'ereg' is deprecated since PHP 5.3 and removed since PHP 7.0; Use pcre instead
Как устранить проблему
Однозначного ответа на этот вопрос нет. Вы можете пойти вот таким путем:
- PHP Compatibility Checker подсказывает вам имя плагина из-за которого у вас есть проблемы, вы его либо обновляете, либо заменяете на похожий, либо пишите разработчикам плагина на сайте WordPress, там всегда есть ветка обсуждения. В моем примере не работал плагин WP-Note я поискал его замену и увидел, что есть его форк под названием WP-Note-2019, который уже поддерживал PHP 7.3, я его быстро установил. После чего сайт успешно заработал.
- Второй вариант вы нанимаете разработчика, который вам поправит плагин
- Третий вариант просто не используете плагин
На этом у меня все, надеюсь, что мой опыт вам помог. С вами был SEO мастер, автор и создатель IT блога Pyatilistnik.info.