弊社では、開発用にGitLabを使用しています。
そのGitLabですが、通常は、Nginxというサーバで稼働するもので、Apacheでは動きません。
弊社では開発はApacheサーバで行っているので、同じApache上でGitLabを動かせないかと思い、調べながらApacheで動かせる事ができました。
恐らく実装方法がいくつかあって作業に手間取ったところがあるので、私がやったことをまとめたいと思います。

前提

最初は、AWSや、自社サーバを立てたりして運用していましたが、コストや運用のしやすさなどの面から、さくらインターネットのVPSサーバが現状では最適だと判断したので、CentOS 7で現在Apache 2.4.6を使って運用しているさくらのVPSサーバに、GitLabをインストールすることにしました。
さくらのVPSサーバでは、Virtual hostで複数のコンテンツを運用しているのですが、
今回は、
https://git.ibis.studio/gitlab/
のサブディレクトリで運用したいと思います。

前述しましたが、GitLabではデフォルトではnginxを使うのですが、今回ではnginxをOffにして、Apacheから動かすようにします。

GitLab本体のインストール

# curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
# EXTERNAL_URL="https://git.ibis.studio/gitlab" yum install -y gitlab-ce

GitLab configファイルの編集

/etc/GitLab/gitlab.rb ファイルを編集

編集前に下記のコマンドを入力

# gitlab-ctl stop unicorn
# gitlab-ctl stop sidekiq

gitlab.rb ファイルの編集

external_url 'http://git.ibis.studio/gitlab/'
gitlab_rails['time_zone'] = 'Asia/Tokyo'

gitlab_workhorse['listen_network'] = "tcp"
gitlab_workhorse['listen_umask'] = 000
gitlab_workhorse['listen_addr'] = "127.0.0.1:8181"
nginx['enable'] = false

編集し終えたら、GitLabの再構築・再起動を行います。

# gitlab-ctl reconfigure
# gitlab-ctl restart

 

Apacheの設定

/etc/httpd/conf.d/gitlab.conf ファイルを編集

<Location /gitlab>
#apache2.4.x
Require all granted
ProxyPassReverse http://127.0.0.1:8181
ProxyPassReverse https://git.ibis.studio/gitlab/

RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_URI} ^/uploads/.*
RewriteRule .* http://127.0.0.1:8181%{REQUEST_URI} [P,QSA,NE]
</Location>

書き終えたら、Apacheの再起動をかけます。

# service httpd restart



これで、gitlabの設定が完了しました。