GitLab を Apache2 + Passenger で動かしてみる
前回インストールした GitLab を Apache + Passenger で動作するように設定してみます。
httpd、httpd-devel は既にインストール済みのものとします。
2013.08.16 追記
新しいバージョンについて記事を書いています。
こちらも参照してください。
GitLab 5.4.0 を CentOS 6.4 にインストールする
Passenger のインストール
gem から passenger をインストール。
# gem install passenger --no-rdoc --no-ri
gem が無事インストールされたら以下を実行し Apache モジュールをインストールします。
# passenger-install-apache2-module
ここでビルドに必要なヘッダファイルなどが足りなければ表示されるので、一旦インストールしてから再度 passenger-install-apache2-module を実行します。
インストールが完了すると、以下のように Apache 用の設定が表示されます。
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.11/ext/apache2/mod_passenger.so PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.11 PassengerRuby /usr/local/bin/ruby
この内容を Apache の httpd.conf に記述します。
ここでは /etc/httpd/conf.d/passenger.conf という設定ファイルを作成し、上記内容を記述しました。
# vi /etc/httpd/conf.d/passenger.conf
以上で Passenger モジュールのインストールは完了です。
Apache 設定
続いて Apache から GitLab を見られるようにするための設定を行います。
まずは Apache実行ユーザ(ここでは apache とします)が /home/gitlabhq にアクセスできるよう、 gitlabhq グループに追加します。
# usermod -G gitlabhq apache
次に /home/gitlabhq にグループからのアクセスを許可するようパーミッションを設定します。
# chmod g+rX /home/gitlabhq
GitLab 用の VirtualHost 定義ファイルを作成します。
ここでは IP ベースの VirtualHost としましたが、名前ベースで設定したい場合は、/etc/httpd/conf/httpd.conf 内の NameVirtualHost の設定も行って下さい。
# vim /etc/httpd/conf.d/gitlab.conf
以下のような内容を記述します。
<VirtualHost 192.0.2.0:80> ServerName 192.0.2.0 DocumentRoot /home/gitlabhq/gitlabhq/public </VirtualHost>
完了したら設定ファイルの文法チェックを実施し、問題なければ Apache を再起動します。
# apachectl configtest Syntax OK # service httpd restart
以上で Apache + Passenger で GitLab が実行できるようになりました。
上記で上手く表示されない場合、home ディレクトリのパーミッションや SELinux の設定を確認してみてください。
SELinux の設定によっては home ディレクトリ配下のディレクトリを Apapche の DocumentRoot として指定できない場合があります。