与Capistrano一起部署Laravel 4.在“作曲家安装”期间拒绝许可



我正在尝试使用Capistrano部署我的Laravel 4网站,当我尝试以下内容时:

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 root@my.ip.add.ress

如果我在上面评论run命令,则Capistrano能够成功完成部署。但是,然后我必须从我网站的current发行目录中手动运行composer install,以使我的网站上的所有内容正常工作。

我尝试使用-d标志运行部署以逐步进行部署,如果这些权限不正确,我尝试修复权限,但似乎都没有解决此错误。另外,我全部寻找了一个可能的答案,找不到这个特定问题的其他人。

所以,我有两个问题:

  1. 对此有任何解决的想法?
  2. 似乎每次部署时都运行composer install,只是创建比必要的更多的工作。最好是:

    a)不忽略每个部署上的vendor文件夹in my local repository therefore removing the need to run COMENTEMTART?或,

    b)在根目录中运行composer install(在与currentreleases相同的目录级别上),然后更改bootstrap目录中vendor/autoload.php的路径以指向此新目录,因此我不需要再次运行composer install

我弄清楚了。而不是:

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在composer install命令之后执行rm -f /var/www/public/myapp/current

相关内容

  • 没有找到相关文章

最新更新