Перенос сайта на WordPress на VPS

Зачем переносить WordPress на VPS?

Подавляющее большинство сайтов на WordPress, используют виртуальный хостинг, который имеет два важных преимущества — он дешев и все заботы по настройке и администрированию берет на себя хостер. Виртуальный хостинг отлично подходит для нетребовательных сайтов с невысокой посещаемостью. С ростом посещаемости, растут требования сайта к ресурсам и часто возникает необходимость в использовании дополнительных модулей или специфических настройках, в этом случае оптимальным решением будет перенос сайта на WordPress на VPS (Virtual Private Server). VPS — гораздо дешевле аренды физического сервера и более гибкие в конфигурации, вы можете купить VPS с нужным объемом ресурсов а когда их станет недостаточно просто докупить еще ОЗУ, места на диске или процессорных ядер. VPS с минимальными параметрами по цене сравнимы с виртуальным хостингом, но предоставляют гораздо больше ресурсов и свободы в конфигурировании и оптимизации.

Как выбрать VPS?

При выборе я руководствуюсь следующими критериями:

  • цена, но не стоит искать самое дешевое предложение, оно может оказаться слишком дорогим впоследствии;
  • компания должна иметь историю и присутствовать на рынке хотя бы несколько лет;
  • высокий уровень доступности сервисов (Uptime);
  • отзывчивая поддержка;
  • однозначный плюс — наличие в списке клиентов популярных сайтов с высокой посещаемостью;
  • возможность выбора страны размещения сервера из нескольких вариантов, географически сервер должен быть как можно ближе к большинству посетителей.По всем нашим критериям  отлично подходит хостинг Fornex

Как определить когда стоит переносить свой сайт с WordPress на VPS?

Практически на любом виртуальном хостинге можно узнать столько ресурсов использует ваш сайт, например в Cpanel это выглядит так:

В особо тяжелых случаях, вы получите письмо от хостера с предложением взять более дорогой тариф с большими ресурсами или даже блокировку своего аккаунта, поэтому затягивать переезд не стоит.

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

Заказываем виртуальный сервер SSD VPS:

Выбираем тариф, операционную систему, панель управления сервером (грубо говоря это веб-интерфейс для управления параметрами сервера, ее использование не обязательно но в целом упрощает и ускоряет настройку сервера), выбираем расположение сервера — чем ближе географически сервер к посетителям тем быстрее будет загружаться сайт, рекомендую сразу купить место для резервных копий или продумать какую-то свою систему резервного копирования:

Если вы не сильны в администрировании Linux-серверов, настоятельно рекомендую взять панель ISPmanager, с ее помощью можно настроить сервер не прибегая к использованию консоли и прочей не очень понятной «магии» для новичков.

После заказа оплачиваем и ожидаем активации, как правило она практически мгновенная, наш сервер готов и можно приступать к настройке:

При клике по строке с именем сервера открывается удобное меню с обзором основных метрик и состоянием сервера:

Например я хочу изменить ОС, я не большой специалист по Debian и обычно я использую Ubuntu, заходим в настройки, выбираем пункт «Переустановить ОС»

Выбираем образ, выбираем нужную панель управления и жмем кнопку «Запустить переустановку»:

Переустановка ОС занимает около 15 минут, по окончании процесса на почту приходит уведомление, пока сервер переустанавливается можно настроить домен. Я для примера сделал тестовый поддомен — test.kakpedia.org, вы будете использовать свое имя, для того чтоб связать доменное имя и ваш VPS, необходимо в панели управления доменом, создать DNS-запись типа А и прописать ей IP адрес вашего VPS, интерфейсы у большинства регистраторов отличаются незначительно, проблем тут возникнуть не должно:

В зависимости от регистратора на обновление записей DNS может потребоваться от нескольких минут до нескольких дней (сейчас это редкость чаще всего обновление записей DNS занимает менее часа).

На этом этапе уже можно попробовать зайти на ваш сайт и если все сделано верно, вы должны увидеть вот такую картину:

Возвращаемся в личный кабинет, там в меню «Настройка», есть вкладка «Доступы», грубо говоря это способы управления вашим сервером, вы можете делать все по старинке через консоль (и она наверняка пригодится для каких-то специфических настроек), можете использовать VNC, ну а мы для простоты и скорости будем использовать панель управления сервером ISPManager, кликаем по ссылке, вводим указанные на странице логин и пароль:

И попадаем в панель управления сервером, обратите внимание что вы залогинились под пользователем root он управляет всеми настройками сервера, а когда вы добавите домен, им будет управлять отдельный пользователь с ограниченными правами, указанный в поле «Владелец», ниже я покажу как переключаться между пользователями, а пока добавляем наш тестовый домен, заполнять надо поля помеченные красными прямоугольниками, остальные поля можно оставить как есть или поменять. В поле «Выбор скрипта» можно сразу выбрать WordPress он будет установлен автоматически, логин и пароль от сайта будут в уведомлениях (значок появится рядом с логотипом):

Я рекомендую включить сжатие, но с уровнем следует экспериментировать, оптимально значение 3-5 в зависимости от посещаемости вашего сайта, при значениях выше 5 нагрузка на процессор растет сильнее чем степень сжатия.

После того как домен добавлен можно установить WordPress, заходим в меню «WWW-Домены» и жмем кнопку «Скрипты»

Затем в меню выбираем WordPress, если нажать «Быстрая установка», то будет установлена выбранная версия, если вам нужна другая жмите на «Установить», и выбирайте нужную версию, но я рекомендую ставить последнюю, именно она и предлагается по умолчанию:

На следующем шаге необходимо создать базу данных, пользователя для базы данных, создать администратора в WordPress, и т. п:

Если у вас много доменов, внимательно проверяйте настройки чтоб не записать новую установку поверх имеющейся:

На этом этапе мы получили рабочий но пустой блог на WordPress, далее вы можете его настраивать и использовать, если нужно перенести уже существующий сайт, то читайте далее.

Перенос файлов и БД WordPress на VPS

Я покажу перенос на примере наиболее популярной панели для виртуального хостинга Cpanel, в других панелях пункты меню могут называться по-другому и находиться в других местах, но смысл такой же.

  1. Перенос файлов.
    Это можно сделать несколькими способами (можно использовать резервные копии, FTP-клиент), проще и быстрее в Cpanel зайти в менеджер файлов, выбрать нужные и нажать «Сжать», и затем упаковать их в ZIP-архив, кликнув по иконке справа от имени архива можно его скачать.
    Важно: Файл wp-config.php в архив добавлять не нужно!

    Затем возвращаемся в ISPManager, заходим в менеджер файлов и переходим в папку с нашим сайтом, в эту папку загружаем скачанный ранее архив:

    После загрузки его нужно распаковать:

    Если вы все же перенесли старый wp-config.php, то нужно его отредактировать и указать новые данные для доступа к БД, пример ниже.
  2. Перенос БД
    Проще всего дамп БД сделать с помощью phpMyAdmin:

    Выбираете свою базу, переходите на вкладку «Экспорт» и жмете вперед, в зависимости от размера базы процесс может занять некоторое время, в итоге вам на компьютер скачается файл с дампом БД.
  3. Если WordPress переносится вместе с доменом, этот шаг можно пропустить, но если вы переносите сайт с одного домена на другой, то в дампе БД нужно заменить старое доменное имя новым, для этого откройте дамп в любом текстовом редакторе (кроме стандартного Блокнота, он плохо работает с большими файлами) и выполните замену:
    Теперь дамп базы нужно загрузить на наш новый сервер:
  4. Если нужно отредактируйте wp-config.php:
    для корректной работы как правило достаточно указать правильные данные для доступа к БД:
  5. Настройка SSL
    Этот пункт не является обязательным, но я настойчиво рекомендую использовать SSL, тем более что сертификат бесплатен, для этого необходимо сменить пользователя на root и перейти в пункт меню «Интеграция — Модули»:

    Здесь находим модуль Let`s Encrypt и жмем установить.
    Теперь нужно сменить пользователя, чтоб продолжить настройку нашего сайта, как это сделать понятно из картинки:

    Переходим в меню SSL-сертификаты и жмем появившуюся кнопку:

    Ставьте галочку, заполняйте поля, обратите внимание на поле в прямоугольнике, в нем указано ваше доменное имя с псевдонимами, проверьте что все они открываются в браузере, те которые не открываются — удалите из этого поля, иначе сертификат не будет получен:

    Получение сертификата занимает некоторое время (у меня это заняло около 5 минут), статус процесса можно узнать в журнале Let`s Encrypt, если что-то пошло не так, то в журнале будет описание ошибки:
    Если всё сделано верно, то предупреждение в адресной строке должно исчезнуть:

Теперь ваш сайт работает на новом сервере и готов к росту посещаемости, текущей конфигурации для этого вполне достаточно. Конечно все нюансы в одной статье охватить невозможно, поэтому пишите в комментарии разберемся вместе.

ESXi bash script — для автоматического включения виртуальных машин если они выключены

Скрипт выполняется через определенные промежутки  времени с помощью крона, и проверяет состояние виртуальной машины в случае если она выключена — то запускает ее.

1. Зайдите в консоль по SSH с root-правами.

2. Создайте файл с любым именем например auto-poweronvm.sh, который разместите на томе vmfs.

Откройте файл в редакторе:

~ #vi /vmfs/volumes/datastore1/poweronvm.sh

И поместите в него этот текст:

vmname="your vm name"
vmid=$(vim-cmd vmsvc/getallvms | grep "$vmname" | awk '{print $1}')
stat1=$(vim-cmd vmsvc/power.getstate "$vmid" | grep "off")
if [ "$stat1" == "Powered off" ]
then
vim-cmd vmsvc/power.on "$vmid"
fi

3. Замените «your vm name» на имя вашей виртуальной машины
4. Сохраните изменения и выйдите их текстового редактора (:wq).
5. Измените права на файл и сделайте его исполняемым, командой:

chmod 755 /vmfs/volumes/datastore1/poweronvm.sh

6. Добавьте в cron задание, которое будет выполнять этот скрипт каждый час (можете выбрать более удобный для вас промежуток).

1. Отредактируйте /var/spool/cron/crontabs/root используя VI.
2. Добавьте эту строку в конец файла и сохраните изменения (:wq!)
0    */5    *    *    *     /vmfs/volumes/datastore1/poweronvm.sh
3. Выполните команду: cat /var/run/crond.pid
4. Выводом команды будет номер процесса,  для примера пусть это будет 1223
5. Выполните команду: kill 1223
1223 — замените на свой номер процесса.

Важно! Все выше приведенное будет работать только до перезагрузки ESXi, что бы изменения стали постоянными проделайте следующее:

Нужно добавить команды в  /etc/rc.local.d/local.sh они будут выполнятся каждый раз при перезагрузке ESX/ESXi
1. Отредактируйте /etc/rc.local.d/local.sh, например можете использовать такую команду: vi /etc/rc.local.d/local.sh
2. Найдите в файле строку «exit 0», и выше нее (над ней) добавьте три строчки:

/bin/kill $(cat /var/run/crond.pid)
/bin/echo '0    */5    *    *    *    /vmfs/volumes/datastore1/poweronvm.sh' >> /var/spool/cron/crontabs/root
crond

4. Выполните команду «auto-backup.sh» что бы изменения в файле /etc/rc.local.d/local.sh сохранились при перезагрузке.

Как добавить ppa репозиторий в Ubuntu из консоли?

Чтоб заработала команда — add-apt-repository,

выполните в консоли:

sudo apt-get install software-properties-common

А затем можете добавлять репозитории, например:

sudo add-apt-repository ppa:certbot/certbot


 

Нет звука в наушниках, только в динамиках Ubuntu 16.04

Сделал еще одну попытку перейти с Windows на Linux, а именно с Windows 7 на Ubuntu 16.04. Если кому-то интересно могу описать, но статей вроде на эту тему достаточно. Что могу сказать — некоторые вещи которые работали в Windows как часы в Linux глючат. Убунта у меня не перегружалась где-то с неделю и в итоге перестало работать переключение звука, когда втыкаешь наушники звук все равно шел из динамиков, а в наушниках была тишина. Решается проблема достаточно просто, нужно открыть консоль и ввести команду alsamixer (в 90% случаев именно он управляет звуковой картой)

ubuntu 16.04 нет звука в наушниках, не работает автопереключение звука
Запустится псевдо-графический интерфейс микшера где можно вручную отрегулировать уровни, управление стрелками — влево-вправо перемещение по входам/выходам, вверх-вниз регулировка уровня или изменение опции. Нам нужно перейти на «Auto-Mute» и стрелками вверх-вниз выставить значение Enabled
ubuntu 16.04 нет звука в наушниках, не работает автопереключение звука

Если настройки верные, а перегружаться не хочется то можно выполнить в консоли команду:

alsactl restore

Она вернет настройки драйвера в изначальное состояние и все должно заработать, ну конечно же если оно до этого работало.