关于在php文件中执行脚本的问题
1. 云服务器
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文件执行命令不成功的原因,希望熟悉这块的同学解疑答惑一下,万分感谢
推荐文章: