Сценарий оболочки не работает на запрос пост / получить

У меня есть простой скрипт на php для извлечения файлов из моего репозитория github

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

Когда я захожу на свой сервер и запускаю этот скрипт следующим образом:

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. Я запустил echo shell_exec('whoami'); и вывел «vivekpradhan». Поэтому я думаю, что веб-пользователь apache имеет доступ к конкретному файлу.

Я на добром сервере, на котором работает CentOS. Как я могу заставить скрипт работать над запросом get / post браузера?

Связано ли это с некоторыми правами доступа к файлам на сервере Linux? У меня уже есть git, установленный на сервере. Любая помощь очень ценится.

1
задан 4 June 2013 в 17:11

1 ответ

Сначала необходимо cd перейти в правильный каталог. Скрипты, запускаемые веб-сервером, обычно запускаются в корне документа (/var/www). Кроме того, каталог должен быть доступен для записи для веб-сервера (пользователь www-data).

0
ответ дан 4 June 2013 в 17:11

Другие вопросы по тегам:

Похожие вопросы: