关于在php文件中执行脚本的问题

1. 云服务器

Laravel

1)play.sh内容

#!/bin/bash
ssh ssh1 “exec sudo su -c ‘cd /www/wwwroot/tools && git pull && cd /www’”
echo “部署成功”

2) 执行命令

sh play.sh
执行结果:git成功更新

3). 在php文件中代码(通过域名访问执行)

$shell = “sh /www/wwwroot/tp/play.sh”;
echo shell_exec($shell);die;
结果:会输出部署成功,但是git没有执行

4)说明: 在服务器一中输入 sh play.sh,将会更新服务器二的代码.如果有更多的服务器,需要在服务器的authorized_keys文件中配置服务器一的公钥.然后在服务器一的config中配置其信息. 如果更新多台,就编辑play.sh,例如:

#!/bin/bash
ssh ssh1 “exec sudo su -c ‘cd /www/wwwroot/tools && git pull && cd /www’”
ssh ssh2 “exec sudo su -c ‘cd /www/wwwroot/tools && git pull && cd /www’”
echo “部署成功”.
目的是想通过域名来更新多个服务器的代码,所以有了这次实验.但不知道通过php文件执行命令不成功的原因,希望熟悉这块的同学解疑答惑一下,万分感谢

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1

php 放到 fpm 下的?

怎么感觉是 php 运行的用户 ~/.ssh 下没有对应的私钥。直接在命令行执行这个 php 文件看看

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!