- PVSM.RU - https://www.pvsm.ru -
Выкладываю данную инструкцию, т.к. самому пришлось искать необходимую информацию по крупинкам. Инструкция рассчитана на людей, имеющих мало опыта в web технологиях и web разработке. Все программные комплексы настроены на выделенном под программистские нужды «сервере» под управлением Windows 7 Pro 32 bit.
Что имеем:
Что хотим получить:
При установке файл C:Program FilesVisualSVN Serverconfhttpd.conf будет автоматически дополнен строками
#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
PHPIniDir "C:PHP"
LoadModule php5_module "C:PHPphp5apache2_2.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
Читал в интернете рекомендации устанавливать PHP вручную из zip архива, но у меня с первого раза не вышло. Просто потому что не нашёл в поставке последней версии php библиотеки php5apache2_2.dll, а php5apache2_4.dll отказывалась загружаться на Apache.
Тут и установкой то сложно назвать. Просто создать директорию C:Program FilesVisualSVN Serverhtdocswebsvn и скопировать в неё содержимое скачанного с официального сайта архива.
На этом этапе уже можно проверить доступность странички WebSVN. Для этого надо зайти на https://yourserver:8443/websvn/index.php
, должна быть отображена страница приветствия с просьбой настроить список репозиториев.
Суть проекта Cygwin — предоставить пользователям Windows распространенные в Unix системах приложения. Некоторые такие приложения необходимы и для WebSVN. На официальном сайте предоставлен довольно понятный инсталлятор. Необходимо установить следующие пакеты:
Устанавливал в C:cygwin, пользуясь упомянутым выше принципом избегания пробелов.
Для удобства доступа к заглавной странице WebSVN добавить следующий код в файл пользовательских настроек Apache C:Program FilesVisualSVN Serverconfhttpd-custom.conf:
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
В соответствии с инструкцией по установке WebSVN, находящейся в файле C:Program FilesVisualSVN Serverhtdocswebsvndocinstall.html, скопировать файл includedistconfig.php в includeconfig.php, и далее изменить его в соответствие с комментариями к параметрам. Мои настройки были следующие:
$config->setSVNCommandPath('C:\Program Files\VisualSVN Server\bin');
$config->setDiffPath('C:\cygwin\bin');
$config->setEnscriptPath('C:\cygwin\bin');
... (все пути ведут в 'C:\cygwin\bin')
$config->setTrustServerCert();
$config->parentPath('D:\SVN\Repositories');
$config->setIgnoreWhitespacesInDiff(true);
$config->setDefaultLanguage('ru');
$config->allowDownload();
$config->setDefaultFolderDlMode('gzip');
$config->useEnscript();
//$config->useGeshi();
$config->setRssEnabled(false);
Сразу оговорюсь, что из-за перехода в Visual SVN версии 2.6.0 на распределенную по репозиториям систему доступа привязать к тем же файлам авторизацию WebSVN не удалось. Пришлось вручную создать общий для репозиториев файл авторизации, не используемый в Visual SVN. На данный момент эта проблема несущественна в силу малого размера команды разработчиков, но буду рад услышать рекомендации по избежанию поддержки файла авторизации вручную. Итак, продолжим:
user1=rw
user2=rw
user3=rw
user4=rw
<Location /websvn/>
SVNListParentPath on
SVNParentPath "D:/SVN/Repositories/"
AuthType Basic
AuthBasicProvider file
AuthName "Please,authenticate in Subversion Repository"
Require valid-user
AuthUserFile "D:/SVN/Repositories/htpasswd"
AuthzSVNGroupsFile "D:/SVN/Repositories/groups.conf"
AuthzSVNAccessFile "D:/SVN/Repositories/authz"
</Location>
Теперь при входе на https://yourserver:8443/websvn/
запрашивается авторизация, используемая в Visual SVN Server, а доступ настраивается в общем для репозиториев файле авторизации.
WebSVN уже полностью функционален, но не хватает лоска. Например, комментарии в исходном коде Delphi 7, написанные на русском, отображаются кракозябрами. При этом сам сайт уже на русском языке. В чём подвох? На сайте WebSVN нашёл обсуждение данной проблемы: http://websvn.tigris.org/ds/viewMessage.do?dsMessageId=2968020&dsForumId=1547
. В кратце: функция php mb_detect_encoding, используемая для определения кодировки файла, просто врёт. Используем костыль, предложенный пользователем yaroslav, для этого в файле C:Program FilesVisualSVN Serverhtdocswebsvnincludecommand.php заменить
return mb_detect_encoding($str.'a', $list);
на
$res = mb_detect_encoding($str.'a',$list);
if ($res !== 'ISO-8859-1')
return $res;
else
return 'CP1251';
Пока проблем с костылем не замечал. Проблема определения кодировки файла подробна раскрыта в посте пользователя m00t [1]: http://habrahabr.ru/post/107945/
. Также там описан рабочий способ определения кодировки, использование которого поможет избежать костылей, и их потенциальных проблем.
В файлах C:Program FilesVisualSVN Serverhtdocswebsvntemplates\index.tmpl можно заменить текст приветствия по умолчанию на свой. Выделяю эту настройку в отдельный пункт, т.к. при использовании русского текста файл необходимо записать в кодировке utf8.
Зайти в администрирование -> плагины -> Subversion Repositories, в каждом репозитории настроить пути (на примере репозитория rep1):
view format: https://yourserver:8443/websvn/filedetails.php?repname=rep1&path=${path}
changeset format: https://yourserver:8443/websvn/revision.php?repname=rep1&location=/&rev=${rev}
file added format: https://yourserver:8443/websvn/filedetails.php?repname=rep1&path=${path}&rev=${rev}
file modified format: https://yourserver:8443/websvn/diff.php?repname=rep1&path=${path}&rev=${rev}&sc=0
file replaced format: https://yourserver:8443/websvn/filedetails.php?repname=rep1&path=${path}&rev=${rev-1}&sc=0
file deleted format: https://yourserver:8443/websvn/filedetails.php?repname=rep1&path=${path}&rev=${rev-1}&sc=0
Автор: groMalog
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/svn/39664
Ссылки в тексте:
[1] m00t: http://habrahabr.ru/users/m00t/
[2] Источник: http://habrahabr.ru/post/188104/
Нажмите здесь для печати.