Shell 脚本现在可处理 post/get 请求

Shell 脚本现在可处理 post/get 请求

我有一个简单的 php 脚本来从我的 github 存储库中获取文件

<?php
  echo shell_exec('git pull');
?>

当我 ssh 进入我的服务器并运行该脚本时,如下所示:

php github.php

我看到了这样的输出,文件确实已更新

remote: Counting objects: 5, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 3 (delta 1)
Unpacking objects: 100% (3/3), done.
From https://github.com/vivek1729/Test
 bbe5690..57169ec  master     -> origin/master
Content-type: text/html

Updating bbe5690..57169ec
Fast-forward
 index.html |    2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

但是当我从浏览器运行此脚本时,我看不到任何输出,并且没有发生 git pull 请求。github.php 的权限是默认的,如下所示:

rw-r--r-- 1 vivekpradhan inetuser  882 Jun  3 09:26 github.php

我还尝试将文件所有权更改为 apache 用户。为了找出 apache 的 Web 用户的名称。我运行后echo shell_exec('whoami');,输出结果为“vivekpradhan”。因此我认为 apache Web 用户可以访问该特定文件。

我在运行 CentOS 的 godaddy 服务器上。如何让脚本在浏览器 get/post 请求上运行?

这与 Linux 服务器上的某些文件权限有关吗?我已经在服务器上安装了 git。任何帮助都将不胜感激。

答案1

首先,您需要cd转到正确的目录。Web 服务器运行的脚本通常在文档根目录 ( /var/www) 中运行。此外,该目录对于 Web 服务器 (用户www-data) 必须是可写的。

相关内容