エックスサーバー(X20)にSOY CMSバージョン1.2.7を設置する方法

趣旨

エックスサーバー(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文で回避させて何とかインストールできました。

ディレクトリ作成とか

ついでにディレクトリ作成とかの備忘録。

admin
cacheディレクトリを作成。
app
cacheディレクトリを作成。
common
dbディレクトリを作成。
soycms
cacheディレクトリを作成。

これらを作成しないと書き込み権限がありませんと怒られた...

追記:PEAR::Services_JSONのcontent-typeの弊害

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 になってしまう件について」を参考にさせていただきました。

投稿日:

ページのトップへ戻る