同ディレクトリ内にPowerCMS Xを複数インストールするときにindex.phpにアクセスしても画面真っ白のときー
※本記事はPowerCMS X Advent Calendar 2024の5日目の記事です。
今後も躓きそうなのでメモ。
前提
例えば、検証で使っている次のCMS環境(以降環境A)がある。
CMS本体パス:
/var/sites/test.km92.intra/htdocs/cms/pcmsx
CMS管理画面のURL:
https://test.km92.intra/cms/pcmsx/index.php
遭遇した問題
もう一つ別に検証環境が欲しくなって、シェルコマンドで次のような感じでコピーして、
cp -rf pcmsx pcmsx_hoge
出来たディレクトリをベースに、次のようなCMS環境(以降環境B)を構築しようとした。
CMS本体パス:
/var/sites/test.km92.intra/htdocs/cms/pcmsx_hoge
CMS管理画面のURL:
https://test.km92.intra/cms/pcmsx/index.php
次の設定を行った後、次を行った上で、
- CMS本体パス直下の db-config.phpの参照先DBを、環境B用に用意したDBの識別子に書き換える。
- CMS本体パスとその配下ファイルのファイルアクセス権限の調整
CMS管理画面のURLにアクセスすると、画面真っ白(´Д`)
改善の為の施行
前述の問題解消の為、以降の施行を実施し、それぞれ結果を得た。
A:temp_dir/work_dirの書き換え
PowerCMS X の公式を見てもはっきりした情報が見当たらず悩んだ結果、
CMS本体パス直下のconfig.jsonの次の値を調整する事で改善される事が分かった。
- work_dir
- temp_dir
以降、詳細。
デフォルトのconfig.json(パッケージのconfig.json-original.json)では、上記設定値の値は次の通り。
work_dir="/tmp",
temp_dir="/tmp",
これを例えば次のように変更すると、インストール画面が正しく表示された。
work_dir="/tmp/pcmsx_hoge/temp",
temp_dir="/tmp/pcmsx_hoge/work",
temp_dirのみの書き換えでも上手く行ったので、最低temp_dirの書き換えでよいと思われる。
B:古いキャッシュファイルの削除
また、サポートに伺うと、CMS本体ディレクトリ直下の/cache配下に古いキャッシュのディレクトリやファイルが残っているので、これも原因と思われる、との事だった。
しかし、/cache配下のディレクトリ・ファイルを削除しても事象は改善されなかった。
C:インストール画面のURLに手動で移動
CMSのインストール画面が出るときの正しい動作としては、次のURLをブラウザに直入力すると、
https://test.km92.intra/cms/pcmsx/index.php
次のURLに遷移する。
https://test.km92.intra/cms/pcmsx/index.php?__mode=upgrade&_type=install
踏まえて、リダイレクトしないのであれば、リダイレクト後のURLを直接ブラウザに入力すればよいのでは、と思い試したところ、インストールしてログインできるところまで上手く行った。
結果を踏まえて
公式がtemp_dirを/tmp以外のパスに設定するのを推奨している事もあり、試行Aのtemp_dir/work_dirを行うのが無難な手段であり、またそれに加えて試行Bを行った方が良いと思われる。
試行Cでもインストールは出来たが、なんか怖い(´Д`)
参考:temp_dir/work_dirってなんやろか
temp_dir
公式に次のようにあった。
インストールに関する初期設定やチェックポイントについて | PowerCMS X
アップロードファイルなどの一時格納ディレクトリです。PrivateTmp が有効な環境では、worker.php実行時のキャッシュのクリアがうまく行かない時があります。/tmp以外のパス指定を推奨します。
また、次のドキュメントにも仕様について関連する記載あった。
インストール | PowerCMS X
→要約)temp_dirの指定しないときは、[CMS本体ディレクトリ]/cacheディレクトリにキャッシュ置くよ。
インストールに関する初期設定やチェックポイントについて | PowerCMS X
→要約)temp_dirのパスは高速なディスク上のものを指定してね。
work_dir
公式には次のように記載あった。
インストールに関する初期設定やチェックポイントについて | PowerCMS X
スケジュールタスクが利用する一時ディレクトリを指定します(ver.2.585以降)。
他にも仕様について公式に記載があった。
PowerCMS X ver.3.54 / 2.754リリースノート | PowerCMS X
→要約)「SearchEstraier」「DocumentSearch」のインデックス洗い替えでwork_dir使うよ。
最後に
記事に何か成分が足りてないような気がするので、10月に登った山の写真を載せておきますね。良いお年を(^^)