关于在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文件执行命令不成功的原因,希望熟悉这块的同学解疑答惑一下,万分感谢

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 1

php 放到 fpm 下的?

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

1年前 评论

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