2014-02-07 102 views
0

我试图使用Capistrano的部署我Laravel 4个网站,当我尝试:用Capistrano部署Laravel 4。在`权限被拒绝作曲家install`

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

在我deploy.rb我得到这个错误:

sh: 1: composer: Permission denied 

和几行后:

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

如果我注释掉run命令上方,然后Capistrano的是能够COMP成功部署部署。但是,我必须从我的站点的current版本目录中手动运行composer install,以便让我网站上的所有内容正常工作。

我试着用-d标志来运行我的部署一步一步地完成部署,我已经尝试修复权限,以防万一它们不正确,但似乎都不能解决这个错误。此外,我已经遍及寻找一个可能的答案,并找不到任何其他人与这个具体问题。

所以,我有两个问题:

  1. 的修复程序的任何想法呢?
  2. 我每次部署时似乎都在运行composer install只是创造了比必要的更多的工作。这是更好的:

    a)不要忽略vendor文件夹in my local repository therefore removing the need to run作曲家安装在每个部署?或者,

    二)在根目录下运行composer install(在相同的目录级别currentreleases),然后将路径更改为vendor/autoload.phpbootstrap目录指向这个新的目录,所以我从来没有需要再次运行composer install

回答

0

我想通了。相反的:

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

我这样做,而不是:

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

(我改变#{current_path}#{releases_path}/#{release_name}因为Capistrano的正在执行的rm -f /var/www/public/myapp/currentcomposer install命令后

相关问题