LoginSignup
2
2

More than 5 years have passed since last update.

GitBucket 4.28.0 インストール手順 with PostgreSQL 10 and Tomcat 8 on Fedora 28

Posted at

Fedora 28にGitBucket 4.28.0 をインストールする手順をまとめてみた

はじめに

構築する環境は次の通り

Software Version
Fedora 28
Git (cmd-tool) 2.17.1
SVN (cmd-tool) 1.10.2
PostgreSQL 10.5
OpenJDK 1.8.0.181
Tomcat8 8.5.32
GitBucket 4.28.0
Apache(Web Server) 2.4.34

ロケール設定の確認と設定

PostgreSQLをインストールする前に、Localeの設定を確認します。GitBucketで使いたい言語に合わせて設定しておきます。

# 現在の設定を確認
$ localectl status
   System Locale: LANG=en_US.UTF-8
       VC Keymap: us
      X11 Layout: n/a

# 日本語が設定できるか確認する
$ localectl list-locales | grep ja_JP

# 日本語が無い場合、言語パッケージを追加インストールする
$ dnf list glibc-lang\* | grep ja
glibc-langpack-ja.x86_64                  2.27-32.fc28                 updates
$ dnf install -y glibc-langpack-ja

# 日本語が設定できるか確認する
$ localectl list-locales | grep ja_JP
ja_JP.eucjp
ja_JP.utf8


# 日本語ロケールに設定変更し、反映する
$ localectl set-locale LANG=ja_JP.UTF-8
$ source /etc/locale.conf
$ localectl status
   System Locale: LANG=ja_JP.UTF-8
       VC Keymap: us
      X11 Layout: n/a

タイムゾーンの設定

ロケールと合わせて、タイムゾーンも合わせておきましょう。

# 現在の設定を確認
$ timedatectl
                      Local time: 土 2018-09-08 04:19:25 UTC
                  Universal time: 土 2018-09-08 04:19:25 UTC
                        RTC time: 土 2018-09-08 04:19:25
                       Time zone: Etc/UTC (UTC, +0000)
       System clock synchronized: no
systemd-timesyncd.service active: yes
                 RTC in local TZ: no


# 東京時間に設定
$ timedatectl set-timezone Asia/Tokyo

# も一度確認
$ timedatectl
                      Local time: 土 2018-09-08 13:20:12 JST
                  Universal time: 土 2018-09-08 04:20:12 UTC
                        RTC time: 土 2018-09-08 04:20:12
                       Time zone: Asia/Tokyo (JST, +0900)
       System clock synchronized: no
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

Gitコマンドのインストール

GitBucketはGitコマンドツールが無くても動作しますが、バックアップやサーバー内での処理など、あると便利です。
(後から入れても良いです。)

# git-svnをインストールする
$ dnf install -y git-svn

$ git svn --version
git-svn version 2.17.1 (svn 1.10.2)

PostgreSQL のインストール

ここでは、pgdgのリポジトリを追加してインストールしていますが、標準のUpdatesリポジトリからでもインストールできます。

# リポジトリの追加
$ dnf install -y https://download.postgresql.org/pub/repos/yum/10/fedora/fedora-28-x86_64/pgdg-fedora10-10-4.noarch.rpm

# パッケージをインストール
$ dnf install -y postgresql10-server

# 初期化
$ /usr/pgsql-10/bin/postgresql-10-setup initdb

# 認証方式をパスワード認証(MD5)に設定
$ sed -i \
    -e 's@^\(host *all *all *127.0.0.1\/32 *\).*@\1md5@' \
    -e 's@^\(host *all *all *::1\/128 *\).*@\1md5@' \
    /var/lib/pgsql/10/data/pg_hba.conf

# サービス自動起動を設定
$ systemctl enable postgresql-10
$ systemctl start postgresql-10

# GitBucket用のユーザーを追加
$ sudo -u postgres LANG=C createuser --createdb --encrypted --pwprompt gitbucket
Enter password for new role:
Enter it again:

# 必要に応じて権限追加
$ sudo -u postgres LANG=C psql -c "grant gitbucket to postgres;"
GRANT ROLE

# GitBucket用のDBを作成
$ sudo -u postgres sh -c 'createdb --encoding=UTF-8 --owner=gitbucket gitbucket'


# 意図する文字コードで作成できているか念のため確認
$ sudo -u postgres psql
psql (10.5)
Type "help" for help.

postgres=# \l
                                  List of databases
   Name    |   Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+-----------+----------+-------------+-------------+-----------------------
 gitbucket | gitbucket | UTF8     | ja_JP.UTF-8 | ja_JP.UTF-8 |
 postgres  | postgres  | UTF8     | ja_JP.UTF-8 | ja_JP.UTF-8 |
 template0 | postgres  | UTF8     | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres          +
           |           |          |             |             | postgres=CTc/postgres
 template1 | postgres  | UTF8     | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres          +
           |           |          |             |             | postgres=CTc/postgres
(4 rows)

postgres=# \q

JDKのインストール

$ dnf install -y java-1.8.0-openjdk-devel

Tomcatのインストール

# tomcatユーザーの作成
$ dnf install -y tomcat-admin-webapps

# サービス自動起動を設定
$ systemctl enable tomcat
$ systemctl start tomcat

GitBucketのインストール

GitBucketのホームディレクトリを/var/gitbucketとしてインストールします。
プラグインはお好みで。
https://plugins.gitbucket-community.org/ で提供されるプラグインについては、GitBucketの[System Administration] からプラグイン・リポジトリを参照するように設定すれば取得できる。

# Tomcatを停止
$ systemctl stop tomcat

# GitBucketをダウンロード
$ cd /var/lib/tomcat/webapps
$ curl -OL https://github.com/gitbucket/gitbucket/releases/download/4.28.0/gitbucket.war

# プラグインをダウンロード
$ mkdir -p /var/gitbucket/plugins
$ cd /var/gitbucket/plugins/
$ curl -OL https://github.com/mrkm4ntr/gitbucket-network-plugin/releases/download/1.6.1/gitbucket-network-plugin_2.12-1.6.1.jar
$ curl -OL https://github.com/YoshinoriN/gitbucket-monitoring-plugin/releases/download/v3.1.0/gitbucket-monitorting-plugin_2.12-3.1.0.jar
$ curl -OL https://github.com/YoshinoriN/gitbucket-application-logs-plugin/releases/download/v1.0.0/gitbucket-application-logs-plugin_2.12-1.0.0.jar

# 権限変更
$ chown -R tomcat. /var/gitbucket/

# Tomcat設定ファイルに GITBUCKET_HOME の設定を追加
$ echo GITBUCKET_HOME=/var/gitbucket >> /etc/tomcat/tomcat.conf

# Tomcatを起動
$ systemctl start tomcat

# warファイルが展開されたことを確認
$ ll /var/lib/tomcat/webapps

# GitBucketの設定ファイルが生成されていることを確認
$ ll /var/gitbucket/
total 168
-rw-r--r--. 1 tomcat tomcat 163840  9月  8 14:01 data.mv.db
-rw-r--r--. 1 tomcat tomcat    205  9月  8 14:00 database.conf
drwxr-xr-x. 3 tomcat tomcat   4096  9月  8 14:00 plugins

# サービスの応答を確認
$ curl http://localhost:8080/gitbucket/

Apache(httpd)のインストール

# httpdインストール
$ dnf install -y httpd

# AJPポートへのプロキシ設定を追加
$ echo "ProxyPass /gitbucket ajp://localhost:8009/gitbucket" >> /etc/httpd/conf.d/httpd-proxy.conf

$ /usr/sbin/setsebool httpd_can_network_connect 1

# httpdの起動
$ systemctl enable httpd
$ systemctl start httpd

# サービスの応答を確認
$ curl http://localhost:80/
$ curl http://localhost:80/gitbucket/

SELinuxが原因でApacheとTomcat間が接続できない場合

Tomcatの8080ポートへのリクエストは返ってくるのに、Apacheの80番ポートで503エラーが発生する場合、SELinuxが原因でmod_proxyがエラーを起こしていることがあります。

/var/log/httpd/error_logファイルの中を参照し、"[proxy:error] ... Permission denied: ..."が記録されているのであれば、SELinuxそのものを無効にしてしまうか、次のコマンドでポリシーを書き換えてみます。

# 試しにブーリアン値を変更する
$ /usr/sbin/setsebool httpd_can_network_connect 1

# 上手くいくようであれば、再起動時も設定が保持されるように設定する
$ /usr/sbin/setsebool -P httpd_can_network_connect 1

接続先DBをPostgreSQLへ変更し、Tomcatを再起動

$ vi /var/gitbucket/database.conf

/var/gitbucket/database.conf

database.conf
db {
  url = "jdbc:postgresql://localhost/gitbucket"
  user = "gitbucket"
  password = "gitbucket"
#  url = "jdbc:h2:${DatabaseHome};MVCC=true"
#  user = "sa"
#  password = "sa"
#  connectionTimeout = 30000
#  idleTimeout = 600000
#  maxLifetime = 1800000
#  minimumIdle = 10
#  maximumPoolSize = 10
}

# Tomcat再起動
$ systemctl restart tomcat

ブラウザからアクセスし、無事表示されれば完了です。

お疲れ様でした。;-P

まとめ

標準のUpdatesリポジトリで比較的最新版が提供されているので、CentOS7で最新版を手動インストールすることを考えると、Fedora28の方がパッケージでインストールできる分楽だと思います。

2
2
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
2
2