Есть ли способ сделать вывод из скрипта bash видимым в браузере?

Я сделал скрипт для обновления SVN для программистов. Скрипт отлично работает от bash. Программисты хотят запустить его из браузера (через сайт администратора).

Сценарий очень прост (его единственный пример не совсем то же самое)


#!/bin/bash
echo "Start update..."

cd /dir/with/site

/usr/bin/svn update
echo "Update ended."

В браузере скрипт bash запускается через php файл примерно так:


echo system('/updatesvnscript.sh');

После выполнения этого в bash я вижу все выходные данные из приложений echos и svn, скрипт хорошо работает в bash.

Запуск скрипта в браузере через php дает мне вывод только из echos, например Start update... Update ended., но нет вывода из SVN. Проблема в том, что скрипт также не обновляет мой сайт, когда я делаю обновление через браузер, поэтому мне нужно выяснить, в чем проблема.

Поэтому я хочу увидеть вывод из svn в браузере, чтобы увидеть, если что-то с svn через браузер не работает.

Скрипт Bash имеет надлежащие права для его запуска через браузер и имеет право изменять (обновлять) файл в каталоге сайта.

2 ответа

Решение

Переключитесь на идентификатор пользователя, под которым работает ваш веб-сервер /php, а затем запустите вручную,

cd /dir/with/site
/usr/bin/svn update

и посмотрим, что вы получите.

Или изменить

/usr/bin/svn update

в

/usr/bin/svn update 2>&1

который перенаправит сообщения об ошибках на стандартный вывод, который затем должен появиться на вашей веб-странице, чтобы помочь с диагностикой.

Subversion использует stderr для отображения вывода пользователю, поэтому я должен представить, что это исправит это:

echo system('/updatesvnscript.sh 2>&1');

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