关于github使用webhook部署代码的问题?

WBOY
发布: 2016-06-06 20:14:00
原创
1664 人浏览过

使用PHP处理github发送过来的请求,测试正常。在调用脚本或使用exec()执行命令总是不能成功。

<code>// 判断签名是否匹配
if ($hash === $payloadHash) {
    // 调用shell
    // file_put_contents('/var/www/niucunhui.io/auto/test.txt', '程序走到这里了');
    exec('cd /var/www/niucunhui.io/auto/ && git pull');
}

</code>
登录后复制
登录后复制

file_put_contents可以写入内容,证明签名是匹配成功的。在服务器单独执行脚本,也是可以pull代码。

脚本如下:

<code>#!/bin/bash

WEB_PATH='/var/www/niucunhui.io/sql-optimize-referance/'
WEB_USER='www'
WEB_USERGROUP='www'

echo "Start deployment"
cd $WEB_PATH
echo "pulling source code..."
git reset --hard origin/master
git clean -f
git pull
git checkout master
echo "changing permissions..."
chown -R $WEB_USER:$WEB_USERGROUP $WEB_PATH
echo "Finished."
</code>
登录后复制
登录后复制

单独写一个PHP程序 exec()命令也是可以执行的。

请问,还有可能是那里的问题?
服务器版本 CentOS 6.5
PHP版本 5.6.15

回复内容:

使用PHP处理github发送过来的请求,测试正常。在调用脚本或使用exec()执行命令总是不能成功。

<code>// 判断签名是否匹配
if ($hash === $payloadHash) {
    // 调用shell
    // file_put_contents('/var/www/niucunhui.io/auto/test.txt', '程序走到这里了');
    exec('cd /var/www/niucunhui.io/auto/ && git pull');
}

</code>
登录后复制
登录后复制

file_put_contents可以写入内容,证明签名是匹配成功的。在服务器单独执行脚本,也是可以pull代码。

脚本如下:

<code>#!/bin/bash

WEB_PATH='/var/www/niucunhui.io/sql-optimize-referance/'
WEB_USER='www'
WEB_USERGROUP='www'

echo "Start deployment"
cd $WEB_PATH
echo "pulling source code..."
git reset --hard origin/master
git clean -f
git pull
git checkout master
echo "changing permissions..."
chown -R $WEB_USER:$WEB_USERGROUP $WEB_PATH
echo "Finished."
</code>
登录后复制
登录后复制

单独写一个PHP程序 exec()命令也是可以执行的。

请问,还有可能是那里的问题?
服务器版本 CentOS 6.5
PHP版本 5.6.15

https://zhuzhenyu.org/2016/01/03/php-github-php/

git命令需要写全路径

相关标签:
php
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板