使Capistrano在运行脚本时在服务器上使用别名

卢卡斯·奥珀曼(Lukas Oppermann)

使用Laravel与Capistrano时出现以下问题:

  • 我的托管服务提供商不提供cli php版本,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
卢卡斯·奥珀曼(Lukas Oppermann)

好的,我目前的解决方法是:

在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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使Capistrano在运行脚本时在服务器上使用别名

来自分类Dev

直接使用服务器cron运行脚本/插件?

来自分类Dev

从Django Web服务器在远程服务器上运行脚本

来自分类Dev

当我在远程服务器上运行脚本时,它会在本地机器上启动

来自分类Dev

每次在不同服务器上运行脚本时,会使用不同的占位符名称生成未命名的约束吗?

来自分类Dev

如何使服务器每次都检查站点?如何在服务器上运行脚本?

来自分类Dev

我是否必须在Apache服务器上安装Ruby才能运行脚本

来自分类Dev

代理程序构建完成后,在TeamCity服务器上运行脚本

来自分类Dev

高频率在另一台服务器上运行脚本

来自分类Dev

我是否必须在Apache服务器上安装Ruby才能运行脚本

来自分类Dev

在我的Web服务器上,如何在图形环境中运行脚本?

来自分类Dev

发出运行脚本以比较不同服务器上的表之间的数据的问题

来自分类Dev

无法在启动ec2 ubuntu服务器上运行脚本

来自分类Dev

节点服务器启动后运行脚本

来自分类Dev

如何针对 Windows 服务器 WinRM 运行脚本

来自分类Dev

在服务器上远程运行的bash脚本中使用grep时出现问题

来自分类Dev

使用Web服务器运行脚本并维护数据以备后用

来自分类Dev

使用脚本在SSH服务器上远程运行命令

来自分类Dev

使用脚本在ssh服务器上远程运行命令

来自分类Dev

在Azure sql服务器上运行脚本但在本地sql服务器上正常运行时出现错误

来自分类Dev

在服务器上运行R脚本?

来自分类Dev

检查服务器是否正在运行,并使用批处理脚本复制文件

来自分类Dev

在克隆远程服务器上的存储库时,如何指定capistrano将使用的密钥文件?

来自分类Dev

使用 angular 等框架时服务器上服务器端脚本的文件结构

来自分类Dev

Minecraft 服务器执行脚本

来自分类Dev

运行Rails服务器时出错,服务器已在运行

来自分类Dev

如果我的服务器有多个IP地址,如何使用每个IP地址运行脚本?

来自分类Dev

如何在运行Express JS服务器时永久使用

来自分类Dev

如何在运行Express JS服务器时永久使用

Related 相关文章

  1. 1

    使Capistrano在运行脚本时在服务器上使用别名

  2. 2

    直接使用服务器cron运行脚本/插件?

  3. 3

    从Django Web服务器在远程服务器上运行脚本

  4. 4

    当我在远程服务器上运行脚本时,它会在本地机器上启动

  5. 5

    每次在不同服务器上运行脚本时,会使用不同的占位符名称生成未命名的约束吗?

  6. 6

    如何使服务器每次都检查站点?如何在服务器上运行脚本?

  7. 7

    我是否必须在Apache服务器上安装Ruby才能运行脚本

  8. 8

    代理程序构建完成后,在TeamCity服务器上运行脚本

  9. 9

    高频率在另一台服务器上运行脚本

  10. 10

    我是否必须在Apache服务器上安装Ruby才能运行脚本

  11. 11

    在我的Web服务器上,如何在图形环境中运行脚本?

  12. 12

    发出运行脚本以比较不同服务器上的表之间的数据的问题

  13. 13

    无法在启动ec2 ubuntu服务器上运行脚本

  14. 14

    节点服务器启动后运行脚本

  15. 15

    如何针对 Windows 服务器 WinRM 运行脚本

  16. 16

    在服务器上远程运行的bash脚本中使用grep时出现问题

  17. 17

    使用Web服务器运行脚本并维护数据以备后用

  18. 18

    使用脚本在SSH服务器上远程运行命令

  19. 19

    使用脚本在ssh服务器上远程运行命令

  20. 20

    在Azure sql服务器上运行脚本但在本地sql服务器上正常运行时出现错误

  21. 21

    在服务器上运行R脚本?

  22. 22

    检查服务器是否正在运行,并使用批处理脚本复制文件

  23. 23

    在克隆远程服务器上的存储库时,如何指定capistrano将使用的密钥文件?

  24. 24

    使用 angular 等框架时服务器上服务器端脚本的文件结构

  25. 25

    Minecraft 服务器执行脚本

  26. 26

    运行Rails服务器时出错,服务器已在运行

  27. 27

    如果我的服务器有多个IP地址,如何使用每个IP地址运行脚本?

  28. 28

    如何在运行Express JS服务器时永久使用

  29. 29

    如何在运行Express JS服务器时永久使用

热门标签

归档