2

Zend Framework バージョン 1.11.11 を使用して php で書いています。時々私はエラーを受け取ります

session has already been started by session.auto-start or session_start()

ページを更新すると、このエラーは消えます。この問題に関するいくつかの投稿を読みました。構成を確認したところ、session.auto_start が Off に設定されています。session_start() を直接呼び出すことはありません。セッションを操作するために Zend_Session コンポーネントのみを使用します。

この問題の原因は何ですか? ガベージコレクタと接続できますか?

4

2 に答える 2

1

これは、Zend が実行しようとするセッションのクリーンアップ タスクに関連しているようです。デフォルトでは、apache はセッション ディレクトリへの書き込みアクセスのみを持っています (Ubuntu ボックスでは /var/lib/php5 になります)。これにより、クリーンアップが失敗し、断続的な HTTP/500 エラーが発生します。

最も簡単なのは、1) chmod a+r /var/lib/php5 2) chgrp www-data /var/lib/php5; のいずれかを実行して、Apache に読み取りアクセスを許可することです。chmod g+r /var/lib/php5

上記のコマンドは、Ubuntu を実行していることを前提としています。他のディストリビューションでは、ユーザー名/パスを調整します。

于 2014-02-05T12:04:23.090 に答える
0

これはdebianサーバー上にあると思いますか?そうでない場合、これは解決策ではない可能性があります...しかし、Ubuntuベースのインストールでこれに遭遇しました。

これは、インストールされた PHP パッケージと、セッションのクリーンアップを処理するために実行されている cron スクリプトの組み合わせが原因で発生しています。(何らかの理由で...なぜ彼らがそうしているのかわかりません...)

次のことを行うことで成功しました: - cron ジョブを削除して、PHP セッションのものをクリアします (信じてください、そこにある - 面倒です) - chmod www-data:www-data /var/lib/php5 (または同等の情報) ) - php.ini ファイルで session.gc_probability = 1

最善の解決策ではないかもしれませんが、私にとっては面倒でした。

于 2013-07-25T01:47:38.620 に答える