Розробка на фреймворку Yii2 на платформі IBM Bluemix

У мене виникли труднощі з розміщенням php-додатків з використанням фреймворку Yii2 на платформі IBM Bluemix. Впевнений, я такий не один, тому в цьому пості міститься коротка інструкція, як цих труднощів можна уникнути.

Що нам потрібно зробити:
  1. створити проект в Bluemix
  2. підключити Git
  3. створити проект Yii2 і змінити структуру файлів
  4. налаштувати хмара
  5. активувати додаток, затока код

Створюємо додаток в Bluemix

Bluemix по своїй структурі призначений для кінцевого продукту, таким чином розробкою проекту слід займатися локально або (як я) на окремому сервері.

Після реєстрації на bluemix.net заходимо на DASHBOARD і створюємо середовище для програмування на php в Cloud Foundry. Для цього на стартовій сторінці натискаємо кнопку Create App.




Вибираємо WEB…



… і вибираємо PHP.



Забираємо його код на свою машину

Тепер нам потрібно забрати код новоствореного програми на свою робочу машину, оскільки крім найпростішого Hello world там знаходяться кілька конфігураційних файлів, які забезпечують запуск коду в хмарі. Для цього заходимо в Overview програми і натискаємо Add GIT…



… і отримуємо посилання на репозиторій…



… з якого клонируем додаток до себе.

Встановлюємо Yii2

Встановлюємо Yii2 за офіційною інструкції з сайту фреймворку на свій комп'ютер або віддалений сервер. Всі файли, крім папки web, потрібно перенести в папку lib. Файли з web переносимо в корінь проекту. Таке розташування файлів проекту потрібно для досягнення двох цілей:
  1. Відключити автоматичне виконання сомроѕег install за знайденим в корені проекту composer.lock/composer.json.
  2. Перенести файли фреймворку за межі публічної частини проекту. Папка lib распакуется поза папки, доступною для веб-сервера (/home/vcap/app/htdocs), але в межах include_path (/home/vcap/app/lib)
Ці папки налаштовуються окремими параметрами (WEBDIR і LIBDIR), щоб пізніше можна було налаштувати оточення так, як вам зручніше. Для простоти прикладу я використовую значення за замовчуванням.

Налаштовуємо проект

Для правильної завантаження Yii2 при кожному оновленні потрібно провести додаткову настройку, пов'язану з залежностями Yii2 та інших підключаються бібліотек. Зокрема я маю на увазі неможливість встановити fxp/composer-asset-plugin на рівні проекту – ми можемо встановити цю бібліотеку тільки глобально. Для вирішення цієї задачі в корені проекту створимо папку .bp-config, а в ній – файл options.json.

Це те місце, звідки буде довантажувати налаштування Cloud Foundry PHP Buildpack, який ми підключили до проекту при створенні.

Зміст файлу, який ми використовуємо:
{
"PHP_VERSION": "{PHP_56_LATEST}",
"PHP_EXTENSIONS": [
"bz2",
"zlib",
"openssl",
"curl",
"mcrypt",
"mbstring",
"pdo"
],
"ADDITIONAL_PREPROCESS_CMDS": [
"cd ./app/lib/",
"php -r \"readfile('https://getcomposer.org/installer');\" | php",
"php composer.phar global require \"fxp/composer-asset-plugin:~1.1.1\"",
"php composer.phar install",
"cd ../../"
]
}

PHP_VERSION вказує версію PHP. PHP_EXTENSIONS вказує на те, які доповнення нам потрібні. Потім ADDITIONAL_PREPROCESS_CMDS вказує команди, які потрібно запустити після установки проекту хмара:
  1. перейти в папку з Yii2
  2. встановити composer
  3. завантажити fxp/composer-asset-plugin (див. установку Yii2)
  4. завантажити всі потрібні залежності composer.lock/composer.json
  5. повернутися до первісної папку – це потрібно для продовження нормальної роботи

Запускаємо додаток в хмарі

Після того, як ви зробили всі необхідні зміни, просто надішліть їх на Bluemix з допомогою git push. Bluemix побачить зміни в репозиторії і встановить всі потрібні залежності, включаючи fxp/composer-asset-plugin, і ми отримаємо робочу тестову сторінку з Hello world від Yii2 без проблем з ассетами bower.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.