1

私は Cs Cart Multi ベンダーを持っています。PHP 5.5 を PHP 7.0 にアップグレードしました。そしてエラーがあります:

stderr で送信された 865 FastCGI: "PHP メッセージ: PHP 警告: session_start(): セッション コールバックは、341 行目の /var/www/cscart/app/Tygh/Session.php で true/false の戻り値を期待しています PHP メッセージ: PHP 致命的なエラー: session_start(): ストレージ モジュールの初期化に失敗しました: user (パス: /var/lib/php/sessions) in /var/www/cscart/app/Tygh/Session.php on line 341" アップストリーム、クライアントから応答ヘッダーを読み取っている間: 49.189.136.11、サーバー:

ディレクトリ /var/lib/php/sessions には 0777 があります。他のサイトでは、セッションは正常に動作します。

ファイル Session.php:

 /**
 * Starts session
 * @param array $request Request data
 */
public static function start($request = array())
{
    // Force transfer session id to cookies if it passed via url
    if (!empty($request[self::$_name])) {
        self::setId($request[self::$_name], false);
    } elseif (empty($_COOKIE[self::$_name])) {
        self::setId(self::_generateId());
    }

    session_name(self::$_name);
    session_start();


    // Session checker (for external services, returns "OK" if session exists, empty - otherwise)
    if (!empty($request['check_session'])) {
        die(!empty($_SESSION) ? 'OK' : '');
    }

    // Validate session
    if (!defined('SKIP_SESSION_VALIDATION')) {
        $validator_data = self::getValidatorData();
        if (!isset($_SESSION['_validator_data'])) {
            $_SESSION['_validator_data'] = $validator_data;
        } else {
            if ($_SESSION['_validator_data'] != $validator_data) {
                session_regenerate_id();
                $_SESSION = array();
            }
        }
    }

    // _SESSION superglobal variable populates here, so remove it from global scope if needed
    if (Bootstrap::getIniParam('register_globals')) {
        Bootstrap::unregisterGlobals('_SESSION');
    }

}

サーバー: NGINX、PHP7.0-FPM

4

2 に答える 2

3

session_start()は、以前に で設定したハンドラーを使用しsession_set_save_handler(...)、そのハンドラー (または個々の関数) は、成功または失敗を通知するために true/false の結果を返す必要があります。true/false の結果を返さないハンドラがあります。

要点をまとめると; 実際のエラーは、を呼び出すコードではなく、セッション ハンドラの実装ですsession_start()

于 2016-08-26T06:28:47.730 に答える