Capifony — это удобная тулза для деплоя сайтов на Symfony. Базируется она на Capistrano и написана Константином Кудряшовым. Основную информацию по работу с Capifony можно почерпнуть из офф. сайта capifony.org и заметки «Deploy Your Symfony Application Painlessly with 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# несколько бандлов подключены как сабмодули. при деплое их тоже нужно инициализировать и обновлять set :git_enable_submodules, 1 role :web, domain # Your HTTP server, Apache/etc role :app, domain # This may be the same as your `Web` server role :db, domain, :primary=>true# This is where Rails migrations will run # значение для псевдо-терминала 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# как-то так "In this case, rsync will create a cache on your production server # and will push only files that have changed between deploys." 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
Главное домучить деплой сайта на Symfony2 c помощью Capifony до первого удачного результата. После этого процесс обновления production становится очень простым. Удачи вам и терпения ;).