1. ホーム
  2. php

[解決済み] PHP 5.3 と sessions フォルダの問題

2023-07-21 23:04:19

質問

最近 PHP 5.3 にアップグレードしたのですが、それ以来、Apache (またはセッションファイルの作成者) がセッションを保存するフォルダに対してパーミッションを持っていないことを示すエラーメッセージが (散発的に) 表示されるようになりました。

これはランダムに起こり、正確な手順で再現できないので、セッション クリーナーが原因だと推測されます。

どなたか、このようなエラーの経験をお持ちの方はいらっしゃいませんか?

エラーメッセージ(これは session_start() 行で発生します) です。

ps_files_cleanup_dir: opendir(/var/lib/php5)に失敗しました。 パーミッションが拒否されました。

ls -ltr on the session directory gives:

drwx-wx-wt  2 root          root          4096 2010-05-25 12:39 php5

このディレクトリの中に、私の Apache である www-data が所有するセッションファイルがあり、アプリは問題なく動作します。 これは、セッションGCがどのユーザーの下で実行されているのか疑問に思わせるものです。

どのように解決するのですか?

修正方法です。 あなたの php.ini を設定します。 session.gc_probability0

原因 私はここで答えを見つけたと思います http://somethingemporium.com/2007/06/obscure-error-with-php5-on-debian-ubuntu-session-phpini-garbage

基本的に、ガベージコレクションはいくつかのシステム(Ubuntu/Debianなど)でcronジョブによって行われるように設定されています。 php-cli のようないくつかの php ini 実行ファイルもガベージコレクションを行おうとし、その結果、あなたが得たエラーになります。