3
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GitBucketを導入してhttpd経由でアクセスするよう設定する

Posted at

GitBucketの導入について

Tomcatで動作するオープンソースのGitHubクローン。プライベートなGitHubが欲しいけどGitHubの有料サービスだと都合が悪いときによいのかも。個人的にはマネージドサービス好きじゃないし。
このGitBucketを導入し、httpd経由でアクセスするように設定する。Tomcatとか詳しくないし、慣れているhttpdの方が設定やりやすいので。

設定手順

前提条件

  • GitBucket 4.18.0
  • CentOS 7
  • Tomcat 7
  • httpd 2.4
  • インストール先サーバにはGitBucket以外のWebサービスも稼働させたい
  • 複数のホスト名を付け、GitBucketにはgit.yourhost.yourdomainというホスト名でアクセス出来るようにする
  • インストール先パスのgitbucketが自動的に補完されるようにする
  • HTTPSでもアクセスできるようにする
  • サーバ証明書はLet's Encryptでマルチドメイン証明書を作成して利用するがここは省略

GitBucketのインストール

Tomcatのインストール

GitBucketを動作させるためにTomcatをインストールする。

# yum install -y tomcat
# yum info tomcat
tomcat.noarch                         7.0.76-3.el7_4                   @updates
tomcat-el-2.2-api.noarch              7.0.76-3.el7_4                   @updates
tomcat-jsp-2.2-api.noarch             7.0.76-3.el7_4                   @updates
tomcat-lib.noarch                     7.0.76-3.el7_4                   @updates
tomcat-servlet-3.0-api.noarch         7.0.76-3.el7_4                   @updates

GitBucketパッケージの入手

GitBucketのGitHubリポジトリで最新版のリリースを確認する。gitbucket.warをダウンロードするか、ダウンロードURLをコピーしておく。

# yum install -y wget 

# cd /usr/local/src/
# wget https://github.com/gitbucket/gitbucket/releases/download/4.18.0/gitbucket.war

GitBucketパッケージのデプロイ

Tomcatのwebapp dirにGitBucketのWARファイルをコピーする。

# cd /var/lib/tomcat/webapps/
# cp gitbucket.war /var/lib/tomcat/webapps/

Tomcatを起動するとWARは自動でデプロイされる。SELinuxは後でまとめて設定するためpermissiveモードにしておく。

# setenforce 0

# systemctl start tomcat
# systemctl enable tomcat

WebブラウザでGitBucketのURLにアクセスして動作確認する。インストール先ホスト名がgit.yourhost.yourdomainなら http://git.yourhost.yourdomain:8080/gitbucket/ になる。
GitBucketのログインページが表示されれば成功。Firewalldなどでアクセス出来ない場合はこの動作確認だけアクセスが出来るように変更する。終わったらアクセス出来ないようにして問題ない。

httpdとの連携

httpdをインストールする。HTTPSでアクセスできるようにmod_sslも追加する。

# yum install -y httpd mod_ssl

mod_proxy_ajpが存在することを確認する。

# cat /etc/httpd/conf.modules.d/00-proxy.conf
(snip)
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
(snip)

HTTP用の設定を記述する。

# vi /etc/httpd/conf.d/gitbucket.conf
/etc/httpd/conf.d/gitbucket.conf
NameVirtualHost *:80
<VirtualHost *:80>
  ServerName    git.yourhost.yourdomain
  Redirect      / /gitbucket/
  ProxyPass     /gitbucket/ ajp://localhost:8009/gitbucket/
  <Location />
    # アクセス制限とか
  </Location>
</VirtualHost>
# systemctl start httpd
# systemctl enable httpd

http://git.yourhost.yourdomain にWebブラウザでアクセスできることを確認する(gitbucket/ は自動的に補完される)。

必要に応じてSSLの設定をする。

# vi /etc/httpd/conf.d/ssl.conf
/etc/httpd/conf.d/ssl.conf
(snip)
NameVirtualHost *:443

<VirtualHost _default_:443>
(snip)
</VirtualHost>

<VirtualHost *:443>
  ServerName    git.yourhost.yourdomain
  Redirect      / /gitbucket/
  ProxyPass     /gitbucket/ ajp://localhost:8009/gitbucket/

  <Location />
    # アクセス制限とか
  </Location>

  SSLEngine on
  SSLCertificateFile            /path/to/certs/cert.pem
  SSLCertificateKeyFile         /path/to/certs/privkey.pem
  SSLCertificateChainFile       /path/to/certs/chain.pem
</VirtualHost>

SELinuxへの対応

とりあえずSELinuxをEnforcingに戻す。

# setenforce 1

audit2allowコマンドを使ってSELinux用のルールを作成する。

3
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?