Ускоряемся: готовое окружение за 55 секунд

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

В этом нам могут помочь облачные технологии. В этой статье речь пойдет о облачном хостинге для разработчиков DigitalOcean. Раньше я уже писал как настроить окружение для разработки за 5 мин, но предложение от #DigitalOcean (далее DO) выглядит еще заманчивее - сервер за 55 секунд! Проверим?

Создание сервера

Регистрация на DO не должна вызвать затруднений. В сети можно найти промокоды на прибавку к балансу различного номинала или зарегистрироваться по моей реферальной ссылке и получить 10$.

Сервис предлагает выделенные виртуальные серверы (VPS) на SSD дисках, которые носят название дроплеты (droplet).

Для большинства простых задач (протестировать проект, собрать сайтик) подойдет и самый дешевый тариф - 5$ в месяц. Для моих нужд его быстро стало нехватать, и я разросся до плана по серьезней.

Для размещения дроплетов доступно несколько датацентров, пока ближайший к нам расположен в Амстердаме. Есть возможность переносить дроплеты из одного датацентра в другой.

Из настроек стоит отметить, что если не включить создание бекапов сразу, то впоследствии это будет возможно только через пересоздание дроплета.

Самое интересное - выбор образа ОС. Здесь и кроется весомое преимущество DO перед другими сервисами, которое и послужило поводом для написания статьи.

Помимо "голых" дистрибутивов, на вкладке Applications представлены сконфигурированные образы для различных сред разработки, в том числе и для #Drupal.

В образе с Drupal используется #Ubuntu 14.04, модная сейчас связка Nginx + PHP-FPM, уже установлен Drupal последней версии (регулярно обновляется) и даже #Drush.

Создание сервера у меня заняло чуть больше минуты.

После окончания процесса, сервер с установленным на нем Drupal-сайтом становится сразу же доступен по IP-адресу, который вместе с паролями доступа к серверу отправляется на ваш e-mail. Подключившись к серверу по ssh, в приветственном сообщении будут отображены данные для доступа к админке сайта.

Так что можно считать, что заявления DO о сервере за 55 секунд на деле вполне подтверждаются, в целом все настроено и работает.

Но немного подтюнить установку под себя никогда не помещает, верно?

Настройка сервера

Первые шаги по настройке сервера хорошо описаны в этом руководстве (en). Самым важным пунктом здесь является создание нового пользователя ОС и наделение его нужными правами.

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

MySQL и phpMyAdmin

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

$ mysqladmin -u root password MYNEWPASS

Теперь можно спокойно установить визуальный инструмент для администрирования БД, например phpMyAdmin:

$ sudo apt-get install phpmyadmin

Так как у нас #Nginx, отмечать Apache или Lighttpd не нужно. Для Nginx надо вручную добавить конфигурацию в файл настройки виртуального хоста /etc/nginx/sites-available/drupal, внутрь раздела sever, скажем, после объявления location = /robots.txt:

location /phpmyadmin/ {
  alias /usr/share/phpmyadmin/;
  location ~ \.php$ {
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $request_filename;
    fastcgi_ignore_client_abort off;
  }
}

Так же для нас уже создан пользователь drupal с паролем, генерируемым случайным образом. Узнать пароль можно из файла /var/www/html/drupal/sites/default/settings.php это может вам пригодится для создания новых БД.

PHP

Файл с настройками PHP-FPM - /etc/php5/fpm/php.ini, здесь наиболее важные параметры это:

  • max_execution_time = 30 - время на выполнение скрипта, для Drupal можно смело указать 60
  • memory_limit = 128M - ограничение памяти, если вы выбрали тариф с более чем 512 Мб RAM, то значение лучше увеличить до 256M
  • upload_max_filesize = 2M - размер файлов для загрузки, я обычно указываю 64M

Nginx

Так как мы получаем уже настроенный сервер, каких-то масштабных действий особо не понадобится.

Чтобы привязать домен к виртуальному хосту надо добавить в конфигурационный файл /etc/nginx/sites-available/drupal директиву после строки listen [::]:80 default_server ipv6only=on;:

server_name  example.org  www.example.org;

Соответственно в ресурсных записях класса А вашего домена, должен быть указан IP-адрес дроплета. Кстати, в DO довольно удобный интерфейс администрирования ресурсных записей.

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

server_name  example.org  www.example.org;

root /var/www/html/drupal;

Затем сделать символическую ссылку на конфигурационный файл в папку sites-enabled и перезапустить веб сервер:

$ sudo service php5-fpm restart
$ sudo service nginx restart

Если в процессе работы у вас вылезла ошибка 413 Request Entity Too Large, то решение описал уважаемый @xandeadx в своем блоге.

Пожалуй, на этом можно закончить настройку.

Итоги

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

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

А какие сервисы используете вы и почему?

Вы здесь