社員ブログ

EC-CUBE 2.4.3 を PHP5.3系(XAMPP1.7.3)にインストール

2010年05月28日 金曜日

EC-CUBE2.4系はそのままではPHP5.3系を使用したサーバー環境ではインストールできません。

ようするにPHP5.3.1が入ってる最新のXAMPP1.7.3にインストールできないという非常に困った状況です。

 

そのままだとインストール途中で画面が真っ白になります。

この状態を回避してEC-CUBE2.4系をPHP5.3系をインストールしているサーバーでもインストールさせる方法を紹介

 

以下のファイルを修正

インストールフォルダ/data/class/session/SC_SessionFactory.php

 

細かい説明は抜きでコメント部分が修正部分書き換えて下さい。

/*
 * This file is part of EC-CUBE
 *
 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
 *
 * http://www.lockon.co.jp/
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */

// {{{ requires
require_once CLASS_PATH . 'session/sessionfactory/SC_SessionFactory_UseCookie.php';
require_once CLASS_PATH . 'session/sessionfactory/SC_SessionFactory_UseRequest.php';

/**
 * セッションの初期化処理を抽象化するファクトリークラス.
 *
 * このクラスはセッションの維持方法を管理するクラスです.
 * 他のセッション管理クラスとは若干異なります.
 *
 * EC-CUBE2.1.1ベータ版から、
 * 管理画面>基本情報>パラメータ管理で、セッションの維持方法を
 * ・Cookieを使用する場合
 * ・リクエストパラメータを使用する場合
 * の2種類が選択できますが、どちらの設定であっても下記のように呼び出すことで
 * 適切にセッションを開始することができます.
 *
 * $sessionFactory = SC_SessionFactory::getInstance()
 * $sessionFactory->initSession();
 *
 * @package SC_Session
 * @author LOCKON CO.,LTD.
 * @version $Id: SC_SessionFactory.php 17560 2008-08-26 11:07:54Z adachi $
 */


/** ▼ insert by greenwich PHP5.3系 install対応 セッションは一意なのでグローバルにした**/
global $session;
/** ▲ insert by greenwich **/

class SC_SessionFactory {

    // }}}
    // {{{ functions

    /**
     * パラメータ管理で設定したセッション維持設定に従って適切なオブジェクトを返す.
     *
     * @return SC_SessionFactory
     */
/** ▼ update by greenwich PHP5.3系 install対応 セッションをシングルトン取得しているようなのでstaticに変更**/
//    function getInstance() {
    public static function getInstance() {
/** ▲ update by greenwich **/
/** ▼ insert by greenwich PHP5.3系 install対応 既にセッションが存在する場合はそのセッションを返却**/
        if (!is_null($session)) {
            return $session;
        }
/** ▲ insert by greenwich **/
        $type = defined('SESSION_KEEP_METHOD')
            ? SESSION_KEEP_METHOD
            : '';

        switch($type) {
        // セッションの維持にリクエストパラメータを使用する
        case 'useRequest':
            $session = new SC_SessionFactory_UseRequest;
            defined('MOBILE_SITE')
                ? $session->setState('mobile')
                : $session->setState('pc');
            break;

        // クッキーを使用する
        case 'useCookie':
            // モバイルの場合はSC_SessionFactory_UseRequestを使用する
            if (defined('MOBILE_SITE')) {
                $session = new SC_SessionFactory_UseRequest;
                $session->setState('mobile');
                break;
            }
        default:

            $session = new SC_SessionFactory_UseCookie;

            break;
        }

        return $session;
    }

    /**
     * セッションの初期化を行う.
     *
     */
/** ▼ delete by greenwich PHP5.3系 install対応 使用してなさそうなのでコメントアウト**/
//    function initSession() {}
/** ▲ delete by greenwich **/
    /**
     * Cookieを使用するかどうかを返す.
     *
     * @return boolean
     */
/** ▼ delete by greenwich PHP5.3系 install対応  使用してなさそうなのでコメントアウト**/
//    function useCookie() {}
/** ▲ delete by greenwich **/

}
/*
 * Local variables:
 * coding: utf-8
 * End:
 */

 

これでPHP5.3にインストールできるはずですが、もう1点問題点があります。

MySQLにインストールする場合は

インストールフォルダ/data/class/SC_Initial.php

の 70行目辺りの defineDSNファンクション を以下のように修正。

PostgreSQLの場合はデフォルトでOKだと思います。

    /**
     * DSN を定義する.
     *
     * @access protected
     * @return void
     */
    function defineDSN() {
        if(defined('DB_TYPE') && defined('DB_USER') && defined('DB_PASSWORD')
           && defined('DB_SERVER') && defined('DB_PORT') && defined('DB_NAME')) {
            /** サイト用DB */
            define ("DEFAULT_DSN",
                    DB_TYPE . "://" . DB_USER . ":" . DB_PASSWORD . "@"
                    . DB_SERVER . ":" .DB_PORT . "/" . DB_NAME);
        } else {
/** ▼ update by greenwich mysqlにインストールする為変更 **/
//            define("DEFAULT_DSN", "pgsql://nobody:password@localhost:5432/eccubedb");
            define("DEFAULT_DSN", "mysql://");
/** ▲ update by greenwich **/
        }
    }

 

インストール時にPHP5.3から非推奨となった関数のワーニングが死ぬほどでますが無視してインストール完了。

見るのもいやな方は

php.ini の display_errors を Off に設定

display_errors = Off

 

PHP5.3系にEC-CUBE3.4系がインストールできましたが、検証など一切行っておりません。

 

インストールされる方は自己責任でお願いしますであります。(ケロロ軍曹風)

Trackback URL
文字サイズサイズ小サイズ中サイズ大