gitweb / apache2のセットアップ


10

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

私は自宅でgitwebインスタンスを開始して、他のチームメイトとのコミットを確認し、進行状況を追跡できるようにしたいと思っていました。

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

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

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

どうぞよろしくお願いいたします。

回答:


6

gitwebの一部:

gitwebパッケージをインストールする必要があります sudo apt-get install gitweb

次に、Apache 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";

次に、Apache Webサーバーをリロードします sudo /etc/init.d/apache2 horse-reload

GITの部分自体:

私はgitosisの使用を強くお勧めしますhttp://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way

REMEMBERあなたがあれば使ってgitosisを使用するライン$projectrootでは/etc/gitweb.confなければなりません

$projectroot = "/home/git/repositories/";

Gitosisの設定方法の詳細については、http: //scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-wayを参照して ください。

完全なジトシス設定の説明は、この回答には長すぎます。

Gitosisについてさらにヘルプが必要な場合は、コメントを投稿してください

Apacheパーミッションの問題を修正するには、次の操作が必要になる場合があります。

adduser www-data git
chgrp -R git /home/git/repositories

gitとgitosisの違いは?
myusuf3 2010年

gitosisは、安全なgitホスティングをセットアップするためのスクリプトです。(sshなどでユーザーを認証します。)構成を含む特別なgitリポジトリを使用して、かなり進んでいます。この構成では、他のgitリポジトリを構成できます
aatdark

それは私にとって興味深いです。答えを変更してgitosisの設定を含めることができますか?
myusuf3 2010年

scie.nti.st/2007/11/14/… は非常に詳細です(自分で使用しました)。1つのステップで問題が発生した場合は、コメントを書き込んでください
aatdark

0

これは私がgitwebUbuntu 14.04で設定したものです-SSLとシステムユーザーの認証を使ってpwauth。デフォルトでgitwebは、を使用します。/etc/gitweb.confこれはのgitプロジェクトを想定してい/var/lib/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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.