Турбо ускорение WordPress

Турбо ускорение WordPress

Это полное руководство по теме: ускорение для самостоятельного решения задачи. Выполняя инструкции вы сможете  существенно ускорить ваш .  Далее идет пошаговая инструкция, но если вам лень читать или лень все это делать самостоятельно, то я могу предоставить вам это как услугу.

Рано или поздно перед каждым встает задача — ускорение WordPress. Объемы данных вырастают до такой степени, что сайт начинает еле-еле выдавать информацию порциями. Это совершенно не приемлемо, в случае, если вашим сайтом пользуется огромное количество людей или от его аптайма зависит чья-то работа.

Решение задачи основано на методе, описанном Дэйвом Хилдичем(Dave Hilditch).

Технология такая: берем быстрый web-сервер(), быстрый транслятор () в режиме запуска(SAPI) PHP-FPM, быстрый движок БД(Percona XtraDB), после перевода исходников PHP в байт-код кэшируем байт-код(APC) и кладем кэш в оперативку(Memcached), кэшируем страницы(W3 Total ), кэшируем HTTP запросы(Varnish).

Переход на Nginx это уже адское ускорение WordPress. Это позволит обрабатывать гораздо больше посетителей, но добавьте сюда все остальные фичи и ваш сайт станет предметом зависти других владельцев сайтов на WordPress.

Шаги реализующие ускорение WordPress

Вам понадобится доступ по SSH и знание некоторых команд Linux, если вы решите все делать самостоятельно. Далее идут шаги:

  1. Зарегистрируйте VPS хостинг на Reg.ru (или любой другой хостинг Ubuntu 14.04+ VPS);
  2. Зарегистрируйте домен;
  3. Следуйте инструкциям Ansible Playlist;
  4. Установите cURL, mcrypt и настройте фаервол:
  5. Установите для быстрого запастного плана:

    (Измените сокет php на новый сокет php7)
  6. Установите fail2ban для защиты сервера от атак(отредактируйте jail.local после того как он будет создан, найдите блок nginx и измените на true):


    Вставьте следующие строки:

    Далее:

    Измените nginx enabled=true (вместо false)
    Измените bantime на 86400 (1 день вместо 10 минут)
    Вставьте следующее после блока nginx:
  7. Установите sendmail (не нужно, если вы используете сторонний сервис типа Mandrill или Mailgun – примечание: настройка SPF-записей займет больше времени)
  8. Настройка автоматического обновления (добавьте “kernel”; в черный список, так как на некоторых серверах, типа Digital Ocean, необходимо обновлять его из консоли, для обеспечения стабильной работы):
  9. Запуск

    для любых сервисов, которые вы не хотите запускать. Проверьте сервисы с помощью –status-all. Примечание: если у вас 1GB RAM или меньше, отключите Varnish и HHVM и используйте PHP7 – нужно будет внести изменения в файл /etc/nginx/sites-available/domain.com  – три вещи: 1) Установить 80-й порт, вместо 8080-го, 2) Изменить приоритетный метод с hhvm на php, 3) Удалить резервную строку в первичном методе
  10. Настройка cron – найдите свой wp-config.php файл (/var/www/html/yourdomain/wp-config.php) и добавьте следующий код:

    Затем запустите crontab -e и добавьте:
  11. Измените часовой пояс:
  12. Выборочно настройте длину таймаутов и режим отладки — актуально, если будете делать объемный импорт или аналогичные вещи
    Отредактируйте wp-config.php:

    Отредактируйте /etc/nginx/sites-available/domain.com:
    Добавьте fastcgi_read_timeout 120
    Отредактируйте /etc/php/7.0/fpm/php.ini:
    Измените max_execution_time на 120
    Измените upload_max_filesize на что-то больше, чем 2M
  13. Увеличьте количество создаваемых дочерних процессов:
    Отредактируйте /etc/php/7.0/fpm/pool.d/www.conf и измените:



    (вы можете «поиграть» с настройками в зависимости от объема оперативки на сервере)
  14. Увеличьте число подключений nginx – отредактируйте /etc/nginx/nginx.conf – что-то подобное вначале:
  15. Настройте MySQL:

    Зависит от объема доступной памяти, используемого движка и того, что вы реализуете на WordPress

Перезапустите ключевые сервисы(nginx, varnish, hhvm, php7.0-fpm) или перезагрузите сервер shutdown -r now. Ваш новый сервер и WordPress готовы, быстры и защищены.

Перенос существующего сайта

  1. Войдите на ваш сервер
  2. cd в папку wp-content
  3. Сделайте бэкап БД используя: mysqldump -u root -p dbname > sqldump.sql
    1. Если у вас нет доступа по SSH, создайте временный файл и добавьте следующий код: <?php shell_exec(‘mysqldump -u root -p dbname > sqldump.sql’); ?> затем создайте страницу с этим шаблоном и затем перейдите на нее — у вас должен получиться файл бэкапа БД — это полезно, в случае использования хостингов, которые не предоставляют доступ по SSH и не делают резервное копирование
  4. Войдите на ваш новый сервер
  5. cd в папку wp-content
  6. Подключитесь по FTP к старому серверу: sftp root@ipaddress
  7. Заберите все: get -r *
  8. Выходите из FTP
  9. Восстановите БД, используя:
    1. mysql -u root -p
    2. create database dbname;
    3. use dbname;
    4. source sqldump.sql; — замените sqldump.sql на полный путь к файлу sqldump.sql (например /var/www/html/websitename/wp-content/sqldump.sql)
  10. Выходите из mysql и удаляйте файл sqldump.sql
  11. Скопируйте wp-config.php, возможно понадобится его изменить — смотрите на различая по FTP.
  12. Обновите /etc/nginx/sites-available/domain.com чтобы указать папку, которую вы скачали со старого сервера
  13. Как только вы закончили — переключите DNS на новый сервер

Установка W3 Total Cache

  1. Авторизуйтесь на сайте
  2. Установите W3 Total Cache
  3. Настройте  страниц, минимизацию,  БД используя OpCode:APC Caching. Тут полное руководство по настройке W3 Caching НО используйте Disk:Enhanced только для кэширования страниц — используйте OpCode:APC Caching для всего остального. Если вы используете Datafeedr (или для максимальной совместимости с другими плагинами), не используйте кэширование объектов.
  4. Выборочно настройте Cloudflare или аналогичный CDN – если будете настраивать, установите плагин Cloudflare, он устранит некоторые проблемы
  5. Добавьте в файл wp-config.php:

Настройка email

Отредактируйте/etc/hosts найдите строку с 127.0.0.1 и добавьте полное название домена(hostname.yourdomain.com):

Далее запускаем следующее:

Далее выбираем:

  • Интернет сайт
  • Введите полное название домена
  • Добавьте имя хоста и localhost в список серверов, которые могут вести рассылку(а так же полное доменное имя) разделяя точкой с запятой
  • Оставьте Domains to relay for и Machines to relay пустыми
  • Ответьте No на Keep number of DNS-queries minimal (Dial-on-Demand)?
  • Остальные настройки оставьте по умолчанию

Теперь ваш сервер может отсылать письма, которые не конфликтуют с WordPress.

Вот и все — теперь у вас супер быстрый сайт на WordPress — самый быстрый, какой только может быть с вашей конфигурацией сервера. Можно считать, что ускорение WordPress прошло более, чем успешно!

Если не хотите выполнять пошаговую инструкцию описанную выше, у вас нет времени, или не хочется разбираться как работает ускорение WordPress — вы можете обратиться ко мне и я помогу вам с этим за отдельную плату.

Добавление нового сайта

Самый лучший способ — скопировать файл в /etc/nginx/sites-available и настроить новый файл как новый сайт.

Вам будет интересно...

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