web-dev-qa-db-ja.com

gitweb / Apache2のセットアップ

私は最近、自宅にあるローカルサーバーに書き込むコードの格納を開始しました。

自宅でgitwebインスタンスを起動して、他のチームメイトとのコミットを確認し、進捗を追跡したいと思っていました。

サーバーチュートリアルをオンラインで試してみましたが、うまくいきません。 example.com/gitでgitwebにアクセスしたい

コードを/code/gitに配置したい

助けていただければ幸いです!私は自分が何をしているのかはっきりとわからないので、可能な限り明確にしてください。私はたくさんの記事を読みました。

お願いします。

10
myusuf3

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
6
aatdark

ここに、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

この後、gitwebhttps://localhost/gitweb/で利用可能になります(たとえば、https://localhost/gitweb/?p=testrepo.git;a=summary);そして、あなたは(自己署名SSL証明書の場合に)クローンを作成できるはずです:

GIT_SSL_NO_VERIFY=1 git clone https://myuser@localhost/git/testrepo.git
0
sdbbs