NetCommons3.2.0 を PHP7.2.10 でインストールするときは注意が必要

NetCommons3.2.0 を PHP7.2.10(CentOS7.5.1804)環境にインストールしようとしたときに内部エラーが発生して詰まったので,暫定的な対処法をメモしておきます.

NetCommons とは

NetCommons とは,国立情報学研究所(NII)が開発している次世代情報共有基盤システムです.
2018年9月7日には NetCommons3.2.0 がリリースされ,着々とバージョンアップされています.
一言でまとめると CMS のような感じで,教育機関で使われているイメージがあります(北海道の道立高校では導入されはじめてますね!).
詳しくは,

をご確認ください!

前提環境について

今回の問題が起こった環境は,次の通りです.

OSCentOS 7.5.1804
PHP7.2.10
データベースMariaDB 5.5.60
NetCommons3.2.0

症状(内部エラー)

NetCommons3 をインストールする基本的な流れは,

  1. NetCommons3 のファイルをダウンロードする.
  2. ダウンロードしてきたファイル一式をWeb公開領域(DocumentRoot)に解凍する.
  3. ブラウザ上からインストール作業を進める.

という感じになります.
しかし,ブラウザ上からインストール作業を進める段階(データベースに接続する段階)において,

というエラーが出てきました.

内部エラーが発生しました。
Error: An Internal Error Has Occurred.

とのことなので,てっきりDB接続に問題があるのかと思っていました.
しかし,app/tmp/logs/error.log というログを確認してみると,

Error: Cannot use 'object' as class name as it is reserved in [/var/www/html/test/NetCommons3/vendors/cakephp/cakephp/lib/Cake/Core/Object.php, line 18]

というように,“Object” という名前が PHP の予約語と衝突していることが判明しました.

改善

この時点でまた色々と調べてみると,既に解決昨を示している方がいらっしゃいました.
https://qiita.com/RyujiAMANO/items/352fbea9eb31cea0e9a3
によると,app/Plugin/Migrations/Lib/CakeMigration.php というコード上で原因があるようです.
このコードの17行目

- class CakeMigration extends Object {
+ class CakeMigration extends CakeObject {

というように CakeObject と変更してあげると,問題なくインストール作業を進行できるようになりました.

おわりに

今回は検証目的で NetCommons3 をインストールしようと思ったのですが,意外と手間がかかって驚きました.
前にレンタルサーバ上でセットアップしたときはすんなり進んだ気がしたのですが,VPS上だと一筋縄ではいきませんでした.
環境の構築や前提というものが大切だと身にしみて思いました.