Задача
Art Artworks — англоязычный онлайн-журнал об искусстве, художниках и произведениях, с сайтом-близнецом для детей на kids.artartworks.com. За ним годы контента: уже в карте сайта 2012 года было 1 382 URL, а сегодня медиатека весит 611 МБ. Сайт должен был работать на актуальных WordPress и PHP, но лимиты сервера были рассчитаны на маленький блог: 32 МБ памяти PHP и загрузка файлов до 5 МБ — слишком мало для журнала с большим количеством изображений, а обновления темы не устанавливались.
Что я сделал
Я взял на себя обе установки WordPress и сделал так, чтобы их было безопасно эксплуатировать и обновлять.
- Два сайта на одном хостинге: журнал на теме Themify Corporate с Themify Portfolio Post и детский сайт на Twenty Twenty-One, у каждого своя база данных.
- Лимиты сервера исправлены везде, где они задаются: в .htaccess, .user.ini и wp-config.php память увеличена с 32 МБ до 256 МБ, загрузка — с 5 МБ до 64 МБ, число входных переменных — с 1 000 до 5 000, а время выполнения — с 30 до 120 секунд. Ещё я убрал дублирующуюся настройку отладки.
- Резервная копия перед каждым структурным изменением: выгрузка базы данных с отметкой времени через WP-CLI и копия каждого конфигурационного файла перед правкой.
- Диагностика обновлений темы: я проверил модуль обновлений Themify и прочитал данные обновлений WordPress через WP-CLI, чтобы понять, почему пакет не загружается.
- Чтение и скорость: интерактивный 3D-флипбук для публикаций, WP-Optimize для очистки базы данных и кеша, Yoast SEO для поиска.
- Задокументированная очистка: остатки старых плагинов, например папка галереи NextGEN на 74 МБ и 12 МБ журналов Wordfence, внесены в список для безопасного удаления.
Технологии
WordPress 7.1.2 на PHP 8.3, Themify Corporate, Themify Portfolio Post, Interactive 3D Flipbook, WP-Optimize, Yoast SEO, WP-CLI, SSH и скрипты Bash на хостинге с cPanel.
Почему именно так
Локальная папка — это старая копия, а на действующем журнале хранятся годы статей и 611 МБ изображений. Загрузка файлов с компьютера затёрла бы эту работу. Поэтому медиафайлы остаются на сервере, ядро WordPress обновляется там же через WP-CLI, а на сервер отправляются только отдельные изменённые файлы, после резервного копирования.


