2014-02-07 4 views
0

내 Laravel 4 사이트를 배포하는 카피 스트라 노를 사용하기 위해 노력하고있어 내가하려고 할 때 :Capistrano에 Laravel 4 배포. 권한은`동안 거부 작곡가 install '이다

sh: 1: composer: Permission denied 

: 내 deploy.rb

run "cd #{current_path} && composer install --no-dev"` 

나는이 오류 이후 몇 줄 :

failed: "sh -c 'cd /var/www/public/mysite/current && composer install --no-dev'" on [email protected] 

다음 카피 스트라 노가 COMP 할 수있는 이상 나는 run 명령을 주석 경우 성공적으로 배치하십시오. 그러나 나는 수동으로 composer install을 내 사이트의 current 릴리스 디렉토리에서 실행해야 내 사이트의 모든 것을 제대로 작동시킬 수 있습니다.

배포를 단계별로 수행하기 위해 -d 플래그를 사용하여 배포를 실행 해 보았습니다. 올바르지 않을 경우 사용 권한 수정을 시도했지만이 오류를 해결하지 못하는 것 같습니다. 또한, 나는 가능한 대답을 찾아 보았고이 특정 문제로 다른 누구도 찾을 수 없습니다. 이에 대한 수정의

  1. 어떤 아이디어 :

    그래서, 나는이 개 질문이?

  2. 배포 할 때마다 composer install이 실행될 때마다 필요한 것보다 많은 작업을 만드는 것 같습니다.

    ) 배포시마다 vendor 폴더 in my local repository therefore removing the need to run composer install`을 무시하지 않으시겠습니까? 또는,

    B) currentreleases과 같은 디렉토리 수준의 루트 디렉토리에 실행 composer install() 다음 bootstrap 디렉토리에 vendor/autoload.php로 경로를 변경 그래서 다시 composer install를 실행할 필요가 없습니다이 새 디렉토리를 지정합니다 ?

답변

0

알아 냈습니다. 대신에 :

run "cd #{current_path} && composer install --no-dev" 

나는이 대신하고 있어요 : 카피 스트라 노의 composer install 명령 후에 rm -f /var/www/public/myapp/current을 실행했기 때문에

run "cd #{releases_path}/#{release_name} && php /usr/local/bin/composer/composer.phar install --no-dev" 

(나는 #{releases_path}/#{release_name}#{current_path}을 변경

.