1

Web サーバーとアプリケーション サーバーで DMZ をセットアップしました。どちらも gnome で Ubuntu を実行しています (Web サーバーでは v11.04、アプリケーション サーバーでは v11.10)。 session_start()アプリケーションサーバーでハングアップし始めました。コードはアプリケーション サーバー上にあり、自分の Web サイトにアクセスしてsession_start()呼び出しのあるページにアクセスしてもハングしません。session_start()他のコンピューターや Web 経由で関連ページにアクセスしても問題はありませんが、every がアプリケーション サーバーでハングし始めたようです。また、PHPコードを変更せずに、アプリケーションサーバーでこの問題が発生し始めたばかりです。一部のバッファがいっぱいになり、クリアする必要がある可能性がありますか?

編集/etc/php5/apache2/php.ini・設定してみた

session.save_path = "/tmp"

/tmp存在します。

しかし、私にはまだ問題があります。先行することでハングを停止できsession_start()ますsession_end()が、ファイル内の残りの PHP または html コードは実行されません。

/var/log/apache2/error.log次のメッセージが含まれていました。

PHP Notice:  A session had already been started - ignoring session_start() in
/var/www/DraculaPgm.php on line 101, referer: 
http://MyWebSite.com/ApplicationServer/Dracula.php


ピーター、これについて何か助けていただければ幸いです。

2012 年 12 月 29 日更新

この質問に答えてくれた皆さんに感謝します。残念ながら、私はすべての提案を試しましたが、「session_start()」はまだハングしています。ただし、数分間放置すると、次のエラー メッセージが表示されて中断します。

Proxy Error

The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /ApplicationServer/Dracula.php.

Reason: Error reading from remote server

Apache/2.2.17 (Ubuntu) Server at MyWebSite.com Port 80

Web サーバーに squid をインストールしました。これは問題になる可能性がありますか?

ありがとう、
ピーター

4

5 に答える 5

4

「session_start()」を次のブロックに変更しました。

if(!isset($_SESSION))
{
    session_destroy();
    session_start();
}

私は今問題を抱えていません。すぐに修正されたようには見えなかったので、問題が修正されたとは言いたくありません。

助けてくれてありがとう、
ピーター。

于 2012-12-31T02:00:47.423 に答える
4

これは構成の問題のように聞こえます。PHP がすべてのエラーを報告していること、つまり error_reporting(E_ALL) を確認し、すべてのエラーを表示またはログに記録します。(php.ini で display_startup_errors を有効にすることもできます) - すべてのエラーを報告すると、何が起こっているのかが明らかになる場合があります。(ヘルプが必要な場合は、ここから得たエラーを編集として投稿できます)セッションに関する問題のトラブルシューティングについては、以下も参照してください。

または、実行している PHP のバージョンに応じて、 https://bugs.php.net/bug.php?id=28856&edit= 1 のバグ レポートを読みたいと思うかもしれません。

于 2012-12-27T03:41:26.040 に答える
1
if(!isset($_SESSION)) 
{ 
    session_start(); 
}

これを PHP ファイルの先頭で使用してください。

参考までに、session_destroy()セッションを終了するために使用されます。

于 2012-12-27T03:39:16.040 に答える
1

何よりもまず、別のブラウザを試してください。

この session_start 問題が発生しました。私は自分の tmp フォルダーとすべてをチェックし、セッション Cookie に関係している可能性があるため、最初に別のブラウザーを試す必要があると思うまで、ホスティング プロバイダーに電話をかけようとしていました。

私はクロムを使用しているので、IEでテストしたところ、実際にそうであることがわかりました.別のブラウザで動作しました!

私はIEを閉じました;)-クロムに戻り、Cookie(PHP_SESS_ID)を探し、それを削除すると、すべてが再び機能しました!

良い点は、皆さんと同じように、-jay- セッションの知識をブラッシュ アップする必要があることです。;)

于 2014-04-15T12:01:49.113 に答える
1

/tmp実行してフォルダーのアクセス許可を変更し、機能しているchmod 777 /tmpかどうかを確認してください。機能している場合は、アクセス許可モードを変更してより安全にします

この質問を確認してみてください session_start() を呼び出します スクリプトがハングし、何も起こりません

そしてこれhttp://www.projectpier.org/node/1934

「セッションファイルが排他的に開かれているようです。場合によっては (Windows)、ファイルロックが何らかの理由で適切に解放されないことがわかりました。そのため、将来のスクリプト実行時に session_start() が無限にハングアップします。これを回避する方法問題は、session_set_save_handler() を使用し、書き込み関数が fopen($file, 'x') の代わりに fopen($file, 'w') を使用していることを確認することでした」

http://php.net/manual/en/function.session-start.phpを参照すると、同じ問題とその回避策を持っている他の多くの人を見つけることができます

于 2012-12-27T03:51:13.760 に答える