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