GitbucketをWindowsServer2016へセットアップした時のメモです。公式のセットアップ方法 「Installation on IIS and Helicontech Zoo」でサーブレットコンテナにJettyを使う方法がが全く上手くかなかったため*1 IIS + Tomcatで環境を構築しています。Windows10でも同様の手順で作業すれば行けると思います。
余談ですが、公式の説明にあった Web Platform Installer が、もうメンテされずに腐ってて、Jetty の更新時刻が2012年3月の上リンク切れしていました。5年前・・・
セットアップ環境
セットアップした環境は以下の通りです。Tomcatだけ9ではなく8を使用しています。また社内ユースで悪用は想定していないのでプロトコルはHTTPです。HTTPS化の手順はここでは説明しません*2。
項目 | 内容 |
---|---|
OS | WindowsServer 2016 *3 |
IIS | 10.0 |
Java | Java8 update131 |
サーブレットコンテナ | Tomcat 8.5.15 |
コネクタ | HttpPlatformHandler1.2 |
GitBucket | 4.13.0 |
HttpPlatformHandlerのインストール
Javaはデフォルトの位置へインストール済み、IIS10.0も有効になっている前提でセットアップを開始したいと思います。先ずはHttpPlatformHandlerをここからダウンロードしてインストールします。少しわかりにくいですが、以下の画像の赤枠をクリックします。
Accept にチェックを入れて [Install] を選択します。
一瞬でインストールが完了しますが、このソフトはスタートメニューやデスクトップににショートカットが登録されたりはしません。手ごたえがありませんが、[Finish] 押したらそれで完了です。
Tomcatのインストール
公式ページからTomcat8をダウンロードしてきます。Windows向け32/64bitインストーラを選択してください。
インストーラーを起動したら全部デフォルトでインストールします。
Java はインストールされていれば勝手にパスが入っているハズです。
インストールパスもデフォルトのまま [Install] します。
最後に、以下をチェックしてインストールを [Finish] します。
Run Apatch Tomcat
Tomcatの動作確認
Webブラウザを立ち上げてアドレスバーに
と入力してお馴染みの画面が出るかどうか確認します。
Gitbucket.watのデプロイ
先ずは、Tomcat 上で Gitbucket が動作するか確認します。Gitbucket のページから gitbucket.war ファイルをダウンロードします。
ダウンロードしたファイルを以下フォルダ内にコピーします。
C:\Program Files\Apache Software Foundation\Tomcat 8.5\webapps\gitbucket.wat
アドレスバーへ以下 URL を入力して Gitbucket が表示されるか確認します。
ブラウザ上では以下の通り表示されると思います。
IISの設定
以下フォルダに gitbucket フォルダを作成します。
C:\inetpub\wwwroot
gitbucket フォルダ内に以下 web.config ファイルを以下内容で作成して配置します。
<configuration> <system.webServer> <handlers> <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" /> </handlers> <httpPlatform processPath="C:\Program Files\Apache Software Foundation\Tomcat 8.5\bin\startup.bat" arguments=""> <environmentVariables> <environmentVariable name="CATALINA_OPTS" value="-Dport.http=%HTTP_PLATFORM_PORT%" /> <environmentVariable name="CATALINA_HOME" value="C:\Program Files\Apache Software Foundation\Tomcat 8.5" /> <environmentVariable name="JRE_HOME" value="C:\Program Files\Java\jdk1.8.0_131" /> <!-- optional, if not specified, this will default to %programfiles%\Java --> <environmentVariable name="JAVA_OPTS" value="-Djava.net.preferIPv4Stack=true" /> </environmentVariables> </httpPlatform> <security> <requestFiltering> <fileExtensions> <remove fileExtension=".ldb" /> <remove fileExtension=".refresh" /> <remove fileExtension=".webinfo" /> <remove fileExtension=".vjsproj" /> <remove fileExtension=".vbproj" /> <remove fileExtension=".vb" /> <remove fileExtension=".resx" /> <remove fileExtension=".resources" /> <remove fileExtension=".mdf" /> <remove fileExtension=".mdb" /> <remove fileExtension=".master" /> <remove fileExtension=".exclude" /> <remove fileExtension=".java" /> <remove fileExtension=".csproj" /> <remove fileExtension=".config" /> <remove fileExtension=".ascx" /> <remove fileExtension=".asax" /> <remove fileExtension=".cs" /> </fileExtensions> <hiddenSegments> <remove segment="App_Browsers" /> <remove segment="App_WebReferences" /> <remove segment="App_LocalResources" /> <remove segment="App_GlobalResources" /> <remove segment="App_Data" /> <remove segment="App_code" /> <remove segment="web.config" /> </hiddenSegments> </requestFiltering> </security> </system.webServer> </configuration>
特に大切なのは以下の2つです。稼働環境に合わせて書き換えが必要な場合があります。
- CATALINA_HOME:Tomcat インストールパス
- JRE_HOME:Java のインストールパス
Tomcatの定義ファイルの変更
ほぼ、ここに書いてあるのですが関係する定義ファイルを編集します。IISとの連携の設定と、外部から8080ポートでTomcatにアクセスできないように穴を塞ぐため、以下フォルダ内にある3つのファイルを編集します。
C:\Program Files\Apache Software Foundation\Tomcat 8.5\conf
- context.xml
- server.xml
- web.xml
context.xml
reloadable 属性を追記します。
<Context reloadable="true">
server.xml
Shutdown ポートを無効化します。
<Server port="-1" shutdown="SHUTDOWN">
WebサーバーのポートをIISのものへ変更し、外部からのアクセスができないように変更します。
編集前
<Connector port="8080" protocol="HTTP/1.1"
編集後
<Connector port="${port.http}" address="127.0.0.1" protocol="HTTP/1.1"
以下定義をコメントアウトします。
<!--<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />-->
web.xml
listings を true へ変更します。
<servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>true</param-value> <!-- ここ --> </init-param> <load-on-startup>1</load-on-startup> </servlet>
編集が完了したらサービス管理画面から Apatch Tomcat 8.5 を再起動し、IIS も併せて再起動します。
表示の確認
以下アドレスが接続できないことを確認します。
以下アドレスで、Gitbucket にアクセスできることを確認します。
データベースの変更
こちらのサイト参考に、データベースを Gitbucket から MySqlに変更します。例によってMySqlは全てデフォルトでセットアップ済みとします。
上記例だと以下のパスに gitbucket.war が展開されているはずなのでそこへ移動します。(このパス本当にこれでいいのかは大変疑問ですが…)
C:.gitbucket
この中に、database.conf というファイルがあるので内容を以下の通りに書き換えます。
db { url = "jdbc:mysql://localhost/gitbucket?useUnicode=true&characterEncoding=utf8" user = "administrator" password = "superuser" }
自分のサーバーは大変雑な管理をしているため user と pass が適当ですがセットアップの際は運用ポリシーに従った内容を設定してください。
内容を変更したら、Tomcat, IIS 共に再起動し Web ページが表示されれば作業は完了です。