PlantUML Serverをセットアップする
PlantUML Serverをセットアップする
PlantUML Serverをローカル環境で使用可能にする方法を記載します。
PlantUMLについての説明はしないので公式サイトを読むかググっていただきたい。
もちろんこのQiitaにもタグがあるので活用事例はそちらからどうぞ。
対象読者
2021-09-05 追記 キャッシュ付きのPlantUMLサーバーが欲しいだけの人向けにGitHubにてDocker Composeの構築例を公開しています。 https://github.com/felis392/compose-plantuml
おことわり
この記事は嘘は書いていませんが間違っている可能性はあります。
執筆時点の2019-05-26
では通用しますが、将来もずっと通用するかはわかりません。
環境
記事の例で使っているOSはWindows 10 Home
の64bit版です。5
Pro
や Server 201X
でも大体同じはずですが、32bit版の事は知りません。
ちなみにインストールするマシン自体はインターネットに繋がってなくても大丈夫です。
(イントラ経由で転送したり、外部メディアで運んだりする手間は掛かる)
ダウンロードが必要なもの
以下のものが要ります。
ダウンロード手順までは細かく説明しないのであしからず。
もちろん「もう持ってる」なら新たに落としなおす必要はありません。
-
Graphviz
- PlantUMLの動作に必要。
- テキストからグラフを描画するソフト。
- Windows用のインストーラー がある。
- Java実行環境
- PlantUMLの動作に必要。
- JDKでもJREでも可。
- 今回はJDK12を使う。
- Javaアプリケーションサーバー
- PlantUML Serverの動作に必要。
-
.war
ファイルをデプロイ可能なサーバー。 - 今回はTomcat9を使う。
- PlantUML Serverのサーバープログラム
- Javaサーブレットとして提供されている plantuml.war のこと。
- (オプション)JLatexMathのjarファイル
- PlantUMLで
JLatexMath
の構文を使うのに必要。 6 - 使うなら PlantUMLサイトからダウンロード する。
- PlantUMLで
- (オプション)Apache HTTPサーバー 7
-
http://XXXXX:80/plantuml
でアクセスできるようにするのに必要。 - サーバーキャッシュ機能を使えば一度生成した画像はキャッシュから拾えるようになる。
-
インストール手順
1.「Graphviz」のインストール
- ダウンロードした
graphviz-2.38.msi
を実行し画面の指示に従って操作を進めてインストールを行う。
デフォルトではC:\Program Files (x86)\Graphviz2.38
にファイルが展開されます。
PlantUML Serverを動作させるだけならこれでOKですが、インストーラのくせにPATHを通してくれない不具合があるようなので単独で使う場合はbin
フォルダにPATHを通してください。
PATHが通っていればコマンドプロンプトで以下の様に表示されます。
> dot -V
dot - graphviz version 2.38.0 (20140413.2041)
2.「Java実行環境」のインストール
- ダウンロードした
openjdk-12.0.1_windows-x64_bin.zip
を展開する。 - 中の
jdk-12.0.1
フォルダを適当な場所に配置する。 - 環境変数
JAVA_HOME
の値にそのフォルダへのフルパスをセットする。 - 環境変数PATHの末尾に
%JAVA_HOME%\bin
を追加する。
PATHが通っていればコマンドプロンプトで以下の様に表示されます。
> java -verion
openjdk version "12.0.1" 2019-04-16
OpenJDK Runtime Environment (build 12.0.1+12)
OpenJDK 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)
3.「Javaアプリケーションサーバー」(Tomcat)のインストール
- ダウンロードした
apache-tomcat-9.0.20.exe
を実行し、画面の指示に従って操作を進めてインストールを行う。- Install type は Minimum を選択する。
- 使用するポート番号は特に理由がなければデフォルトのまま(8080)にする。
- JREの場所を聞かれるので、「Java実行環境」をインストールしたフォルダを選択する。
- Tomcatをインストールするフォルダは
C:\Apache Tomcat 9.0
など分かりやすい場所を入力する。
- インストールが完了したらアプリケーションサーバーを起動します。
Webブラウザから http://localhost:8080 にアクセスすると以下の様に表示されます。
4.「PlantUML Server」のインストール
4.1. (オプション)「JLataxMath」のライブラリの配備
JLatexMathを使用する場合は外部JARファイルをTomcatにロードさせる必要があります。
- ダウンロードした
plantuml-jlatexmath.zip
を展開し、JARファイルを取り出す。- batik-all-1.7.jar
- jlatexmath-minimal-1.0.3.jar
- jlm_cyrillic.jar
- jlm_greek.jar
- Tomcatをインストールしたフォルダ(
catalina.home
という)の下にsharedLib
というフォルダを作成する。 - 作成したフォルダに上記のJARファイルを配置する。
-
{catalina.home}\conf
にある設定ファイルcatalina.properties
をテキストエディタで開く。- 以下の様に編集してコモンローダーのスキャン対象に上記のJARファイルが含まれるようにする。
- Tomcatを再起動する。
#common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar"
common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar","${catalina.home}/sharedLib","${catalina.home}/sharedLib/*.jar"
4.2. 「plantuml.war」の配備
- Tomcatをインストールしたフォルダ(
catalina.home
という)の下にあるwebapps
フォルダを開く。 - このフォルダにダウンロードした
plantuml.war
を配置する。 - しばらく待つとTomcatのオートロード機能によって
plantuml
というフォルダに展開される。
Webブラウザから http://localhost:8080/plantuml にアクセスすると以下の様に表示されます。
お疲れ様でした。
…と言いたいところですが、ここまでやったならもう一仕事しましょう。
5. (オプション)「Apache HTTPサーバー」のインストール
5.1. 「Apache HTTPサーバー」のインストール
- ダウンロードした
httpd-2.4.39-o111b-x64-vc15.zip
を展開し、Apache24
フォルダを取り出す。 - Apache24フォルダをCドライブ直下(
C:\Apache24
)など分かりやすい場所に配置する。 - コマンドプロンプトを起動し、以下のコマンドを実行してWindowsのサービスに登録する。
- 登録したサービスを開始…はまだしない。
> cd c:/apache24/bin
> httpd -k install -n "Apache24"
なお、サービスを開始している場合は http://localhost にアクセスすると以下の様に表示されます。
5.2. ProxyPassとCacheの設定
- Apache HTTPサーバーをインストールしたフォルダの
conf
フォルダにある設定ファイルhttpd.conf
をテキストエディタで開く。 - 下記の様に編集する、
- 必要なモジュールがロードされるようにする。(コメント行になっているので行頭のハッシュを外す)
- 80番ポートでPlantUML Serverにアクセスできるようにする。
- PNGファイルとSVGファイルのサーバーキャッシュを有効にする。
- 登録したサービスを開始し、Apache HTTPサーバーを起動する。
LoadModule cache_module modules/mod_cache.so
LoadModule cache_disk_module modules/mod_cache_disk.so
LoadModule expires_module modules/mod_expires.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
<IfModule mod_proxy.c>
ProxyRequests Off
<Location /plantuml>
Require all denied
</Location>
<LocationMatch "/plantuml/(png|svg)/">
Require all granted
</LocationMatch>
# PlantUML Serverへのプロキシ定義
# {XXX.XXX.XXX}は利用者から見えるドメイン名かIPアドレス(localhostは不可)
ProxyPass /plantuml http://{XXX.XXX.XXX}:8080/plantuml
ProxyPassReverse /plantuml http://{XXX.XXX.XXX}:8080/plantuml
</IfModule>
<IfModule mod_cache.c>
<IfModule mod_cache_disk.c>
# {apache_cache}はキャッシュファイルを格納する任意のフォルダ
CacheRoot C:\{apache_cache}
CacheEnable disk /
</IfModule>
CacheIgnoreCacheControl On
CacheIgnoreNoLastMod On
CacheDefaultExpire 86400
CacheMaxExpire 2592000
</IfModule>
<ifModule mod_expires.c>
ExpiresActive On
# 既定値(キャッシュ無効)
ExpiresDefault "access plus 0 seconds"
# 画像(pngとsvgは1か月キャッシュする)
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
</ifModule>
ここまで設定できていれば http://localhost/plantuml/svg/ENCODE にアクセスして、キャッシュが有効な状態のSVG画像を取得できるようになっているはずです。
お疲れ様でした。
謝辞
キャッシュ設定については RitoLaboのこちらのエントリ を勝手に参考にさせていただきました。
Author And Source
この問題について(PlantUML Serverをセットアップする), 我々は、より多くの情報をここで見つけました https://qiita.com/felis/items/f3b5d5c8eedb6d7ee3dd著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .