Advertisement
  1. Code
  2. Hosting

Создание образа приложения для перепродажи в Digital Ocean

Scroll to top
Read Time: 8 min

() translation by (you can also view the original English article)

Final product imageFinal product imageFinal product image
What You'll Be Creating

В этом уроке я расскажу вам о создании предварительно настроенного экземпляра сервера, на котором запущены WordPress (или другие приложения на основе LAMP), которые вы можете повторно клонировать и передавать клиентам. Я использую возможности Digital Ocean для продажи своего WordPress Quickstart и некоторых моих приложений на основе LAMP, таких как Simplify Email и Simple Monitor. Отчасти из-за этой возможности Digital Ocean стал моим веб-хостингом в этом году.

С помощью Digital Ocean снапшот является копией конкретного экземпляра облачного сервера. Он позволяет дублировать экземпляры и передавать их клиентам по электронной почте. Это позволяет быстро и легко начать работу с предварительно настроенного образа сервера и стека приложений.

Например, я предлагаю предварительно сконфигурированную оптимизированную версию WordPress, которую я называю Quickstart. Это версия WordPress, предварительно установленная с набором супер полезных плагинов, и она также предварительно оптимизирована с помощью W3TC и Varnish Cache, как описано в моем уроке Tuts Оптимизация WordPress с помощью лака и W3 Total Cache. Когда я передаю копию этого образа клиентам, это самая быстрая, простая и удобная в использовании версия WordPress, которую я могу предложить. Этот процесс делает запуск новых сайтов WordPress невероятно легким. В этом уроке я расскажу вам, как создавать свои собственные образы в Digital Ocean, чтобы делиться с клиентами.

Начинаем

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

Создание вашего дроплета

Сначала давайте создадим дроплет. Нажмите кнопку Создать:

Digital Ocean Create your dropletDigital Ocean Create your dropletDigital Ocean Create your droplet

Я назову свой файл image.publishingwordpress.com, но вы можете назвать как пожелаете. Я буду использовать размер образа 512 МБ:

Digital Ocean Droplet HostnameDigital Ocean Droplet HostnameDigital Ocean Droplet Hostname

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

Digital Ocean Select a RegionDigital Ocean Select a RegionDigital Ocean Select a Region

Перейдите на вкладку Приложения и выберите LAMP на Ubuntu 14.xx:

Digital Ocean Select an Application Image for UbuntuDigital Ocean Select an Application Image for UbuntuDigital Ocean Select an Application Image for Ubuntu

Digital Ocean начнет создавать ваш дроплет:

Digital Ocean Creating Your Droplet Progress BarDigital Ocean Creating Your Droplet Progress BarDigital Ocean Creating Your Droplet Progress Bar

Когда будет сделано, вы увидите эту страницу:

Digital Ocean Droplet Information PageDigital Ocean Droplet Information PageDigital Ocean Droplet Information Page

Вы также получите электронное письмо, подобное приведенному ниже:

Digital Ocean Droplet Announcement EmailDigital Ocean Droplet Announcement EmailDigital Ocean Droplet Announcement Email

Теперь вы можете посетить регистратор домена и изменить свои DNS-записи, чтобы указать ваш домен или поддомен на новый IP-адрес. В моем случае я указываю запись A для image.publishingwithwordpress.com на 198.199.117.46. Очевидно, что ваша будет отличаться.

Чтобы начать настройку экземпляра, вам не нужно ждать, пока DNS обновиться. Войдите в свой IP-адрес через SSH. Вам необходимо будет изменить пароль с того, который вы получили по электронной почте:

Digital Ocean SSH Terminal LoginDigital Ocean SSH Terminal LoginDigital Ocean SSH Terminal Login

Давайте обновим образ:

1
sudo apt-get update
2
sudo apt-get dist-upgrade
3
sudo reboot

Я также предлагаю установить следующие компоненты, которые мы будем использовать в WordPress и различных плагинах:

1
sudo apt-get install zip php5-curl
2
sudo a2enmod rewrite

Включение Apache mod_rewrite позволит использовать адреса permalink в WordPress, которые более удобны для пользователя и улучшают поисковую оптимизацию.

Я также рекомендую запустить mysql_secure_installation:

1
mysql_secure_installation

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

MySQL Secure Installation ScriptMySQL Secure Installation ScriptMySQL Secure Installation Script

Если вы используете 512-мегабайтную RAM-память в 5 долларов США в месяц, вам нужно создать файл Swap для WordPress для правильной работы, иначе система будет постоянно съедать всю память:

1
dd if=/dev/zero of=/swapfile bs=1M count=1024
2
mkswap /swapfile
3
swapon /swapfile

Затем мы добавим файл fstab, чтобы сообщить системе об файле подкачки:

1
sudo nano /etc/fstab

Добавьте эту строку:

1
/swapfile swap swap defaults 0 0

Пример: 10 долларов США в месяц 1 ГБ будут запускать WordPress без проблем.

Теперь мы готовы установить WordPress:

Установка WordPress

Создайте каталог www с разрешениями для веб-сервера Apache:

1
sudo mkdir /var/www
2
sudo chown www-data:www-data /var/www
3
cd /var/www

Загрузите последнюю версию WordPress, разверните архив и установите разрешения:

1
cd /var/www
2
sudo wget http://wordpress.org/latest.tar.gz
3
sudo tar -xzvf latest.tar.gz
4
sudo chown -R www-data:www-data wordpress

Теперь давайте создадим базу данных WordPress в MySQL. Обратите внимание на свое имя пользователя и пароль:

1
mysql -u root -p
2
create database wordpress;
3
grant all privileges on wordpress.* TO "your-mysql-username"@"localhost" identified by "your-mysql-password";
4
flush privileges;
5
exit;

Давайте создадим конфигурационный файл Apache для WordPress:

1
cd /etc/apache2/sites-available
2
sudo nano 000-wordpress.conf

Вставьте и настройте следующую конфигурацию виртуального хоста:

1
<VirtualHost *:80>
2
   ServerName yourdomainname.com
3
   DocumentRoot /var/www/wordpress
4
   DirectoryIndex index.php
5
   <Directory /var/www/wordpress/>
6
      AllowOverride All
7
      Order Deny,Allow
8
      Allow from all
9
   </Directory>
10
</VirtualHost>

Включите сайт Apache для WordPress и отключите сайт Ubuntu по умолчанию:

1
sudo a2dissite 000-default.conf
2
sudo a2ensite 000-wordpress.conf
3
sudo service apache2 reload

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

WordPress Setup PageWordPress Setup PageWordPress Setup Page

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

WordPress DashboardWordPress DashboardWordPress Dashboard

Поскольку это общий образ, который вы будете дублировать и передавать, пользователю потребуется WordPress для обновления URL-адреса сайта на свой собственный. Давайте отредактируем файл конфигурации WordPress, чтобы включить флаг перемещения. Вы захотите, чтобы ваш клиент отключил это, после того как он отредактирует URL своего сайта в общих настройках.

1
sudo nano /var/www/wordpress/wp-config.php

Теперь добавьте следующую строку:

1
define(‘RELOCATE’,true);

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

Я также предлагаю добавить флаг FS_DIRECT для более простой установки плагина:

1
define('FS_METHOD', 'direct'); // for automatic plugin installation

Установка темы

Для демонстрационных целей я собираюсь установить новую упрощенную тему Минноу. Вы можете установить ее, выполнив поиск:

Add the Minnow Theme to WordPressAdd the Minnow Theme to WordPressAdd the Minnow Theme to WordPress

Вот как это выглядит:

Your Minnow WordPress Home PageYour Minnow WordPress Home PageYour Minnow WordPress Home Page

Затем мы будем устанавливать любые плагины, которые мы захотим иметь у наших клиентов.

Установка плагинов

Это зависит от вас, какие плагины вы хотите установить. Здесь я храню список рекомендуемых плагинов. Давайте продолжим и установим плагин Yoast SEO, который является для меня основным. Я использую его, потому что он помогает с поисковой оптимизацией и созданием файлов Sitemap.

Вы можете посетить страницу Добавить новый плагин и найти ее для ее установки и активации:

WordPress Add the Yoast SEO PluginWordPress Add the Yoast SEO PluginWordPress Add the Yoast SEO Plugin

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

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

Как сделать образ

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

1
sudo poweroff

Перейдите на страницу Droplet в Digital Ocean и перейдите на вкладку моментальных снимков. Обычно я выбираю имя для моментального снимка, которое указывает на последовательное число клонов, например wp-image-000. Затем нажмите Сделать снимок.

Digital Ocean Take a snapshotDigital Ocean Take a snapshotDigital Ocean Take a snapshot

Для создания образа Digital Ocean может потребоваться несколько минут.

Когда образ будет завершен, Digital Ocean автоматически перезагрузит ваш дроплет.

Дублирование образа

Чтобы создать больше копий, просто повторите описанные выше шаги. Выключите дроплет из командной строки. Сделайте еще один снимок. Это немного отнимает времени, но все довольно просто.

В следующем уроке я покажу вам, как использовать API Digital Ocean для автоматизации этого процесса.

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

Передача клиентам

Чтобы передать снимок клиенту, перейдите на страницу Образы:

Digital Ocean Snapshot pageDigital Ocean Snapshot pageDigital Ocean Snapshot page

Нажмите левый значок с профилем человека, чтобы указать адрес электронной почты владельца счета Digital Ocean для передачи:

Digital Ocean Transfer Image to Client via Email AddressDigital Ocean Transfer Image to Client via Email AddressDigital Ocean Transfer Image to Client via Email Address

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

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

Создание дроплета из образа

Создание дроплета из моментального снимка довольно простое. Просто зайдите на страницу Создать дроплет, выберите регион, в котором был создан образ, и перейдите на вкладку Мои снимки. Затем вы можете выбрать изображение, которое будет использоваться для создания экземпляра дроплета.

Create a Droplet from a SnapshotCreate a Droplet from a SnapshotCreate a Droplet from a Snapshot

Клиент может настроить имя хоста, как пожелает, но все остальные настройки останутся прежними.

Другими словами, они войдут в экземпляр с тем же именем и паролем администратора, что и ваш первоначальный снимок, а не новый, который Digital Ocean отправит им. Они также изначально будут использовать ваш логин и пароль панели управления WordPress вашего клиента и администратора. Им затем следует поменять все свои пароли на сервер, MySQL и WP после того, как их дроплет будет сконфигурирован.

Как только они создают свой дроплет из моментального снимка, им придется настроить свой DNS, чтобы указать URL-адрес выбранного сайта на IP-адрес для своего дроплета. И им нужно будет отредактировать виртуальный хост WordPress Apache для своего имени домена и перезапустить Apache.

Я считаю что такой WordPress Quickstart - это самый быстрый способ помочь клиентам начать работу над новыми сайтами. Вы также можете использовать этот подход для любого приложения LAMP, например, Simplify Email.

Что вы узнали

Теперь вы знаете, как создать облачный экземпляр приложения, такого как WordPress, который вы можете повторно клонировать и передавать клиентам. В следующем учебном пособии я расскажу вам, как использовать Digital Ocean API для автоматизации процесса клонирования снимков.

Надеюсь, вы нашли этот урок интересным и полезным. Пожалуйста, не стесняйтесь оставлять свои вопросы и комментарии ниже. Вы также можете связаться со мной в Twitter @reifman или отправить мне электронное письмо. Следуйте за моей страницей Tuts +, чтобы увидеть будущие статьи этой серии.

Ссылки по теме

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.