У меня есть простой скрипт на 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, установленный на сервере. Любая помощь очень ценится.
Сначала необходимо cd
перейти в правильный каталог. Скрипты, запускаемые веб-сервером, обычно запускаются в корне документа (/var/www
). Кроме того, каталог должен быть доступен для записи для веб-сервера (пользователь www-data
).