Чек-лист сервера под WordPress: умолчания, которые стоит поменять
Пул PHP-FPM, образ, база и Redis, сеть Docker, крон, почта, сертификаты, индексация, диск и сборка — по пункту на каждую аварию или потерянный вечер, которые мы уже пережили.
Пишу о том, что делаю каждый день: скорость сайтов, кэш, обмен с 1С, серверы и WordPress без лишнего.
Пул PHP-FPM, образ, база и Redis, сеть Docker, крон, почта, сертификаты, индексация, диск и сборка — по пункту на каждую аварию или потерянный вечер, которые мы уже пережили.
Четыре прогона по 0,0 с — воркер упирался в замок. 679 из 679 холодных — не тот тип аргумента. Ноль совпадений — шаблон не понял [400]. Таймаут head -c на сокете, символы вместо байтов и ручные прогоны вместо крона. И семь вопросов к любому замеру.
Node 22 удалил синтаксис assert для JSON — сборка падает, помогает только Node 20 в контейнере. Прерванный eslint продолжает молотить в своём контейнере. А CI ловит ошибки, которых сборка на тесте не видит из-за lintDirtyModulesOnly.
open("w") обнуляет файл до записи — упавший print стёр 685 строк. Текстовый режим Python на Windows переписал переводы строк, и сборка упала на 181 ошибку prettier, не пересобрав JS. PowerShell 5.1 дописал BOM, и Python не запустился. Атомарная запись и три проверки.
Цифра в поле планировщика — момент, а не интервал; адрес в поле команды — не команда; php в консоли 5.6; защита от ботов перехватывает POST; mysqldump ругается, но делает дамп; сервер живёт по Москве. Три захода на одну задачу крона.
Клик, прокрутка к блоку, размеры и стили, колесо и перетаскивание — через Chrome DevTools Protocol и websocket-client, без Puppeteer. Скелет на 50 строк, четыре условия, без которых зонд получает другую страницу, подмена ответов через Fetch и 7 ГБ забытых профилей.
WordPress режет каждую картинку на все зарегистрированные размеры: на одном каталоге это 6,39 ГБ из 12, три размера темы на 2,54 ГБ не читались нигде. Как посчитать у себя, почему сначала перестать плодить, что проверить до удаления — и +13 ГБ на другом сайте.
Порт 25 открыт, Spamhaus чист, PTR сделают — и всё равно почту дома держать не стоит. Как проверять чёрные списки с контрольными адресами, почему авторитетный DNS дома хуже, чем кажется, и как переносить зону. Плюс итог 14 частей: где что молча не работало.
Сервер обновлений как плагин к сайту: релиз одной командой curl с токеном через hash_equals, версия и требования из самого архива, отказ без Update URI, X-Accel-Expires мимо кэша, атомарный счётчик скачиваний и число сайтов по хэшу адреса из User-Agent.
$ tail -f /blog
Пишу разборы по скорости сайтов, кэшу и разработке — на живых проектах и с цифрами. Подпишитесь, и ссылка на новую статью придёт сразу после выхода. Без рекламы и спама, отписаться — в один клик.
или на почту