tech::hexagram

personal note for technical issue.

nginxでgitoliteとgitwebとphp-fpmを同時に動かす

gitwebとphp-fpmで同時にFastCGIを使うため、結構設定にハマったのでメモっておく。

今日は開発環境の構築としてgitoliteとgitwebを導入した際のログを書いていきます。

まず前提として以下のような設定です。
Webサーバ:http://yourdomain.com/
Gitoweb:http://subdomain.yourdomain.com/
ドメイン:お名前.com
VPS:さくらのVPS

サブドメインの設定

http://maji-affili.com/2009/09/com.html

こちらはお名前.com側だけで完結するようです。

3/31追記:以下の内容をSpeekerDeckにまとめました

speakerdeck.com


gitoliteの導入

http://totekan.jp/server/sakura-vps-settings-git-with-gitolite/

基本的にこのとおりに進めていけばできます。
筆者は中途半端に途中からやり直したりして結構ハマってしまいました。

gitwebの導入

gitoliteとgitweb on nginx を連携させたメモ - 絶品ゆどうふのタレ

この中で、nginxの設定項目は以下のように設定しました。

/etc/nginx/conf.d/virtual.confの編集
server {
       listen   *:80;
       server_name subdomain.maindomain.com;

       location / {
           root /var/www/git;
           index gitweb.cgi;
       }

       location ~ gitweb\.cgi$ {
        fastcgi_pass 127.0.0.1:8999;
        fastcgi_index gitweb.cgi;
        include fastcgi_params;
    }
}

まず、server_nameを名前ベースのバーチャルホストで設定するため、subdomain.maindomain.comとします。
また、fastcgi_passですが、こちらは既にphp-fpmで127.0.0.1:9000を割り当ててしまっているため、ポートをずらして設定します。

これに伴い、gitweb.fcgiの設定も以下のようにします。

 sudo -u gitolite /var/lib/gitolite/gitweb.fcgi --fcgi-socket=127.0.0.1:8999 --cgi-bin=/usr/share/gitweb/gitweb.cgi &!

これで完成です!