Я сделал скрипт обновления 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 дает мне вывод только из эха, например Start update... Update ended.
, но нет вывода из svn. Проблема в том, что сценарий также не обновляет мой сайт, когда я делаю обновление через браузер, поэтому мне нужно найти, в чем проблема.
Поэтому я хочу увидеть вывод svn в браузере, чтобы узнать, не работает ли что-то с svn через браузер.
Сценарий Bash имеет надлежащие права на выполнение его через браузер и имеет право изменять (обновлять) файл в каталоге сайта.
Переключитесь на идентификатор пользователя, под которым работает ваш веб-сервер / 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');