Apache & SVN в Ubuntu - перехват после фиксации происходит молча, перехват до фиксации "Отказано в доступе"
Последние пару дней я изо всех сил пытался получить почтовые уведомления после фиксации, работающие на моем SVN-сервере (работающем через HTTP с Apache2 в Ubuntu 9.10). Коммиты SVN работают нормально, но по какой-то причине хуки не выполняются должным образом.
Вот параметры конфигурации: - Пользователи получают доступ к репо через HTTP с помощью модуля apache dav_svn (я создал пользователей / пароли через htpasswd в файле dav_svn.passwd).
dav_svn.conf:
<Location /svn/repos>
DAV svn
SVNPath /home/svn/repos
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
</Location>
- Я создал файл перехвата после фиксации, который записывает простое сообщение в файл в корне хранилища:
/ Главная / SVN / хранилищу / Крючки / после совершения:
#!/bin/sh
REPOS="$1"
REV="$2"
/bin/echo 'worked' > ${REPOS}/postcommit.log
Я установил, что весь репозиторий будет принадлежать www-данным (пользователь apache), и назначил 755 разрешений сценарию post-commit
когда я тестирую скрипт post-commit с помощью пользователя www-data в пустой среде, он работает:
sudo -u www-data env - /home/svn/repos/hooks/post-commit /home/svn/repos 7
Но когда я фиксирую на клиентском компьютере, фиксация успешна, но сценарий после фиксации, похоже, не выполняется.
Я также попытался запустить простой скрипт для ловушки перед фиксацией, и я получаю сообщение об ошибке, даже с пустым скриптом перед фиксацией:
"Не удалось выполнить фиксацию (подробности приведены ниже): невозможно создать нулевой стандартный вывод для ловушки '/home/svn/repos/hooks/pre-commit': разрешение отклонено"
Я сделал несколько поисков в Google для этой ошибки, и я предполагаю, что это проблема с пользователем apache (www-data), не имеющим достаточных разрешений, особенно для выполнения / dev / null. Я также читал, что причина, по которой пост-фиксация завершается сбоем, заключается в том, что она не сообщает с помощью stdout.
В любом случае, я также попытался предоставить пользователю apache (www-data) право владения всем хранилищем и отредактировал виртуальный хост apache, чтобы разрешить операции с корнем сервера, и я по-прежнему получаю отказ в разрешении
/etc/apache2/sites-available/primarydomain.conf
<Directory />
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Любые идеи / предложения будут с благодарностью! Спасибо
1 ответ
Итак, после обсуждения этой проблемы с очень полезным системным администратором в лучшем хостинг-провайдере, RailsPlayground, они смогли решить эту проблему, установив разрешения для /dev/null равными
crw-rw-rw- 1 root root 1, 3
и теперь все SVN-хуки работают как положено.