Вот полная история: Чтобы упростить управление, просмотр и отслеживание командного проекта, мне пришлось создать проект, чтобы настроить полный репозиторий для централизации всех наших различных проектов.
Для этого я планировал поставить выделенный (ВМ) сервер Debian:
Все более или менее настроено и функционально, но Gitlist продолжает доставлять мне некоторые трудности, и даже если я нашел некоторые ответы, ни один из них до сих пор не работал, поэтому я здесь сейчас.
Теперь подробности проблемы:
мои репозитории git находятся в / home / git / repositories / (установлен с помощью chmod 744 для Gitlist для доступа к нему)
Я могу инициировать (голые) проекты, нажимать и извлекать из них и т. Д., Для этой части все в порядке
Nginx настроен на обслуживание содержимого / var / www / html /, а Gitlist находится в каталоге / var / www / html / depot /
Gitlist config.ini имеет следующее содержимое:
[git]
client = '/usr/bin/git' ; Your git executable path
default_branch = 'master' ; Default branch when HEAD is detached
repositories[] = '/home/git/repositories' ; Path to your repositories
; If you wish to add more repositories, just add a new line
; WINDOWS USERS
;client = '"C:\Program Files (x86)\Git\bin\git.exe"' ; Your git executable path
;repositories[] = 'C:\Path\to\Repos\' ; Path to your repositories
; You can hide repositories from GitList, just copy this for each repository you want to hide
; hidden[] = '/home/git/repositories/BetaTest'
[app]
debug = false
cache = true
theme = "default"
; If you need to specify custom filetypes for certain extensions, do this here
[filetypes]
; extension = type
; dist = xml
; If you need to set file types as binary or not, do this here
[binary_filetypes]
; extension = true
; svh = false
; map = true
; set the timezone
[date]
timezone = UTC
format = 'd/m/Y H:i:s'
И здесь тоже все в порядке, когда я иду в http: // vm / депо / Я вижу список всех проектов в репозитории, но когда я хочу просмотреть содержимое одного, я всегда получаю 404, я предполагаю, что это часть маршрутизации URL-адресов, предоставляемой фреймворком Silex, который используется в Gitlist, который не Он хорошо работает с Nginx, но я не могу понять, как заставить его работать.
Наконец, вот мой / etc / nginx / sites-enabled / default, который, как я полагаю, виноват
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.php;
server_name _;
location / {
try_files $uri $uri/ @gitlist =404;
}
location ~ \.php$ {
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
include /etc/nginx/fastcgi_params;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
add_header Vary "Accept-Encoding";
expires max;
try_files $uri @gitlist;
tcp_nodelay off;
tcp_nopush on;
}
location @gitlist {
rewrite ^/.*$ /depot/index.php;
}
}
У меня есть одно решение из самого проекта Gitlist Вот, но, похоже, я не могу настроить его правильно для своего случая, я всегда получаю 404, когда пытаюсь просмотреть содержимое проекта.
Какие-либо предложения? заранее спасибо
Я нашел туториал, который является точной конфигурацией Nginx, которую я нашел:
https://github.com/patrikx3/gitlist/blob/master/artifacts/gitlist.patrikx3.com.conf
Он даже включает git-http-backend.
Я использую ту же конфигурацию на моем сервере, если вы проверяете @
https://gitlist.patrikx3.com
Ubuntu 16.04
Структура /var/www/html/gitlist/...
Он работает с этой конфигурацией:
server {
server_name localhost;
root /var/www/html;
index index.php;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ \.php$ {
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include snippets/fastcgi-php.conf;
fastcgi_pass 127.0.0.1:9000;
include fastcgi.conf;
}
location / {
try_files $uri @gitlist;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
add_header Vary "Accept-Encoding";
expires max;
try_files $uri @gitlist;
tcp_nodelay off;
tcp_nopush on;
}
location @gitlist {
rewrite ^/gitlist/.*$ /gitlist/index.php;
}
}