Установка WordPress в облако OpenShift

от автора

Если тема установки WP в облако вам интересна, то здесь и сейчас рассмотрим один из вариантов реализации.

Будем рассматривать установку WP в облако OpenShift (by RedHat), потому что из всех известных мне вариантов, этот наиболее простой и обладает наиболее интересными возможностями, описанными в статье.

Похожие статьи уже были, но для меня они ответили не на все вопросы и решили не все проблемы. Потому тут опишу свой путь.

Инструкция написана с расчетом на то, что читатель владеет базовыми навыками работы с веб-приложениями:

1. установка WordPress на обычный хостинг

2. загрузка кода посредством GIT (но можно и SFTP)

Приступим-с…

Регистрация учетной записи OpenShift

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

Выполняем процедуру регистрации в соответствии с инструкциями.
image

Идем дальше… авторизуемся и переходим в консоль для настроек.

Указываем пространство имен (namespace)

Начинаем с раздела Settings, а именно Namespace, где нужно указать часть URL, в которой будут располагаться наши приложения.
image
Указал casepress, как будет выглядеть URL приложения на рисунке понятно.

Настраиваем SSH-ключи

SSH ключ нам нужен для организации безопасного доступа к приложению через:

— SSH (безопасная командная строка)

— SFTP (безопасная загрузка файлов)

— GIT (синхронизация кода приложения)

Далее:

Если у вас уже есть SSH-ключи и вы знаете что и как делать, то можете загрузить публичный ключ вручную на странице Settings, поле “Public Keys”.
Если нет понимания и хочется минимум заморочек, то просто ставим клиентский пакет инструментов (Installing OpenShift RHC Client Tools), затем, как дойдете до команды “rhc setup”, система сама проверит ключ, создаст если нет и загрузит на сервер.
Результат должен получиться таким:
image

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

Создаем первое приложение

Cтавим базовые картриджи

Тут стоит остановиться на том, что OpenShift правильно определяет термин “приложение”, понимая под ним в т.ч. CMS WordPress. В отличие от принятых в России понятий, где вводятся множество терминов с затуманенными значениями: сайт, веб-приложение, сервис и т. д.

Поехали:
1. Переходим на страницу “Create Application
2. Нам предлагают множество готовых шаблонов, в т.ч. простую установку WordPress, от которой мы вежливо отказываемся, т.к. не ищем простых путей
image
3. Вы можете попробовать поставить WordPress по шаблону OpenShift, как и я в первый раз. Это просто и быстро. Но мне не понравилось, т.к. ставится переработанный WordPress на английском языке из репозитария на GitHub, который сильно отличается от стандартного различными изменениями с адаптацией под возможности OpenShift. После установки пары плагинов у меня возникла ошибка с белым экраном, я не стал разбираться в причинах и просто снес все.

4. Выбираем пункт PHP 5.3. Открывается форма, в которой нужно указать данные нашего приложения и говорится о том, что приложение базируется на картридже PHP 5.3 (да, компоненты в OpenShift называются картриджами). Тут все что нужно, это указать имя приложения. Указал название test и получился URL: test-casepress.rhcloud.com. Все. Жмем “Create Application”. Это займет некоторое время.
image

5. После инсталляции приложения, нас перебросят на страницу с дальнейшими инструкциями. Тут стоит обратить внимание на инструкции к GIT. Суть в том, что загрузка кода здесь делается через GIT, а не через FTP, как многие привыкли. Это важная особенность, на которой мы остановимся дальше. Пока можно не вникать.
image

6. Переходим на страницу “My Applications” и видим первое приложение в списке:
image

7. Нажав на название приложения, мы попадаем на страницу настроек:
image
8. Здесь мы добавляем к этому приложения еще картридж: MySQL. Полностью аналогичным образом, только нажимаем кнопку “ADD CARTRIDGE”
image
У нас все готово для загрузки WordPress. Переходим к следующему шагу.

Настройка своего домена (URL)

Если домен вида appname-namespace.rhcloud.com вам не нравится и хочется добавить свой типа “mydomen.ru”, красивы и понятный, для этого нужно добавить aliace:

image

Загрузка файлов WordPress

Тут стоит заметить, что мы будем загружать код не через FTP, как это принято на хостингах, а через GIT.

Если у вас нет GIT, то пришло время его поставить. Хорошая инструкция есть тут.

У меня другой GIT клиент, но для простоты в данной инструкции буду применять стандартный GIT GUI. Как работать с GIT в режиме консоли вы можете прочитать в инструкциях к OpenShift.

1. Запускаем GIT GUI, там выбираем команду “Склонировать существующий репозиторий”
image
2. В качестве исходного положения выбираем URL GIT вашего приложения с OpenShift, который можно увидеть на странице настроек (п.7, Ставим базовые картрирджи) приложения, в качестве каталога назначения указываем каталог в котором хотим хранить копию репозитория. Это может быть любой удобный каталог на вашем ПК. Все. Жмем “Склонировать” и ждем пока произойдет загрузка файлов.
image
3. Должны получить следующий результат (GIT показывает спокойствие, а в папке видим содержимое приложения):
image
4. Значение и смысл этих папок пока упустим, и обратим внимание на папку php, именно тут и располагаются исполняемые файлы приложения, в т.ч. index.php, сюда и скопируем WordPress файлы. Должны получить следующее:
image
5. Мы изменили содержимое репозитория. Если открыть GIT, и нажать кнопку “Перечитать”, то увидим следующее:
image
6. Принимаем изменения. Жмем “Подготовить все”, указываем комментарий о изменении, жмем “Сохранить”, и “Отправить”, затем в форме отправки еще раз нажимаем “Отправить”. GIT начнет загрузку файлов на сервер.
image
7. После загрузки данных в репозиторий сервера (origin), произойдет автоматическое выполнение сценариев публикации:
image

Настройка WordPress

И вот тут возникает первое отличие от традиционной работы с WordPress, мы не можем без последствий править на сервере файлы каким-либо образом кроме GIT.

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

Потому стандартный, простой и привычный диалог создания файлы wp-config.php нам не видать. Придется изменять его у себя на ПК и загружать на сервер через GIT. Причем не просто менять, а менять чуть хитро, с учетом особенностей окружения OpenShift.

Если сильно не хочется осваивать GIT, можно это сделать через SFTP. По работе с ним есть видеоинструкция (на английском) и текст (на русском, с матом). Под Windows у меня получилось войти через FileZilla. Но нужно понимать, что считаться с GIT все равно придется, если изменения сделанные каким-либо образом не отразить в GIT, то со следующей загрузкой через GIT, все изменения будут смыты.

Поехали:
1. Если у вас новая инсталяция WordPress, то файла wp-config в папке у вас нет, а есть wp-config-sample.php. Берем его, копируем и переименовываем в wp-config.php
2. Открываем свежий wp-config.php и указываем ключевые параметры: имя БД, имя пользователя БД, пароль к БД, адрес подключения к БД. Вам не нужно их знать, т.к. указываются они как переменные. Можно нагло и целиком их скопировать от сюда. У меня получилось так:
image
3. Теперь нужно вручную настроить соль:
3.1. Как сказано в файле, для этого нужно перейти на страницу api.wordpress.org/secret-key/1.1/salt/
3.2. Результат скопировать в соответствующий раздел wp-config.php
4. На этом изменение wp-config.php закончили. Сохраняем. Закрываем. Идем в GIT…
5. GIT должен показать что обнаружил изменения в файле wp-config.php, принимаем, комитим, пушим.
6. Теперь, если перейти на страницу нашего приложения, то увидим что установка WordPress сразу начинается с настроек названия сайта и т. д., т.е. мы миновали настройку подключения к БД, за счет того что сделали все через GIT.
image
7. Дальнейшая установка происходит как обычно.

Тормоза в приложении

После установки заметил жесткие торможения. Одна страница грузилась очень долго (1-4 секунды на страницу при 30 запросах к БД), при том что на обычном виртуальном хостинге, в тех же условиях этот показатель составляет: 0,2-0,4 секунды.

Общение на форуме свелось к аргументам что я живу в Сибири. А они в США — потому у них сайт с БД работает быстрее

Разбирать сервер — не мой путь. Я ищу простые решения.

Обращение на официальный email позволило договориться о увеличении ресурсов для моих приложений до уровня Medium (по умолчанию дается Small).

Мне стало доступно создание приложения с выбором Gears = Medium. После чего сайт приблизился к нормальным параметрам: 0,3-0,4 секунды на одну страницу.
image

Особенности и замечания

1. Вам нужно выбрать схему работы с сайтом:

1.1. традиционная (консоль, SFTP …)

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

2. Сделать архив приложения со всеми файлами очень легко:

2.1. для этого у вас должен стоять пакет инструментов (Installing OpenShift RHC Client Tools)

2.2. далее, если хотим получить архив к себе на диск D:, то даем такую команду: “rhc app snapshot save -a {appName} -f d:\appname.tar.gz”, где {appName} — имя приложения, которое вы указали на странице добавления приложения (п.4, Ставим базовые картирджи).

3. Вы можете поставить себе картридж phpMyAdmin, для работы с СУБД MySQL, делается это легко, через веб-консоль, на странице вашего приложения

4. Хорошо было бы после всех установок, добавить файл .gitignore в каталог «/appname/php/», и исключить от туда «wp-content/uploads», чтобы файлы сайта не попадали во внимание GIT.

5. Бесплатный тариф есть, это хорошо. Но на этом тарифе сайт заметно тормозит (загрузка страницы 1-4 секунды при 30 запросах к БД), даже без каких-либо плагинов в сравнении с обычным хостингом за 1500-2000 руб. в год (загрузка страницы за 0,2-0,4 секунды при 30 запросах к БД). Переход на Medium Gears частично решает эту проблему, но сейчас это делается только через службу поддержки, а в перспективе это будет платной опцией.

Если кто-то знает как настроить СУБД на OpenShift с ускорением работы, без перехода в режим Medium — буду очень признателен.

ссылка на оригинал статьи http://habrahabr.ru/post/182094/


Комментарии

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *