概要
WP は MVC ではない CMS であるため、MVC なものを探していたら c5 を発見。8.1.0 というバージョンになっているので新規インストールしてみた。
空のデータベースが必要
既存テーブルがある場合は蹴られますので空のデータベースを用意します。
インストールに失敗しました。
空のデータベースを指定してインストール開始するもインストール失敗。
戻るをクリックすると、データベースが空じゃないので再度怒られますw
問題
{“error”:{“message”:”Argument 2 passed to Concrete\\Core\\Page\\Single::createPageInTree() must implement interface Concrete\\Core\\Site\\Tree\\TreeInterface, null given, called in \/var\/www\/concrete5\/concrete\/src\/Backup\/ContentImporter\/Importer\/Routine\/ImportSinglePageStructureRoutine.php on line 42″},”errors”:[“Argument 2 passed to Concrete\\Core\\Page\\Single::createPageInTree() must implement interface Concrete\\Core\\Site\\Tree\\TreeInterface, null given, called in \/var\/www\/concrete5\/concrete\/src\/Backup\/ContentImporter\/Importer\/Routine\/ImportSinglePageStructureRoutine.php on line 42”]}
SSL用のカノニカルURLを設定:にチェックをいれていたので外してから、データベースを空にして(新規インストールなので drop database 後 create database) の上、再度インストール
→(NG)変わらず
日本語(デフォルトはAmerican English)、フルサイトを選択(デフォルトで選択されている)していたのでAmerican English が選択された状態で fullsite インストールしてみる
→(NG)変わらず
空白のサイトを選択してインストールしてみる(NG)
トラブルシューティング
該当箇所を確認してみるが、そもそも TreeInsterface がヌルな理由がよくわからない。
19 public function import(\SimpleXMLElement $sx) 20 { 21 22 if (isset($sx->singlepages)) { 23 foreach ($sx->singlepages->page as $p) { 24 $pkg = static::getPackageObject($p['package']); 25 26 if (isset($p['global']) && (string) $p['global'] === 'true') { 27 $spl = Single::addGlobal($p['path'], $pkg); 28 } else { 29 $root = false; 30 if (isset($p['root']) && (string) $p['root'] === 'true') { 31 $root = true; 32 } 33 34 $siteTree = null; 35 if (isset($this->home)) { 36 $siteTree = $this->home->getSiteTreeObject(); 37 } else { 38 $home = \Page::getByID(HOME_CID); 39 $siteTree = $home->getSiteTreeObject(); 40 } 41 42 $spl = Single::createPageInTree($p['path'], $siteTree, $root, $pkg); 43 }