- PVSM.RU - https://www.pvsm.ru -

Cloud9 и OpenShift. Разработка и развертывание приложений в облаках

Так уж получилось, что сейчас я стажируюсь в одной компании, где очень тяжело выбить простую программку себе на десктоп, а тем более IDE, порой это даже превращается в целые недельные квесты. Но в то же время, в свободное от работы время, я очень люблю экспериментировать. Почитав статью про онлайн IDE [1] и имея аккаунт в OpenShift решил все таки попробовать создать и развернуть Yii приложение в облаках.

Сразу оговорюсь, что статься для начинающих. Кому интересно заходите!

Связываем Cloud9 IDE [2] и OpenShift [3].

В качестве IDE я решил остановиться на Cloud9, дизайн и функциональность [4] меня устраивает. Плюс то, что можно запускать приложение прямо в IDE, минус — не поддерживается хостинг [5] баз данных, поэтому попробуем организовать доступ к базе данных, которую мы создадим в OpenShift.

Да и еще, мне улыбнулся Cloud9 из-за присутствии терминала (Alt+T), пускай хоть и ограниченного.

Cloud9 и OpenShift. Разработка и развертывание приложений в облаках

Шаг 0. Создаем аккаунты, если их у Вас еще нет.

Лично я использую бесплатные возможности.
Для Cloud9 это публичные рабочие среды по 128MB + 1 одна приватная + ограниченный терминал.
Для OpenShift это 3 small картриджа, каждый по 512MB RAM и 1GB disk. Картриджи это компоненты, которые можно добавить в приложение, такие как базы данных (MySQL, PosgreSQL и MondoDB) и инструменты администрирования (phpMyAdmin, RockMongo, Cron и т.п.).
Для маленьких экспериментов вполне достойно.

Шаг 1. Добавляем в OpenShift SHH ключ из Cloud9

SHH ключи, как известно, используются для безопасного соеднинения, вот хорошие статьи
В Cloud9 ключ можно найти в пункте Show SHH key в Your Account.

Cloud9 и OpenShift. Разработка и развертывание приложений в облаках

Копируем его и вставляем данный ключ в OpenShift, для этого в Your Account есть Public Keys

Cloud9 и OpenShift. Разработка и развертывание приложений в облаках

Шаг 2. Создаем рабочую среду в Cloud9 и добавляем приложение в OpenShift

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

Cloud9 и OpenShift. Разработка и развертывание приложений в облаках

В OpenShift легким движением мыши создаем приложение с PHP 5.3.

Cloud9 и OpenShift. Разработка и развертывание приложений в облаках

Шаг 3. Добавляем git репозиторий приложения из OpenShift в рабочую среду Cloud9

После создания приложения в OpenShift можно увидеть его git репозиторий.

Cloud9 и OpenShift. Разработка и развертывание приложений в облаках

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

git remote add openshift -m master ssh://******.git/
git pull -s recursive -X theirs openshift master

Шаг 4. Подгружаем Yii в рабочей среде Cloud9 и создаем каркас приложения yii

Для загрузки yii фреймоврка в приложение используем его git репозиторий, добавив его как подмодуль:

git submodule add git://github.com/yiisoft/yii.git yii
git commit -m «added yii repository as submodule»

В репозитории подгрузим нужный нам релиз:

cd yii
git checkout 1.1.13
cd…
git add yii
git commit -m «Use yii v1.1.13»

Теперь создадим каркас приложения yii. Для этого обычно используется скрипт webapp, но запустить его просто как shell не получится. Вместо этого будем использовать php версию скрипта, и да, нам понадобиться глобальный путь до нашей папки.
Выполним следующую команду и получим глобальный путь:

pwd

Имеем примерно следующее:

Cloud9 и OpenShift. Разработка и развертывание приложений в облаках

Теперь выполним скрипт с этим путем для создания каркаса приложения:

php yii/framework/yiic.php webapp /var/lib/stickshift/ffa13067224647beb05863058997082a/app-root/data/354172/php git

Добавим все полученное:

git add php
git commit -m «created yii skeleton app»

Пробный запуск php/index.php из Cloud9 покажет нам предупреждение:

date(): It is not safe to rely on the system's timezone settings.

Решается это добавлением в php/protected/config/main.php следующего:

<?php
// uncomment the following to define a path alias
// Yii::setPathOfAlias('local','path/to/local-folder');
date_default_timezone_set( 'UTC' );

И не забываем commit:

git commit -a -m «set the default timezone to UTC»

Хочу отметить, что проблема существует только в Cloud9, в Openshift приложение запускается без каких-либо предупреждений.

Cloud9 и OpenShift. Разработка и развертывание приложений в облаках

Шаг 5. Создаем базу данных в OpenShift и настраиваем соединение

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

Cloud9 и OpenShift. Разработка и развертывание приложений в облаках

Адрес и порт базы данных я смог узнать, только поставив кардридж phpMyAdmin.

Cloud9 и OpenShift. Разработка и развертывание приложений в облаках

В том же php/protected/config/main.php настриваем соединение с MySQL.

Вот и все!

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

Использовались следующие источники:
1. Look Ma, No Hands! Developing for the Cloud, in the Cloud with Cloud9 IDE [6]
2. Create Yii Project In Cloud9 [7]

Надеюсь статья окажется полезной!

Автор: zharkyn

Источник [8]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/veb-razrabotka/24444

Ссылки в тексте:

[1] онлайн IDE: http://habrahabr.ru/post/127567/

[2] Cloud9 IDE: https://c9.io/

[3] OpenShift: https://openshift.redhat.com/app/

[4] функциональность: https://c9.io/site/features/

[5] хостинг: https://www.reg.ru/?rlink=reflink-717

[6] Look Ma, No Hands! Developing for the Cloud, in the Cloud with Cloud9 IDE: https://openshift.redhat.com/community/blogs/look-ma-no-hands-developing-for-the-cloud-in-the-cloud-with-cloud9-ide

[7] Create Yii Project In Cloud9: http://www.yiiframework.com/wiki/373/create-yii-project-in-cloud9/

[8] Источник: http://habrahabr.ru/post/165303/