У меня такая ситуация:
На той же машине у меня есть ртутный сервер и веб-сервер. Репозиторий проекта находится в / var / hg / repos / myproyect, а общедоступные файлы для веб-сервера находятся в / usr / share / nginx / www.
Есть ли способ связать (ln) каталог репо с сервером общедоступного пути? когда я делаю
ln /var/hg/repos/myproject/.hg/store/data/ /ush/share/nginx/www/myproject
и я вставил в браузер http://iptoserver.com/myproject ничего не показано
Я заметил, что данные хранятся в .hg с расширением .i
Вы почти наверняка должны настроить hgweb для обслуживания репозитория, а не для сброса необработанных файлов.
В Публикация репозиториев и HGWeb шаг за шагом В вики-статьях это подробно рассматривается, но вот основные моменты:
Создайте файл hgweb.conf (обычно в /usr/local/etc/
или что-то зависящее от виртуального хоста в многопользовательских средах).
[paths]
myproject = /var/hg/repos/myproject
[web]
allow_archive = gz
contact = Some Name <EMail@Example.com>
Скопируйте файл hgweb.cgi из каталога установки в каталог cgi-bin. Скорее всего: cp /usr/share/mercurial/www/hgweb.cgi /var/www/cgi-bin/
(Вы все равно поняли идею).
Настройте nginx для fcgi:
location /hg/ {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_hg;
fastcgi_intercept_errors off;
limit_except GET HEAD {
auth_basic 'Example';
auth_basic_user_file /srv/hg.htpasswd;
}
}
Настройте fcgi include (fastcgi_hg
) для hg:
include fastcgi_params;
fastcgi_split_path_info ^(/hg)(.*)$;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param AUTH_USER $remote_user;
fastcgi_param REMOTE_USER $remote_user;