我创建了一个php文件,使用以下代码获取github上托管的存储库中的任何更改:
<?php
`git pull`;
?>
我在我的github设置中将这个php脚本的URL(在我的服务器上托管)作为服务挂钩url。所以每当我把东西推到我的github存储库时,它应该向这个php文件发出一个post请求。然而,这似乎不起作用。
github帮助页面说他们向有关网址发送了一个帖子请求并附带了一些paylod。那么脚本是如何执行的?
在ssh进入我的网站后,当我从bash提示符中git pull
时,它会提取所有更改。
此脚本的文件权限当前设置为755。
我需要对php作为shell脚本执行此文件进行哪些更改?
修改 - 我也尝试更改相应文件夹的所有权,如下所示:
chown -R apache:apache Test
因此,当对url发出post请求时,脚本将作为我猜的www-data用户执行,因此脚本可以执行。但是当我尝试这样说时,我收到了一个错误:
chown: `apache:apache': invalid group
答案 0 :(得分:0)
尝试PHP exec()函数
string exec ( string $command [, array &$output [, int &$return_var ]] )
命令 =将执行的命令
输出 =如果输出参数存在,那么指定的数组将被命令的每一行输出填充。尾随空格(例如\ n)不包含在此数组中。请注意,如果数组已包含某些元素,则exec()将附加到数组的末尾。如果您不希望函数附加元素,请在将数组传递给exec()之前调用数组上的unset()。
return_var =如果return_var参数与输出参数一起出现,则执行命令的返回状态将写入此变量。