Розгортання сайту Symfony2 за допомогою Capifony

Capifony — це розумний та зручний інструмент для розгортання сайтів на Symfony. Він базується на Capistrano і був написаний Константином Кудряшовим. Основну інформацію про роботу з Capifony можна знайти на офіційному сайті capifony.org та в короткій статті "Розгортання додатків Symfony безболісно з Capifony".

Рекомендую почати розгортання symfony2 з capifony вручну на сервері та переконатися, що все налаштовано та працює правильно (особливо скрипт app / console). Наприклад, я виявив деякі неправильні способи для git підмодулів і не зміг розгорнути сайт з першого разу.

Нижче наведено конфігурацію Capifony для розгортання цього сайту та мої коментарі до неї.

# Основна конфігурація створюється після запуску "capifony ." у папці проекту.# Назва додатку
set :application, "stfalcon"# До цього домену скрипт буде підключено через ssh
set :domain,      "#{application}.com"# Розгорнути вебсайт у директорії /var/www/stfalcon.com
set :deploy_to,   "/var/www/#{domain}"# Цей шлях буде використано нижче
set :app_path,    "app"
 
# Шлях до git репозиторію
set :repository,  "git://github.com/stfalcon/portfolio.git"# Тип сховища
set :scm,         :git# Кілька бандлів підключено як підмодулі. Під час розгортання сайтів symfony2 з capifony їх також потрібно ініціалізувати та оновити
set :git_enable_submodules, 1
 
role :web,        domain                         # Ваш HTTP сервер, Apache тощо
role :app,        domain                         # Це може бути те ж саме, що й ваш сервер `Web`
role :db,         domain, :primary => true# Тут будуть виконуватись міграції Rails
 
# Значення для псевдотерміналу Capistrano. # Значення за замовчуванням було неправильним
default_run_options[:pty] = true
 
# Скільки релізів слід зберігати, коли ви починаєте видаляти старі релізи "deploy: cleanup"
set  :keep_releases,  3# Користувач, під яким ми розгортаємо сайт на сервері# Коли власнику сайту надали доступ до ssh, ми нарешті отримали гарне розгортання
set  :user,       "stfalcon-com"# sudo було вимкнено. Тепер давайте розгортати від власника
set  :use_sudo,   false
 
# Запустіть скрипт ./bin/vendors --update для оновлення бібліотек постачальників
set :update_vendors, true# У нас буде щось на зразок "У цьому випадку rsync створить кеш на вашому виробничому сервері # і буде передавати лише файли, які змінилися між розгортаннями."
set :deploy_via, :rsync_with_remote_cache
 
# Файли, які зберігаються в папці shared і копіюються з кожним релізом# Наприклад, у ./shared/app/config/parameters.ini зберігаються налаштування для доступу до бази даних# і пароль для адміністратора
set :shared_files,      ["app/config/parameters.ini"]# Папки, які зберігаються в папці shared і копіюються з кожним релізом# Наприклад, папка логів для завантаження файлів, папки з бібліотеками постачальників
set :shared_children,     [app_path +"/logs", web_path +"/uploads", web_path +"/bundles", "vendor"]# Запустіть команду ./app/cache assetic: dump
set :dump_assetic_assets, true

Отже, це все про використання capifony для розгортання Symfony застосунків. Після цього процес оновлення продуктивної версії стає дуже простим. Удачі та терпіння ;).