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.

NetCommons3 インストール時に表示されたエラーメッセージ

とのことなので,てっきり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の予約語と衝突していることがわかりました.

解決した

この時点でまた色々と調べてみると,既に解決策を示している方がいらっしゃいました.

この記事によると,app/Plugin/Migrations/Lib/CakeMigration.phpというコード上に原因があるようです.このコードの17行目を

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

というように変更してあげると,インストール作業を進められるようになりました.

おわりに

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

スポンサーリンク
おすすめの記事