2013-03-27 5 views
3

Я пытаюсь развернуть мое Symfony2 приложение на моем сервере развития, который размещен снаружи, используя capifony, однако я получаю следующее сообщение об ошибке:Capifony Ошибка кэширования при развертывании сервера разработки

--> Updating code base with remote_cache strategy 
--> Creating cache directory................................✔ 
--> Creating symlinks for shared directories................✔ 
--> Creating symlinks for shared files......................✔ 
--> Copying Composer from previous release..................✔ 
--> Updating Composer.......................................✔ 
--> Updating Composer dependencies..........................✔ 
--> Building bootstrap file.................................✔ 
--> Dumping an optimized autoloader.........................✔ 
--> Installing bundle's assets..............................✔ 
--> Warming up cache........................................✔ 
--> Dumping all assets to the filesystem....................✘ 
*** [err :: x.xx.xx.xxx] PHP Fatal error: Class 'Ivory\GoogleMap\Templating\Helper\Base\CoordinateHelper' not found in /var/www/dev.xyz.co.uk/shared/app/cache/dev/appDevProjectContainer.php on line 462 

Am I отсутствует что-то из моего сценария развертывания? Вот мой deploy.rb файл:

set :stage_dir, 'app/config/deploy' # needed for Symfony2 only 
set :stages, %w(production staging development) 
require 'capistrano/ext/multistage' 

set :application,   "xyz.co.uk" 
set :user,     "root" # The server's user for deploys 

set :normalize_asset_timestamps, false 

set :repository,   "[email protected]:xyz/xyz.co.uk.git" 
set :scm,     :git 
set :keep_releases,   3 
set :use_sudo,    false 
set :shared_files,   ["app/config/parameters.yml"] 
set :web_path,    "web" 
set :shared_children,  [app_path + "/logs", app_path + "/cache", web_path + "/uploads", "vendor"] 
set :use_composer,   true 
set :update_vendors,  true 
set :dump_assetic_assets, true 
set :deploy_via,   :remote_cache 

#logger.level = Logger::MAX_LEVEL 

А вот мой development.rb файл:

server 'x.xx.xx.xxx', :app, :web, :db, :primary => true 
ssh_options[:port] = xxxx 
ssh_options[:forward_agent] = true 
set :deploy_to, "/var/www/dev.xyz.co.uk" 
set :symfony_env_prod, "dev" 
set :branch, "develop" 

# Need to clear *_dev controllers 
set :clear_controllers,  false 
+0

Мне нужно было удалить кеш перед его развертыванием, а затем он сработал. Должен ли я добавить крючок в свой сценарий развертывания, чтобы очистить кеш до его развертывания? – user1961082

ответ

3

Вы не должны делиться app/cache между выпусками. Сохраните это так:

set :shared_files,  ["app/config/parameters.yml"] 
set :shared_children,  [app_path + "/logs", web_path + "/uploads"] 
+0

ОК и удалить «поставщика» тоже? Сейчас я попробую. – user1961082

+0

У меня все еще есть проблема с моим каталогом кеша при развертывании. Я получаю сообщение об ошибке «RuntimeException: не удалось записать файл кеша» /var/www/xyz.co.uk/app/cache/dev/classes.php «.», Если я не удалю весь кеш, тогда он работает нормально. Любая идея, почему это так? У меня нет приложения/кеша/symlinked, как у меня с/app/logs/ – user1961082

+0

Вы не должны ссылаться на 'app/cache', потому что каждая версия имеет свой собственный код и требует четкого кеша, так что это нормально. Ваша проблема связана с разрешениями, которые вы должны установить, как описано здесь, - http://symfony.com/doc/current/book/installation.html#configuration-and-setup. Самый простой способ - добавить 'umask (0000);' в 'app/console' и' web/app * .php'. –

Смежные вопросы