Capifony를 원격 서버에 배포하도록 구성했으며 프로젝트를 배포 할 때 capifony가 롤백 작업을 실행 한 후에 오류가 발생합니다. 그러나 capifony가 symfony:composer:dump_autoload
액션을 실행하고 결과적으로 chache를 덤프하고 이라는 새로운 자동로드 파일을 자동로드합니다. 내가 심포니 응용 프로그램을 실행할 때 후 나는 오류 :Symfony2 + Capifony 롤백 오류
PHP Warning: include(): Failed opening '/var/www/vhosts/user/app/releases/20130805162052/src/Rocket/ApplicationBundle/RocketApplicationBundle.php' for inclusion (include_path='/........') in /var/www/vhosts/user/app/shared/vendor/composer/ClassLoader.php on line 185
그래서 질문 :
after "deploy:rolling_back_action", "symfony:composer:dump_autoload"
: 배포가
뭔가이 같은 오류를 가지고 있다면 나는 symfony:composer:dump_autoload
을 실행할 수있는 방법 누구든지 나를 도울 수 있습니까?
편집는 :
나는 네임 스페이스 :deploy:update_code
를 재 선언하고 나는이 훅이 작품 어떤 오류가 발생하는 경우 현재 배포 세션에서, on_rollback
작업을 변경하려고. 하지만 on_rollback 이벤트 releas_path
에서 symfony:composer:dump_autoload
조치를 수행 할 때, 현재 아니며, 나는 ... 여기에 내가 재 선언 네임 스페이스를 tryed 때, 내 코드 자신의 재 선언입니다 수 없습니다
namespace :deploy do
task :update_code, :except => { :no_release => true } do
on_rollback { my_namespace.rollback }
strategy.deploy!
finalize_update
end
end
namespace :my_namespace do
task :rollback, :except => { :no_release => true } do
run "rm -rf #{release_path}; true" #default capistrano action on rollback
#my custom actions
#run "cd "+shared_path+"/../current"
#run "php composer.phar dump-autoload"
set :release_path, shared_path+"/../current"
symfony.composer.dump_autoload
end
end
는 지금까지 임시 솔루션을 발견했다 이 문제는 - 배포 후 매번 경로를 업데이트하고 새로운 자동로드 정보를 덤프하기 위해 cap symfony:composer:dump_autoload
을 실행하지만, 내가 좋아하지 않아요 ...
다시 선언 네임 스페이스 또는 다른 솔루션으로 진실을 알 수 있습니까? 오류가이 같은 것을 사용하여 발생하는 경우
감사합니다, 나는 대답과 그 문제에 자세히 설명 ... – Webeith