VPS侦探论坛

 找回密码
 注册
查看: 4360|回复: 4

lnmp1.2 使用Git的webhook 调用shell_e!x!e!c的问题。

[复制链接]
发表于 2015-12-31 14:12:17 | 显示全部楼层 |阅读模式

应用场景:Conding的Git仓库有一个功能,就是每次push的时候可以调用webhook通知到url。
所以我做了一个php文件:
  1. $pwd = getcwd();

  2. $command = '/home/wwwroot/pm.sxteam.com/test/git-puller.sh';
  3. //$command = 'whoami';
  4. $output = shell_e!x!e!c($command);
  5. print $output;
  6. echo $pwd;
  7. ?>
复制代码



/home/wwwroot/pm.sxteam.com/test/git-puller.sh 的内容:用于 git pull更新仓库的。
  1. cd /home/wwwroot/pm.sxteam.com/test && /usr/local/git/bin/git pull && cd -
  2. echo "OK"
复制代码



访问这个php文件Url执行命令 whoami的时候,可以得到输出为  www  说明php是使用www这个用户执行的。

现在的问题是这样:
通过访问url,通过shellexec执行 git-puller.sh。可以得到输出 OK 。但是git pull 命令没有执行,没有反应,没有提示。
然后我在ssh里执行如下命令,却是可以执行成功git命令的。

通过命令
  1. sudo -u www php git.php
复制代码

执行结果 “Already up-to-date. ”  出现这个说明git命令是执行了的。

求助老大,为什么通过 命令行 使用www用户执行php就可以成功,而直接通过浏览器访问就不行呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
 楼主| 发表于 2015-12-31 14:12:51 | 显示全部楼层


shell_e!x!e!c   因为论坛敏感词屏蔽,所以我加了 叹号
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
发表于 2015-12-31 21:55:09 | 显示全部楼层

看一下文件是否有执行权限和文件属主属组信息
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
 楼主| 发表于 2016-1-1 10:12:48 | 显示全部楼层



文件都是777权限,所属www用户和www组。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
发表于 2016-1-1 19:45:11 | 显示全部楼层

看一下你这个目录下的git的命令的权限

军哥运维代购:http://shop63846532.taobao.com/

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|VPS侦探 ( 鲁ICP备16040043号-1 )

GMT+8, 2024-9-28 17:29 , Processed in 0.027285 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表