Часто бывает необходимость быстро и без лишних действий развернуть готовый к работе сервер. Да и даже когда особой спешки нет, возможность быстро и просто поднять сервер — это всегда хорошо.
В этом нам могут помочь облачные технологии. В этой статье речь пойдет о облачном хостинге для разработчиков DigitalOcean. Раньше я уже писал как настроить окружение для разработки за 5 мин, но предложение от DigitalOcean (далее DO) выглядит еще заманчивее — сервер за 55 секунд! Проверим?
Создание сервера
Регистрация на DO не должна вызвать затруднений. В сети можно найти промокоды на прибавку к балансу различного номинала или зарегистрироваться по моей реферальной ссылке и получить 100$ на два месяца.
Сервис предлагает выделенные виртуальные серверы (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.
А какие сервисы используете вы и почему?
Если увеличивать
upload_max_filesize
тогда надо иpost_max_size
чтобы он не был меньше.