Я писал статью на хабре по поводу настройки меркуриал на bitrixenv |
Все действия выполняются в BitrixVM3 которая крутится в AmazonEC2
Если у нас BitrixEnv 3.0 то предварительно необходимо будет поставить меркуриал, в случае с четвертой версией он есть из коробки.
В статье подразумевается что вы работаете от пользователя root.
Добавляем новый хост в DNS сайта
hg.mysite.ru
Ставим дистрибутив Mercurial
yum install mercurial — в оригинальной статье этого пункта нет.
Настраиваем nginx для работы с mercurial
1. Создаём файл /etc/nginx/bx/site_avaliable/hg.conf такого содержания:
server
{
listen 80;
server_name hg.mydomain.com;
client_max_body_size 128M;
location /bitrix
{
proxy_pass
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/hg.pass;
access_log /var/log/nginx/hg.mydomain.com.access.log main;
error_log /var/log/nginx/hg.mydomain.com.error.log info;
}
}
mydomain.com — поменяйте на нужное вам имя домена.
/etc/nginx/hg.pass — файл содержащий имена пользователей и паролей для доступа к репозиторию.
2. Добавляем пользователей имеющих доступ к репозиторию, для этого воспользуемся утилитой htpasswd идущей в комплекте с apache
htpasswd -bc /etc/nginx/hg.pass myuser mypassword
3. Создаём символическую ссылку на файл настроек
ln -s /etc/nginx/bx/site_avaliable/hg.conf /etc/nginx/bx/site_enabled/
4. После добавления пользователей перезапускаем nginx
sudo /etc/init.d/nginx restart
Настройка самого репозитория
Настройки репозитория производятся для виртуального хоста по умолчанию расположенного в /home/bitrix/www/
Если вам нужен репозиторий для другого хоста, используйте свой путь.
1. Переходим в нужный нам каталог
cd /home/bitrix/www
2. создаем репозиторий командой
hg init
после этой команды создастся папка .hg содержащая служебную информацию.
3. переходим в нее
cd .hg
4. Создаем файлы конфигурации репозитория
vi hgrc — лучше не париться с vi, а просто скопировать файлик
с таким содержимым:
[ui]
username = YouName
[web]
allow_push = *
push_ssl = false
contact = YouName
description = YouDecription
allow_archive = gz
st yle = gitweb
В данном файле мы разрешаем всем проталкивать изменения, так как авторизация у нас проходит на уровне nginx.
5. Создадим еще один конфигурационный файл для hg сервера:
vi hgweb.config
[web] //секция параметров веб сервера
allow_push = * //разрешаем всем “поднимать” изменения (контроль доступа идет на уровне прокси)
push_ssl = false //не используем ssl (шифрование идет на уровне прокси)
[paths] //секция “путей”
bitrix=/home/bitrix/www
собственно в секции [paths] описываются ваши репозитории, и пути к ним
в параметрах nginx это описывается как location /bitrix
соответственно добавляя location в nginx и строку в секция [paths] вы можете создать произвольное количество репозиториев.
6. Настраиваем исключения для репозитория. Переходим в корневую папку нашего репозитория:
cd /home/bitrix/www
И создаем файл .hgignore
vi .hgignore
syntax:glob
*.gz
*.tmp*
*.swp
bitrix/activities/bitrix/*
bitrix/admin/*
bitrix/backup/*
bitrix/cache/*
bitrix/components/bitrix/*
bitrix/gadgets/bitrix/*
bitrix/controller_log/*
bitrix/image_uploader/*
bitrix/images/*
bitrix/js/*
bitrix/managed_cache/*
bitrix/stack_cache/*
bitrix/modules/*
bitrix/otp/*
bitrix/sounds
bitrix/template/
bitrix/themes
bitrix/tmp
bitrix/tools
bitrix/wizards/bitrix
bitrix/[^/]*\.php$
upload/*
upload/resize_cache/*
7. всем файлам в папке /home/bitrix/www мы поменяем владельца на пользователя bitrix
chown -R bitrix:bitrix /home/bitrix/www/*
8. Добавим файлы в репозиторий:
sudo -u bitrix hg add
9. Сделаем первый коммит в нашем репозитории:
sudo -u bitrix hg ci -m «Init»
10. Запустим сервер hg командой
sudo -u bitrix hg serve -d --webdir-conf /home/bitrix/www/.hg/hgweb.config --address 127.0.0.1 --port 8000 --encoding utf8
Используется кодировка utf-8 в случае если вы используете другую кодировку вам нужно поменять параметр --encoding
Репозиторий имеет адрес hg.mydomain.com/bitrix, если конечно вы прописали нужное доменное имя в настройках DNS.
-------------------------------------------------------------------------------------------
Исправления
1. Убрал про фаервол
2. Добавил
3. Создаём символическую ссылку на файл настроек ln -s /etc/nginx/bx/site_avaliable/hg.conf /etc/nginx/bx/site_enabled/ |
auth_basic «Restricted»; |
auth_basic "Restricted"; |
proxy_pass 127.0.0.1:8000; |
proxy_pass |