通过 http 使用 PHP 运行 shell 脚本

通过 http 使用 PHP 运行 shell 脚本

操作系统 - Ubuntu 14.04 好吧,我正在使用 GIT webhook 进行部署。我已将部署密钥添加到 git repo,现在我想在git pull origin master command从本地 repo 发生推送时触发。这是我通过浏览器调用的 test.php 文件。

<?php       
    //echo "THis is a test file on a test repo for testing the deploy functionality using github webhooks!!!!";
    echo exec('whoami');
    echo exec('sh -x /var/www/iq/deploy-test/git.sh');
?>

外壳文件

#!/bin/bash
cd /var/www/proj-dir/deploy-test
git pull origin master

当我使用终端运行此命令时

php test.php我得到了预期的正确结果

 ubuntu From github.com:repo/test
 * branch            master     -> FETCH_HEAD
 Already up-to-date.

ubuntuwhoami和 git pull 输出。

现在问题是,当我http://example.com/test.php在浏览器上调用相同函数时,它显示用户或whoami输出为www-dataapache 用户,但我尝试更新 php 文件的权限以执行并将用户更改为,www-data但没有成功。
我需要做哪些更新才能使文件通过浏览器请求工作?

如果我需要更新 sudoers 文件,应该更新什么?

答案1

我让它工作了。就我而言,我缺少和用户根文件夹中的文件authorized_keys。我在下添加了 .ssh 文件夹。我之前只移动了 ssh 密钥文件,因此我遇到了无法通过 http 连接到 git 存储库的问题。known_hostswww-data/var/www/.ssh

相关内容