以下は、エックスサーバー(X20)にSOY CMSバージョン1.2.6を設置する方法です。
「インストーラーなしSQLite版」のみ動作確認をしています。
バージョン1.2.5以前では管理画面に不具合が出ますのでご注意ください。
また、正式運用の際は必ず使用予定の機能・プラグインの動作チェックをしてください。
======================================================================================
エックスサーバーは、SOY CMSの下記設置条件を満たしていません。
------------------------------------------------------------------------------------------------------
PHPのバージョン
SOY CMSはバージョン5.2以上である必要がありますが、エックスサーバーは5.16です。
環境変数「PATH_INFO」が使用できない
SOY CMSはPHP・Apacheの「PATH_INFO」が有効になっていなければ、ページ移動ができません。
※これはSOY CMSでも公式の告知がないようなので、動作環境への追加を希望します。
PHP環境設定「magic_quotes_gpc」がONになっている
------------------------------------------------------------------------------------------------------
下記の手順で、インストールできることを確認しました。
1.ファイルをアップロードする
通常の階層構造で問題ありません。パーミッション指定も不要です。
2.PEAR::Services_JSONを追加する
PHP5.16で、SOY CMSに不足しているのは
PEARの「Services_JSON」クラスです。
http://pear.php.net/pepr/pepr-proposal-show.php?id=198
上記配布ページにアクセスして、
右下の「PEAR package file (.tgz)」からパッケージを入手します。
+LhacaなどのTGZ形式を解凍できるソフトで開き、
「JSON.php」というファイルを
[インストールしたディレクトリ]/common/lib/
直下にアップロードします。
3.PATH_INFO、error_get_last()関数を有効にする
PATH_INFOを有効にするには、一般に.htaccessに
AcceptPathInfo On
と記述すれば良いとされていますが、エックスサーバーではこれでもだめなようです。
しかし、「ORIG_PATH_INFO」は有効になっているので、
これの値をPATH_INFOへ渡す修正を行います。
また、SOY CMSは管理画面を表示する都度
error_get_last()関数をコールしています。
これはPHP5.2で実装された関数ですので、
PHP5.2以下では関数自体を定義しなければエラーとなります。
[インストールしたディレクトリ]/common/common.inc.php
の先頭に、下記スクリプトを追加します。
- コード: 全て選択
if ((!$_SERVER["PATH_INFO"])&&(isset($_SERVER["ORIG_PATH_INFO"]))) {
$_SERVER["PATH_INFO"] = $_SERVER["ORIG_PATH_INFO"];
}
function error_get_last(){
return NULL;
}
4.php.iniをアップする
テキストエディタを開いて、以下の一行を記述します。
- コード: 全て選択
magic_quotes_gpc = off
これを「php.ini」というファイル名で保存して、
エックスサーバーの最上位ディレクトリにアップロードします。
(サイトルートではなく、ドメイン名が書かれたフォルダが並んでいる階層です)
この位置にphp.iniを設置すると、この変更がサーバー全体で有効になります。
それでは問題がある場合は、
SOY CMS内の「magic_quotes_gpc」を利用している全階層にそれぞれphp.iniを設置するか、
問題がある別のスクリプトを使っているディレクトリだけphp.iniを
さらに上書きしなければならないと思います。
ここまで作業したら、[インストールしたディレクトリ]admin/index.php へ移動して、初期設定を行います。
以降は他のサーバーと同様に動作するはずです。
