Apache + pukiwiki と Tomcat + GitBucket をポート80番で共存させる
Linuxデスクトップ環境で、ゆるく wiki と git を運用したい。というわけで、 localhost に pukiwiki と GitBucket をインストールして起動してみる。
方針として、ゆるく運用&構築したいので、なるべく手軽にインストールして、デフォルト設定に近い状態で使う。
環境は Linux Mint 19 Tera の Mate で。それでは行ってみよう。
Apache + pukiwiki
インストールするパッケージ
必要なパッケージのインストールは Synaptic で行う。 GUI で楽したい。下記のパッケージをインストール指定して適用する。
- Apache2
- PHP
インストールが終わったら http://localhost がすでに動いている。アクセスして動作を確認。
設定ファイル確認
主な設定があるファイルは /etc/apache2/apache2.conf
にある。今回はこれは特にいじらないが、ざっくり見ておく。
また /etc/apache2/envvars
を見て APACHE_RUN_USER
と APACHE_RUN_GROUP
が何になっているかを確認しておく。Linux Mint は元々は Ubuntu で Debian 系なので、これは 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番で Apache と Tomcat を共存させる
さて、ここからが本番。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/
動作確認
sudo systemctl restart apache2 tomcat8
http://localhost/gitbucket/ にアクセスしてみる。アクセスできるならOK。
もちろん、既存の http://localhost/pukiwiki/ の方へも問題なくアクセスできることも確認しておく。
感想
apache も tomcat もちゃんと使うのは初めてだったため、とても大変だった。 所有権に関するトラブルでだいぶ悩んだんだけど、検索する限りよくあるトラブルらしいので、今後とも気をつけていきたい。
それはそれとして、 Linux Mint は Linux デスクトップ環境としてかなり使いやすく感じた。元が Ubuntu でさらにその元は Debian なので、情報が検索してヒットしやすいし、様々なツールが既に用意されている。強力なバックアップツールまでついているので、ゆるく運用するにはもってこい。
というわけで、しばらくは Linux Mint を使ってみようと思った。