Чуть более двух месяцев назад Дерек Мансон, скрывающийся под ником Drumology2001, опубликовал тему на форумах поддержки WordPress.org. Выполняя обслуживание нескольких своих WordPress сайтов на виртуальном частном сервере, Мансон обнаружил, что многие из них работают с устаревшими версиями WP. Версии варьировались от 3.9 до 4.1, и как минимум один сайт имел версию WordPress 3.9.2.
«Я привык видеть уведомления в самом верху экрана, которые сообщают мне о том, что имеется более свежая доступная версия. Однако это не было показано ни на одном из моих сайтов, хотя ни один из них не использовал самую последнюю версию (4.1.1). Когда я перехожу к консоли и выбираю раздел Обновления, после чего щелкаю «Проверить снова», мне выдается сообщение, что все в порядке, все обновлено до последних версий, хотя это не так».
Поначалу Мансон думал, что All in One WP Security & Firewall блокирует уведомления об обновлении. Mbrsolution, разработчик плагина, отметил, что плагин не блокирует такие уведомления. После выполнения различных методов поиска и решения проблем, предложенных волонтерами на форумах поддержки WordPress, Мансон решил установить плагин Wordfence Security.
Одна из основных примечательных особенностей плагина Wordfence – наличие собственного сканера. Он сравнивает оригинальные файлы ядра WordPress с теми, которые находятся на сервере, и уведомляет пользователя в том случае, если обнаружены какие-либо различия. Результаты сканирования показали, что три файла были изменены.
wp-admin/includes/update.php
wp-admin/update-core.php
wp-admin/includes/class-wp-upgrader.php
Эти файлы были изменены только на тех сайтах WordPress, которые были установлены с помощью дополнения Site Software от cPanel.
Файл update.php WordPress:
function get_core_updates( $options = array() ) { $options = array_merge( array( 'available' => true, 'dismissed' => false ), $options ); $dismissed = get_site_option( 'dismissed_update_core' );
Файл update.php cPanel:
function get_core_updates( $options = array() ) { # cPanel override: Disable all core updates to prevent conflict with cPAddons. return false; $options = array_merge( array( 'available' => true, 'dismissed' => false ), $options );
Файл update-core.php WordPress:
function core_upgrade_preamble() { global $wp_version, $required_php_version, $required_mysql_version; $updates = get_core_updates();
Файл update-core.php cPanel:
function core_upgrade_preamble() { # cPanel override: Do not display the current or the latest version, because we've disabled updates. return; global $wp_version, $required_php_version, $required_mysql_version; $updates = get_core_updates();
Файл class-wp-upgrader.php WordPress:
public function is_disabled() { // Background updates are disabled if you don't want file changes. if ( defined( 'DISALLOW_FILE_MODS' ) && DISALLOW_FILE_MODS ) return true;
Файл class-wp-upgrader.php cPanel:
public function is_disabled() { return true; // Force this functionality to disabled because it is incompatible with cPAddons. // Background updates are disabled if you don't want file changes. if ( defined( 'DISALLOW_FILE_MODS' ) && DISALLOW_FILE_MODS ) return true;
Код, добавленный cPanel, отключает базовые обновления WordPress, уведомления об обновлениях, а также автоматические фоновые обновления к основным релизам. Как только Мансон вернул эти файлы в первоначальное состояние, автоматические обновления и уведомления о новых версиях заработали должным образом.
cPanel и cPAddons
Те, кто обслуживает выделенные серверы или виртуальные частные серверы с cPanel, может использовать cPAddons. Согласно документации cPanel, «дополнения – это приложения, которые работают с cPanel, чтобы реализовать разные функции для сайтов ваших пользователей. Примеры таких приложений – доски объявлений, онлайн-магазины, а также блоги».
Диалог с cPanel
Джордж Стефанис, разработчик ядра WordPress и плагина Jetpack , публично назвал действия cPanel плохой практикой.
Представитель cPanel прочел этот твит и ответил, что им требуется больше информации.
Стефанис поучаствовал в продолжительном разговоре с представителями cPanel, объяснив им, что отключение обновлений ядра – это плохая практика. cPanel отключает родную для WordPress систему обновления, поскольку она может вызывать конфликты с Site Software версией WordPress.
«Мы обычно выпускаем свежую версию WordPress в течение 1-5 дней с момента выхода обновления WordPress. Как минимум каждую ночь администраторы сервера получают уведомления во всех приложениях Site Software, что необходимо обновиться. Пользователи могут настроить такие уведомления в cPanel, чтобы получить обновления.
Тот способ, которым наш инструмент cPAddons отслеживает программное обеспечение, не совместим с процессом обновлений WordPress, поэтому мы и отключаем автоматические обновления. В итоге мы можем отслеживать их через cPAddons».
Разработчики cPanel решили объяснить, как обрабатываются обновления для программ, установленных с помощью их Site Software cPAddon.
- Всякий раз, когда WP выпускает технический релиз, который покрывает дыры в безопасности, мы быстро обновляем нашу программу.
- По умолчанию, программное обеспечение, установленное/управляемое через cPAddons, автоматически обновляется, когда доступно новое обновление.
- Если администратор сервера оставляет значения по умолчанию, то, как только появится технический релиз, мы тестируем его и обновляем свои исходники, после чего клиенты получат это обновление автоматически.
- Если администратор сервера принял решение отключить автоматические обновления, конечный пользователь и системный администратор по-прежнему получают уведомления о том, что их сборка устарела, сопровождаемые пошаговым руководством о том, как обновить приложение.
По умолчанию, программное обеспечение, установленное cPanel, настроено на автоматическое обновление, однако некоторые сайты Мансона не были обновлены. Он также не получал уведомлений на этих сайтах. Представители cPanel считают, что проблемы связаны с конфигурацией сервера Мансона. Они решили связаться с ним, чтобы получить дополнительную информацию.
«Основываясь на то, что рассказал Drumology2001 на форуме, проблемы связаны с самим сервером. Мы хотели бы изучить этот сервер, чтобы определить, почему обновления WordPress не были доступны пользователю.
Используя те нечеткие данных, приведенные на форуме, а также сравнивая их с нашими внутренними записями, мы можем сказать, что обновление 4.1.1 было доступно в системе Site Software еще до самого первого поста. Мы свяжемся с пользователем, чтобы понять, чем мы можем помочь»
Готовность к изменениям
Хорошие новости состоят в том, что представители cPanel очень отзывчивы и готовы внести любые необходимые изменения, чтобы улучшить процесс обновления. Учитывая, как много веб-хостингов предлагают своим клиентам возможность установки WordPress при помощи простого инсталлятора, очень важно сделать так, чтобы сайты получали обновления как можно быстрее.
Если вы устанавливали WordPress через инсталлятор cPanel, убедитесь в том, что на вашем сайте стоит версия WordPress 4.2.2, которая в данный момент является последней стабильной версией.
Источник: wptavern.com
![](/mark_r_img.png)
Сама cpanel. Крива довольно такт , так они еще стороной софт ломаю намерено