エックスサーバー(X20)にインストールする方法について

このレンタルサーバで動くのかとかインストールに関する質問など。
動作報告も大歓迎です。

エックスサーバー(X20)にインストールする方法について

投稿記事by webbingstudio on 2009年2月25日(水) 20:05

======================================================================================

以下は、エックスサーバー(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 へ移動して、初期設定を行います。
以降は他のサーバーと同様に動作するはずです。
最後に編集したユーザー webbingstudio [ 2009年10月22日(木) 14:22 ], 累計 1 回
WebbingStudio
―――――――――――――――――――――――― ―― - *
http://webbingstudio.com/
webbingstudio
 
記事: 19
登録日時: 2009年2月17日(火) 14:12
所在地: Sapporo, Japan

Re: エックスサーバー(X20)にインストールする方法について

投稿記事by okada on 2009年2月25日(水) 21:20

報告ありがとうございます!

webbingstudio さんが書きました:環境変数「PATH_INFO」が使用できない
 SOY CMSはPHP・Apacheの「PATH_INFO」が有効になっていなければ、ページ移動ができません。

 ※これはSOY CMSでも公式の告知がないようなので、動作環境への追加を希望します。

こちら早めに動作環境に記載するようにしたいと思います。

webbingstudio さんが書きました:3.PATH_INFOを有効にする

[インストールしたディレクトリ]/common/lib/common.inc.php

の先頭に、下記スクリプトを追加します。

コード: 全て選択
if ((!$_SERVER["PATH_INFO"])&&(isset($_SERVER["ORIG_PATH_INFO"]))) {
   $_SERVER["PATH_INFO"] = $_SERVER["ORIG_PATH_INFO"];
}

※common.inc.phpは、全ての処理の最初に呼び出されているようですが
 他にも追加すべきファイルがあれば、ご指摘くださいv_v

管理画面はこれで動くようになると思いますが、作成したサイトを表示するときに問題が出るのではないかと思います。

[インストールしたディレクトリ]/common/lib/site.inc.php
の先頭にも同じ記述をすればOKです。

ではでは。
okada@株式会社日本情報化農業研究所

SOY CMS http://www.soycms.net/
SOY Shop http://www.soyshop.net/
SOY App http://www.soycms.net/extentions
開発ブログ http://www.soycms.net/blog/
Twitter http://twitter.com/SOY_CMS
okada
 
記事: 553
登録日時: 2008年6月07日(土) 00:49

Re: エックスサーバー(X20)にインストールする方法について

投稿記事by webbingstudio on 2009年2月26日(木) 16:09

okada さんが書きました:管理画面はこれで動くようになると思いますが、作成したサイトを表示するときに問題が出るのではないかと思います。

[インストールしたディレクトリ]/common/lib/site.inc.php
の先頭にも同じ記述をすればOKです。


おぉ、他にも記述が必要なのですね :shock:
サイトがちゃんと表示されていたので、大丈夫かと思っておりました。
(ログインしていたからかも)
補足をいただきありがとうございます :)
WebbingStudio
―――――――――――――――――――――――― ―― - *
http://webbingstudio.com/
webbingstudio
 
記事: 19
登録日時: 2009年2月17日(火) 14:12
所在地: Sapporo, Japan

Re: エックスサーバー(X20)にインストールする方法について

投稿記事by okada on 2009年2月26日(木) 18:06

すみません…。またもや間違っていました。
エックスサーバーのPHPはCGIモードでしたね。

CGIモードの場合、サイト直下の.htaccessとindex.phpの方でPATH_INFO対策を行っているので
[インストールしたディレクトリ]/common/lib/site.inc.php
は変更しなくてOKです。はい。

失礼いたしました。
okada@株式会社日本情報化農業研究所

SOY CMS http://www.soycms.net/
SOY Shop http://www.soyshop.net/
SOY App http://www.soycms.net/extentions
開発ブログ http://www.soycms.net/blog/
Twitter http://twitter.com/SOY_CMS
okada
 
記事: 553
登録日時: 2008年6月07日(土) 00:49

Re: エックスサーバー(X20)にインストールする方法について

投稿記事by webbingstudio on 2009年7月04日(土) 20:59

--------------------------------------------------------------------------
この問題はバージョン1.2.6以降発生しなくなりました。
--------------------------------------------------------------------------

エックスサーバーへのSQLite版インストールに関する追記です。

下記スレッドにある通り、バージョン1.2.5以降ではPHPのエラー文が表示されるようになってしまいました :|

viewtopic.php?f=7&t=236

これを回避するには、/common/lib/soy2_build.phpの
5962行目、6146行目の

コード: 全て選択
function getObject(){
      return htmlspecialchars((string)$this->.............(以下略)
}


の、「htmlspecialchars」 の前に「@」を付けてください。

コード: 全て選択
function getObject(){
      return @htmlspecialchars((string)$this->.............(以下略)
}


ですが、これは一時的な対応にすぎません。
htmlspecialcharsの処理は他にもあるので、私がまだ確認していない機能で不具合が出るかもしれないためです。

現状では、エックスサーバーでは設置はできても他サーバーのような安定稼働は難しいと思います。
要望は出してみますが…

ひとまず私は今後、動作確認がされているサーバーで使ってみます。
okadaさん、お手数をおかけしました :|
WebbingStudio
―――――――――――――――――――――――― ―― - *
http://webbingstudio.com/
webbingstudio
 
記事: 19
登録日時: 2009年2月17日(火) 14:12
所在地: Sapporo, Japan

Re: エックスサーバー(X20)にインストールする方法について

投稿記事by pink.dugong on 2010年4月27日(火) 02:09

SOY CMSバージョン1.2.7では、上記方法でインストールしたとき、
admin/index.phpへ移動で
Fatal error: Call to a member function execute() on a non-object.
が発生します。

/common/lib/soy2_build.php の2964行目付近の
「$result = $stmt->execute();」を
コード: 全て選択
$result = ($stmt)? $stmt->execute(): false;

と書き換えることでインストールすることができました。
pink.dugong
 
記事: 1
登録日時: 2010年4月27日(火) 01:57

Re: エックスサーバー(X20)にインストールする方法について

投稿記事by samusamu on 2011年6月06日(月) 05:58

エックスサーバーはもうphp5.2になってますよね?
エックスサーバーのお知らせでもsoy cmsに対応になったと書いてあります。
ここの記事はもう古くないですか?
エックスサーバーは今やphpでも対応している事、
それをふまえてのインストールについての解説を新しく更新してください。
お願いします。
samusamu
 
記事: 11
登録日時: 2011年6月06日(月) 05:56


Return to 動作環境・インストール方法

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[2人]