답변:
gitweb 부분 :
gitweb 패키지를 설치해야합니다. sudo apt-get install gitweb
그런 다음 아파치 gitweb 설정 파일을 편집해야합니다
$EDITOR /etc/apache2/conf.d/gitweb
줄 Alias /gitweb /usr/share/gitweb
을 바꾸다
Alias /git /usr/share/gitweb
열려있는 /etc/gitweb.conf
파일을 :
당신은 라인 $projectroot ".."
을 변경해야
합니다
$projectroot "/code/git"
함유하고 다른 라인 변경 /gitweb
에 /git
예를
$stylesheet = "/gitweb/gitweb.css";
에
$stylesheet = "/git/gitweb.css";
그런 다음 아파치 웹 서버를 다시로드하십시오. sudo /etc/init.d/apache2 horse-reload
GIT 부분 자체 :
나는 gitosis 사용을 강력히 권장합니다 ( http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-cure-way )
기억 당신이 경우 사용 gitosis 선을 $projectroot
에 /etc/gitweb.conf
있어야한다
$projectroot = "/home/git/repositories/";
gitosis 설정 방법에 대한 자세한 내용은 http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-cure-way 에서 확인할 수 있습니다 .
전체 답신 설정을 설명하는 것은이 답변에 너무 오래입니다.
gitosis에 대한 추가 도움이 필요하면 의견을 보내주십시오.
아파치 권한 문제를 해결하려면 다음을 수행해야합니다.
adduser www-data git
chgrp -R git /home/git/repositories
gitweb
SSL을 사용하여 시스템 사용자를 인증하여 Ubuntu 14.04 에서 설정 한 작업은 다음과 같습니다 pwauth
. 기본적으로의 프로젝트를 gitweb
사용 /etc/gitweb.conf
하는를 사용합니다 .git
/var/lib/git
내가 넣어하려고 그래서 git
이 예에서, 그래서 여기에 REPOS을 우리는 변경할 필요가 없습니다 /etc/gitweb.conf
- 내 /var/lib/git
모습을 다음과 같이 :
$ ls -la /var/lib/git/
total 12
drwxrwxrwx 3 root root 4096 Apr 9 16:01 .
drwxr-xr-x 75 root root 4096 Apr 7 17:31 ..
lrwxrwxrwx 1 myuser myuser 28 Apr 9 16:01 gitweb.cgi -> /usr/share/gitweb/gitweb.cgi
drwxrwsr-x 7 myuser www-data 4096 Apr 10 17:50 testrepo.git
따라서 repos 옆 /usr/share/gitweb/gitweb.cgi
에이 디렉토리에서도 symlink가 필요합니다 ...
그런 다음 다음을 다음과 같이 사용할 수 있습니다 /etc/apache2/sites-available/gitw-ssl.conf
.
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName localhost
HeaderName HEADER
DocumentRoot /var/www/html
LogLevel info
ErrorLog ${APACHE_LOG_DIR}/error-gw.log
CustomLog ${APACHE_LOG_DIR}/access-gw.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/my.crt
SSLCertificateKeyFile /etc/apache2/ssl/my.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
<IfModule mod_authnz_external.c>
# old style:
AddExternalAuth pwauth /usr/sbin/pwauth
SetExternalAuthMethod pwauth pipe
# new style:
#DefineExternalAuth pwauth pipe /usr/sbin/pwauth
</IfModule>
# as more specific, /gitweb/static should go first
Alias /gitweb/static /usr/share/gitweb/static
Alias /gitweb /var/lib/git
# gitweb.cgi alias is no dice - symlink is needed:
Alias gitweb.cgi /usr/share/gitweb/gitweb.cgi
<Directory /var/lib/git>
Options +FollowSymlinks +ExecCGI
SSLRequireSSL
AuthType basic
AuthName "Private git repository"
AuthBasicProvider external
AuthExternal pwauth
Require valid-user
AddHandler cgi-script .cgi
DirectoryIndex gitweb.cgi
</Directory>
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/
<Directory "/usr/lib/git-core/">
SetEnv GIT_PROJECT_ROOT /var/lib/git
SetEnv GIT_HTTP_EXPORT_ALL
Options +ExecCGI
SSLRequireSSL
AuthType basic
AuthName "Private git repository"
AuthBasicProvider external
AuthExternal pwauth
Require valid-user
</Directory>
</VirtualHost>
</IfModule>
그리고 마침내 당신은 할 수 있습니다 :
# not sure if also `fcgid auth_digest` are needed:
sudo a2enmod ssl cgi alias env rewrite
sudo a2ensite gitw-ssl.conf
# if not `reload`, use `restart`:
sudo service apache2 reload
그 후에 gitweb
는 https://localhost/gitweb/
(예 :)에서 사용할 수 있어야합니다 https://localhost/gitweb/?p=testrepo.git;a=summary
. 다음을 사용하여 (자체 서명 SSL 인증서의 경우) 복제 할 수 있어야합니다.
GIT_SSL_NO_VERIFY=1 git clone https://myuser@localhost/git/testrepo.git