【问题标题】:How to execute a php script on ssh server through a capistrano 2 deploy ruby script如何通过 capistrano 2 deploy ruby​​ 脚本在 ssh 服务器上执行 php 脚本
【发布时间】:2014-02-03 07:37:49
【问题描述】:

我需要从 capistrano 2 部署脚本在部署服务器上执行一个 php 脚本,并且需要在一个变量中获取输出。我正在尝试以下用于在 ruby​​ 中执行 shell 的命令

result =%x[php -q #{myDeployPath}/myfile.php]

我收到“无法打开文件”错误,这是因为它试图在我的本地服务器上运行此 php,而我正在从该服务器上部署所需的服务器。我能够在部署中执行正常的“运行”命令服务器,但不知道在变量“结果”中获取输出。

我可以通过以下命令在 serevr 上执行此 php,但无法捕获脚本中的输出。

 run "php -q #{myDeployPath}/myfile.php"

请帮忙.. 谢谢!!

【问题讨论】:

    标签: php ruby-on-rails ruby ssh capistrano


    【解决方案1】:

    这个怎么样:

    result =%x[ssh username@remote.server php -q #{myDeployPath}/myfile.php]
    

    关于设置 SSH 以实现这一点的一些信息(我在 https://unix.stackexchange.com/questions/112087/broadcast-or-send-machine-readable-code-to-ssh-clients/112093#112093 发布了此信息)

    步骤#1

    首先确保客户端(运行该 Ruby)设置了 SSH 私钥:ssh-keygen

    步骤 #2

    然后确保所述私钥的公钥在远程计算机上。您需要将其放在文件的末尾,其名称如下:

     /home/${user}/.ssh/authorized_keys
    

    ${user} 是功能更强大的计算机上的用户名。

    另外,请确保在功能强大的计算机上,/home/${user}/.ssh/ 的权限为 700 (drwx------),/home/${user}/.ssh/authorized_keys 的权限为 600 (-rw-------)。使用chmod设置权限:

    $ chmod 700 /home/${user}/.ssh/
    $ chmod 600 /home/${user}/.ssh/authorized_keys
    

    【讨论】:

    • Capistrano 脚本执行所有其他命令而无需再次使用 ssh,我是否需要再次使用 ssh 来执行 php 并获取其结果
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 2011-09-08
    • 2014-01-20
    • 2018-05-25
    • 1970-01-01
    • 2016-11-27
    相关资源
    最近更新 更多