Software

Pukiwiki を Docker で構築、移設する

投稿日:

Pukiwiki を Docker で構築、既存のデータを移設したのでまとめてみた。


 

概要

既存の Pukiwiki、及びその稼働マシンがメンテ外になるかもとのことで、
別途 Pukiwiki を立てて、既存のデータを反映して、シームレスに移行できるか試してみた。

ホストマシン Ubuntu Server 20.04に、(Rootless) Docker で構築する。
 

Pukiwiki のセットアップ

Docker コンテナの設定

$ docker run -p [port]:80 -v ${HOME}/pukiwiki:/ext  -d pengo/pukiwiki

conf/pukiwiki.ini.php を適宜設定する。
 

データの移行

旧環境からデータを物理コピーする。
Pukiwiki については、私は詳しくはないがとりあえず以下で動いているように見える。

  • wiki/ : データ本体
  • attach/ : 添付ファイル
  • cache/ : 直近の更新?
  • diff/ : ページ初回作成後の更新履歴?

    Google Adsense



添付ファイルのサイズ制限引き上げ

  • php側の各種制限引き上げ: (コンテナ内)/etc/php7/php.ini
    • (memory_limit = 128M) default
    • post_max_filesize = 32M
    • upload_max_filesize = 20M
  • pukiwiki 上の制限引き上げ: (コンテナ内)/var/www/plugin/attach.inc.php
    PLUGIN_ATTACH_MAX_FILE_SIZE: 20MB

以上で 20MB までのファイルを添付できるようになる。
なお、memory_limit >= post_max_filesize >= upload_max_filesize >= PLUGIN_ATTACH_MAX_FILE_SIZE

後述するように、ホスト側のサブディレクトリから docker 内へ転送する設定をする場合は、
ホスト側の経路のサイズ制限も引き上げる必要がある。
nginx の場合: (ホストマシン)/etc/nginx/nginx.conf で client_max_body_size 32M; などとする。
 

(option) EUC化

既存環境が古くEUCベース、上記 dockerコンテナは UTF-8 のため、
ページ内の日本語を含む箇所が文字化け, あるいは正しく表示されず空白になる。

  • pukiwiki の設定: (コンテナ内)/var/www/lib/init.php
    define('PKWK_UTF8_ENABLE',1) をコメントアウト
  • 日本語メニューなどのEUC化: (コンテナ内)/var/www/ja.lng.php を EUCのものに変更

    Google Adsense



転送設定

ポート番号をわざわざ教えるのも手間だし、
Firefox では変なポートはアクセスしづらいので、
ホストのポート80 からサブディレクトリ(pukiwikiなど)指定で docker 内の pukiwiki にアクセスさせる。

(ホスト側)/etc/nginx/conf.d/reverseproxy.conf

nginx の再起動($ sudo service nginx restartなど)。
これで http://[ホスト名]/pukiwiki/ などでアクセスできる。
 

Google Adsense

Google Adsense

-Software
-, , ,

Copyright© HEPtech, 2024 All Rights Reserved.