【PaperMC】SSL対応Dynmapを出せるようにするまでの話
自己嫌悪になりながら頑張った。
手順難しくなかった。
上記の手順で行った。
環境
SSL認証はLetsEncrypt
サーバーはNginx
OSはUbuntu 22.04 LTS server
STEP1
<minecraft_server.jarDIR>/plugins/dynmap/configuration.txtの編集
まずはここから。
- class: org.dynmap.InternalClientUpdateComponent
の項目を無効にする。
- class: org.dynmap.JsonFileClientUpdateComponent
を有効にする。
※コメントの位置を間違えないように注意
実際のconfigファイルのサンプルをgistに上げておきました。
外部サーバーの設定と、
tilespathを/var/www/html/にしてあります。
めんどくさがってサーバーのディレクトリはNginxのデフォルトにしたため
https://gist.github.com/uk4h/08de636f43326e985f286b26e0b96022
STEP2
plugin側のWebサーバを無効にする。
書いてある通りに変更、
実際は350行目くらいにあった。
disable-webserver: false
# TO
disable-webserver: true
STEP3
tilespath/webpathにパスを指定する
STEP1の最後の方の部分
行数忘れちゃった。
# The path where the tile-files are placed.
tilespath: /var/www/html/web/tiles
# The path where the web-files are located.
webpath: /var/www/html/web/
STEP4
マインクラフトサーバーを再起動しましょう。
ダメだったらなんか大量にエラー出るはず。
だいたいは書き込み権限うんぬんなので、
所有者権限いじくってなんとかする。
つまづいたところ
プラグインからファイル書き込みの際、
公開用フォルダにしていた/var/www/html/web
の書き込み権限を付与しているにも関わらず書き込みが出来なかったこと。
minecraft用のユーザー追加をしたときの記憶が微妙で、
管理者権限が付与されてないのが関係してるかと思ったので、
管理者グループへの追加と
思い切ってchown使って所有者変えました。
$ sudo chown -R web
# etc...
あとがき
nginxをSSLでアクセスするところまでは正直そこまで苦労しなかった。
海外フォーラムでリバースプロキシ使わないとダメだよみたいに書いてあって、
鵜呑みにしたらドツボにはまった。
沼だった。本当に。
でもよくよく考えたら標準で公開フォルダからtilesにパス通す方法って
もともと存在してたこと思い出して、
dynmapのwiki見たら普通に書いてあった。
難しくてめんどくさいことしようとしていただけだった。
まあ、勉強になったからいいや。