エックスサーバー(X20)にSOY CMSバージョン1.2.6を設置する方法はSOYCMSサイトに掲載されています。
しかし、SOY CMSバージョン1.2.7をインストールしようとするとエラーが発生してインストールできませんでした。
そこでその時のエラーと対処方法を記録しておきます。
Call to a member function execute() on a non-object.
エラーの発生場所は「/common/lib/soy2_build.php」の『$stmt->execute();』。
PDOのSQL実行ができないようでした。
というか、$stmtの中身がfalseでした。
当然、execute()なんて言われても処理できないですよね。
で、結局どうしたか??
$result = ($stmt)? $stmt->execute(): false;
と言った具合にif文で回避させて何とかインストールできました。
ついでにディレクトリ作成とかの備忘録。
これらを作成しないと書き込み権限がありませんと怒られた...
Xserverでは、PEAR::Services_JSONを追加する必要があります。
しかし、jsonを追加しただけでは、content-type が application/json になってしまってページの新規作成ができません。
そこで、「/common/lib/json_lib.php」の56行目付近『return $json->encode($content);』を以下の内容に差し替えます。
// return $json->encode($content); header('Content-type: text/html; charset=utf-8'); return $json->encodeUnsafe($content);
content-type の変更方法については「Services_JSON::encode() メソッドを使って JSON への変換を行なうとページの Content-type が強制的に application/json になってしまう件について」を参考にさせていただきました。
投稿日: