今日、顧客の Web サイトから大量のエラー メッセージが突然報告されました。プロンプト コードは次のとおりです。
警告: session_start() [function.session-start]: open(/var/lib/php/session/sess_0dj5ol1fp235a0scu79s8c33t1, O_RDWR)。 ) 失敗しました: /home/wethost/wwwroot/include/seccode.inc.php の 7 行目で権限が拒否されました (13)
警告: 不明: open(/var/lib/php/session/sess_0dj5ol1fp235a0scu79s8c33t1, O_RDWR) 失敗しました: 権限拒否 (13) (行 0 の不明)
警告: 不明: セッション データ (ファイル) の書き込みに失敗しました。 session.save_path の現在の設定 (/var/lib/php/session) が行 0 の不明で正しいことを確認してください。 0
上記 プロンプトの一般的な意味は、SESSION ディレクトリ内のファイルを読み取る権限がないことです。これは、仮想ホスト プロバイダーの構成サーバーに加えられた変更が原因であると考えられます。トラブルを避けるため、今回はセッションファイルの保存ディレクトリをPHPで直接設定します。
次のコードをphpコードに追加します。これはsession_start()の前に追加する必要があります。
ini_set('session.save_path', dirname(__FILE__).'/Alixixi/');
または:
session_save_path(dirname(__FILE__).'/Alixixi/');
上記は生成しますWeb サイト セッション ファイルは、Web サイトの現在のルート ディレクトリの Alixixi ディレクトリに保存されます。
すべての構成パラメーターをスクリプトで設定できるわけではないことに注意してください。これはパラメーターのスコープに関連しています。
以下は、PHP を参照する設定パラメーターのスコープの説明です
PHP_INI_PERDIR: ディレクティブは php.ini、httpd.conf、または .htaccess ファイルで変更できます。
PHP_INI_SYSTEM: ディレクティブは php.ini で変更できます。および httpd.conf ;
PHP_INI_USER: ディレクティブはユーザー スクリプト内で変更できます;
PHP_INI_ALL: ディレクティブはどこでも変更できます
したがって、スクリプト内で設定できるのは PHP_INI_USER および PHP_INI_ALL スコープ内のパラメーターのみです。 。パラメータの特定の範囲はネットワーク上で取得できます。