東日本橋の制作・開発会社 プレスマンのスタッフブログ

PRESSMAN*Tech

Tech & Tips

http上でgitをapacheユーザー以外で使いたい

gitを使うならssh経由のほうが速いし、設定も簡単ですが、例えば22番ポートが使えないとか、色々な理由でhttp経由で使用したい時もあります。そんな時に以下のような感じでgit-http-backendを使用してちょいちょいっと設定すれば使えるようになります。ちなみにこれ以下のapacheの設定は全ての環境で同じなわけではないのと、セキュリティについては考慮していません。実際はBasic認証をかけるなりしてください。また、Gitoliteは使わない設定です。

 

<VirtualHost xxx.xxx.xxx.xxx:443>
    DocumentRoot "/var/www/git"
    ServerName git.xxx.jp
    SetEnv GIT_PROJECT_ROOT /var/www/git
    SetEnv GIT_HTTP_EXPORT_ALL
    ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/
<VirtualHost>

ただ、これだとapacheユーザーで動いてしまいます。http経由のみで使うならいいのですが、sshでも使用していたりすると違うユーザーで同じリポジトリを扱うことになってしまったりしてどうも具合がよくありません。
そこで、suexecを使用してgitユーザーとして動かせば色々と都合がいいのですが、少しだけやらないといけないことがあります。

<VirtualHost xxx.xxx.xxx.xxx:443>
    DocumentRoot "/var/www/git"
    ServerName git.xxx.jp
    SuexecUserGroup git git
    ScriptAlias /git/ /var/www/git/git-http-backend/
<VirtualHost>

として、/var/www/git/git-httpd-backendを以下のように作成して、所有者をgit、実行権限をつけてください。

#!/bin/bash
export GIT_PROJECT_ROOT=/var/www/git
export GIT_HTTP_EXPORT_ALL=true
/usr/libexec/git-core/git-http-backend

当然、リポジトリの所有者はgitユーザーにしてください。以上で設定終了です。
あと、TortoiseGitは便利だけど遅いですね・・・・。

この記事をシェアする:
◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

私たちと一緒に働きませんか?

「http上でgitをapacheユーザー以外で使いたい」はいかがでしたか?
株式会社プレスマンでは、 WordPressが大好きな方、仕事を通してさらにスキルを磨きたい方を募集しています。 まずは募集職種をご覧の上、お気軽にお問い合わせください。 あなたとお会いできるのを楽しみにしています。

採用情報を見る

-Tech & Tips

Copyright© PRESSMAN*Tech , 2020 All Rights Reserved Powered by STINGER.