imadedede のブログ

今出川潤の出張所。

Apache + pukiwiki と Tomcat + GitBucket をポート80番で共存させる

Linuxデスクトップ環境で、ゆるく wiki と git を運用したい。というわけで、 localhostpukiwiki と GitBucket をインストールして起動してみる。

方針として、ゆるく運用&構築したいので、なるべく手軽にインストールして、デフォルト設定に近い状態で使う。

環境は Linux Mint 19 Tera の Mate で。それでは行ってみよう。

Apache + pukiwiki

まず Apache による wiki から設定していく。

インストールするパッケージ

必要なパッケージのインストールは Synaptic で行う。 GUI で楽したい。下記のパッケージをインストール指定して適用する。

インストールが終わったら http://localhost がすでに動いている。アクセスして動作を確認。

設定ファイル確認

主な設定があるファイルは /etc/apache2/apache2.conf にある。今回はこれは特にいじらないが、ざっくり見ておく。

また /etc/apache2/envvars を見て APACHE_RUN_USERAPACHE_RUN_GROUP が何になっているかを確認しておく。Linux Mint は元々は UbuntuDebian 系なので、これは www-data になっている。

念の為、

cat /etc/group

しておいて、 www-data ができていることを確認しておく。

pukiwiki のダウンロードと所有権の変更

pukiwiki をここからダウンロード。現在の最新版は1.5.1。 pukiwiki.php.ini の変更などインストールに関することは該当ページを参照。動作確認するだけならいじる必要はない。

解凍後にできたフォルダの名前を pukiwiki に変更。そして pukiwiki フォルダを Apache のデータ用フォルダにコピーする

sudo mv pukiwiki /var/www/html/

そして /var/www 以下の所有権の変更。

sudo chown -R www-data.www-data /var/www

動作確認

sudo systemctl restart apache2

apache を再起動。 http://localhost/pukiwiki/ にアクセスして、 pukiwiki が動いていることを確認する。

Tomcat + GitBucket

Apache の次は、 Tomcat で Git サーバを構築する。

インストールするパッケージ

Synaptic で以下のパッケージをインストール指定して適用。

  • default-jre
  • Tomcat8
  • Tomcat8-admin

Tomcat Web アプリケーションマネージャも一緒に入れる。なくてもいいけど、ゆるく運用するにはこういうの欲しい。

設定ファイル変更

/etc/tomcat8/tomcat.users.xml を編集する。コメントアウトを有効化して、管理人ロールとアカウントを追加。

 <role rolename="admin-gui"/>
 <user username="tomcat" password="password" roles="tomcat,admin-gui"/>

ポート設定を変更。 /etc/tomcat8/server.xml を編集して、デフォルトのポートを 8080 から 8081 に変更。

    <Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

これは必要ないけど、8080のままだと他のアプリのデフォルト設定とこの先ガンガンぶつかっていってしまうため。

GitBucket のダウンロードと所有権の変更

GitBucket の Release から gitgucket.war のダウンロード。http://localhost:8081/manager/ にアクセスしてWebアプリケーションマネージャから gitgucket.war ファイルをアップロード。そして現段階では起動しないことを確認しておく。

念の為、ウェブAPPマネージャからアップロードされた先のフォルダを見ておく。

ls -al /var/lib/tomcat8/webapps

gitbucket.war がちゃんとコピーできていて、かつ所有者が tomcat8 になっていることを確認する。

次に GitBucket のデータ用フォルダを作って、所有権をtomcat8に明け渡す。

sudo mkdir /var/lib/tomcat8/.gitbucket
sudo chown tomcat8:tomcat8 /var/lib/tomcat8/.gitbucket 

こうしてからだとWebアプリケーションマネージャでGitBucketを起動できる。

GitBucketがどこをデータ用フォルダとするかは環境によって異なるらしい。Ubuntu 16.04なら /usr/share/tomcat8/.gitbucketからしい(こちらのブログを参照)。 Webアプリケーションマネージャから一度起動に失敗しておくと、 /var/log/tomcat8/localhost.*.log にエラーログが残る。そのエラーログを読めば、どこにフォルダを作ろうとして失敗したのかがわかる。わかったら、あとはそこに作って所有権を渡せばいい。

まあ普通はいちいち失敗させて確認するより、予め環境変数によってフォルダを設定すると思う(こちらのブログ参照)。今回はゆるく運用ということでこのやり方はしないけど、ちゃんと運用するならちゃんとやろう。

動作確認

sudo systemctl restart tomcat8

tomcat を再起動。 http://localhost:8081/gitbucket/ にアクセスしてみる。動作していたらOK。

ポート80番で ApacheTomcat を共存させる

さて、ここからが本番。Tomcat から GitBucket を起動したものの、このままだといちいちURL にポート番号をいれる必要がある。これは面倒。なので、http のデフォルトポート80番からアクセスできるようにする。

方針としては、特定の URL にアクセスしたときのみ、Apache から Tomcat に切り替えてアクセスする。

Tomcat 側の設定

/etc/tomcat8/server.xml を編集する。AJP に関する部分がコメントアウトされているので、これを外して有効化する。

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

Apache 側の設定

いくつかのモジュールを有効化する。

sudo a2enmod proxy proxy_http proxy_ajp

有効化したら、 /etc/apache2/mods-enabled/proxy.conf にファイルができているので、アクセスして編集する。 <IfModule> タグの内側に以下のように記述。

ProxyPass /gitbucket/ ajp://localhost:8009/gitbucket/
ProxyPassReverse /gitbucket/ ajp://localhost:8009/gitbucket/

動作確認

apachetomcat の再起動を行う。

sudo systemctl restart apache2 tomcat8

http://localhost/gitbucket/ にアクセスしてみる。アクセスできるならOK。

もちろん、既存の http://localhost/pukiwiki/ の方へも問題なくアクセスできることも確認しておく。

感想

apachetomcat もちゃんと使うのは初めてだったため、とても大変だった。 所有権に関するトラブルでだいぶ悩んだんだけど、検索する限りよくあるトラブルらしいので、今後とも気をつけていきたい。

それはそれとして、 Linux MintLinux デスクトップ環境としてかなり使いやすく感じた。元が Ubuntu でさらにその元は Debian なので、情報が検索してヒットしやすいし、様々なツールが既に用意されている。強力なバックアップツールまでついているので、ゆるく運用するにはもってこい。

というわけで、しばらくは Linux Mint を使ってみようと思った。