私は最近、自宅にあるローカルサーバーに書き込むコードの格納を開始しました。
自宅でgitwebインスタンスを起動して、他のチームメイトとのコミットを確認し、進捗を追跡したいと思っていました。
サーバーチュートリアルをオンラインで試してみましたが、うまくいきません。 example.com/git
でgitwebにアクセスしたい
コードを/code/git
に配置したい
助けていただければ幸いです!私は自分が何をしているのかはっきりとわからないので、可能な限り明確にしてください。私はたくさんの記事を読みました。
お願いします。
gitwebパーツ:
Sudo apt-get install gitweb
でgitwebパッケージをインストールする必要があります
次に、Apache gitweb configファイルを編集する必要があります
$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
を使用してApache Webサーバーをリロードします
GITパート自体:
gitosisの使用を強くお勧めします( http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy- and-secure-way )
を覚えている場合gitosis$projectroot
の/etc/gitweb.conf
行を使用する必要がある場合
$projectroot = "/home/git/repositories/";
http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way でgitosisのセットアップ方法に関する詳細情報を見つけることができます。
gitosisの完全なセットアップの説明は、この回答には長すぎます。
Gitosisでさらにサポートが必要な場合は、コメントをお寄せください
Apacheのアクセス許可の問題を修正するには、次の操作が必要になる場合があります。
adduser www-data git
chgrp -R git /home/git/repositories
ここに、Ubuntu 14.04でgitweb
をセットアップするためにしたことを示します-SSLとpwauth
を使用したシステムユーザーの認証。デフォルトでは、gitweb
は/etc/gitweb.conf
を使用します。これは、/var/lib/git
内のgit
プロジェクトを想定しています。
そこでgit
リポジトリをここに配置しようとしたので、この例では/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
したがって、リポジトリのほかに、このディレクトリの/usr/share/gitweb/gitweb.cgi
もシンボリックリンクする必要があります...
次に、/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