
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 застосунків. Після цього процес оновлення продуктивної версії стає дуже простим. Удачі та терпіння ;).