使用Laravel与Capistrano时出现以下问题:
php
而仅通过usr/bin/local/.../PHP-CLI
命令提供.bash_profile
因此composer install
从cli运行是没有问题的。但是,Capistrano(据我了解,由于它以非常基本的外壳开头,因此http://capistranorb.com/documentation/faq/why-does-something-work-in-my-ssh-session-but-not- in-capistrano /)不会加载此别名,因此我从composer脚本(例如)中得到了一个错误php artisan
。
但是,在我的开发机上,我需要将其保留为php,因为这是php所在的位置。
我怎样才能最好地解决这个问题?您需要更多信息吗?谢谢。
以防万一,这就是我所说的脚本:
desc 'Composer install'
task :composer_install do
on roles(:app), in: :groups, limit:1 do
execute "/usr/local/bin/php5-56STABLE-CLI composer.phar install --working-dir #{fetch(:release_path)}"
execute "cp #{fetch(:deploy_to)}/shared/.env #{fetch(:release_path)}/.env"
end
end
好的,我目前的解决方法是:
在capistranodeploy.rb
中,在部署更新时执行的脚本中。
desc 'Composer install'
task :composer_install do
on roles(:app), in: :groups, limit:1 do
execute "/usr/local/bin/php5-56STABLE-CLI /path/to/composer.phar install --working-dir #{fetch(:release_path)} --no-scripts"
execute "cd #{fetch(:release_path)} && /usr/local/bin/php5-56STABLE-CLI artisan clear-compiled"
execute "cd #{fetch(:release_path)} && /usr/local/bin/php5-56STABLE-CLI artisan optimize"
end
end
end
after "deploy:updated", "deploy:composer_install"
我不确定是否artisan clear-compiled
需要100%。无论如何,那两个是通常会通过composer调用的composer脚本,但是该--no-scripts
标志阻止它们被调用,因此安装时不会失败。php
如您所见,从capistrano打电话给他们时,我可以轻松更改要使用的内容。
但是,如果有人有更好的解决方案,请告诉我。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句