Windows で Apache + PHP セッションが失われるという痛い経験
今日の作業は、PHP サイトを新しいサーバーに移行することです。
Windows Server 2008 仮想マシンを作成し、その仮想マシン上で net stop http サービスを停止し (ポート 80 の競合を避けるため)、Apache + PHP をインストールして構成し、サイトを新しいサーバーに移行すると、サイトが正常に開き、Apache が起動します。 + PHP は正常に動作し、MySql サーバーへの接続も正常で、すべてが順調でした。30 分で作業を完了するつもりでしたが、その後悪夢が始まりました。
このサイトはシングル サインオンを使用しており、ログイン プロセスには Web サービスへの SOAP 呼び出しを含む JavaScript 非同期操作が含まれています。ログイン後、エラー メッセージは表示されずにログイン ページに戻りました。次の可能性が考えられます。
1. アカウントが異常ですか?他のシステムでテストしたところ、アカウントのステータスは正常でした。
2. JavaScript の非同期操作は失敗しましたか? IE 開発者ツールを使用して Javascript の戻り値を追跡します。戻り値は正常です。
3. Web サービスの呼び出しは失敗しましたか? Fiddler を使用して、検証が成功し、ローカル ログインが完了したことを示す Web サービスの戻り値を追跡します。
追跡とデバッグを繰り返した結果、サイトの SESSION が失われたのではないかと疑い始めました。
1. JavaScript の非同期操作で SESSION の設定に失敗しました。同期アクセスと非同期アクセスの SESSION ID が異なるためでしょうか。これは Flash の非同期呼び出しでのみ発生しましたが、JavaScript でも発生しますか?出力同期アクセスと非同期アクセスのSESSION IDの値は同じです。
2. PHP テストページを 2 つ作成し、1 つのページで SESSION を設定しますが、もう 1 つのページではそれを読み取ることができません。 php.ini 関連の設定を確認してください。session.save_path = "C:/php/tmp" パスを確認してください。ただし、SESSION 関連のファイルはなく、設定には tmp ディレクトリも含まれていません。
結末はとんでもないです。tmp ディレクトリがないと、PHP は SESSION ファイルを書き込むことができず、当然 SESSION は失われます。 tmp ディレクトリがないのはなぜですか? インストール パッケージに含まれていないためです...私の 3 時間。
以上、Windows で Apache + PHP SESSION が切れた痛い経験を内容も含めて紹介しましたので、PHP チュートリアルに興味のある友人の参考になれば幸いです。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











まだ人気があるのは、使いやすさ、柔軟性、強力なエコシステムです。 1)使いやすさとシンプルな構文により、初心者にとって最初の選択肢になります。 2)Web開発、HTTP要求とデータベースとの優れた相互作用と密接に統合されています。 3)巨大なエコシステムは、豊富なツールとライブラリを提供します。 4)アクティブなコミュニティとオープンソースの性質は、それらを新しいニーズとテクノロジーの傾向に適応させます。

IISとPHPは互換性があり、FastCGIを通じて実装されています。 1..phpファイル要求を構成ファイルを介してFastCGIモジュールに転送します。 2. FASTCGIモジュールは、PHPプロセスを開始して、パフォーマンスと安定性を改善するための要求を処理します。 3。実際のアプリケーションでは、構成の詳細、エラーデバッグ、パフォーマンスの最適化に注意する必要があります。

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

NginxとApacheにはそれぞれ独自の利点と欠点があり、選択は特定のニーズに基づいている必要があります。 1.Nginxは、非同期の非ブロッキングアーキテクチャのため、高い並行性シナリオに適しています。 2。Apacheは、モジュラー設計のため、複雑な構成を必要とする低変動シナリオに適しています。

AIは、作曲家の使用を最適化するのに役立ちます。特定の方法には次のものが含まれます。1。依存関係管理の最適化:AIは依存関係を分析し、最適なバージョンの組み合わせを推奨し、競合を減らします。 2。自動コード生成:AIは、ベストプラクティスに準拠したComposer.jsonファイルを生成します。 3.コードの品質を改善する:AIは潜在的な問題を検出し、最適化の提案を提供し、コードの品質を向上させます。これらの方法は、開発者が効率とコードの品質を向上させるのに役立つ機械学習および自然言語処理技術を通じて実装されています。

Apacheは、今日のテクノロジーエコシステムで依然として重要です。 1)Webサービスとビッグデータ処理の分野では、Apachehttpserver、Kafka、およびHadoopが依然として最初の選択肢です。 2)将来的には、競争力を維持するために、クラウドのネイティブ、パフォーマンスの最適化、エコシステムの簡素化に注意を払う必要があります。

session_start()iscrucialinphpformangingusersions.1)itInitiateSanewsessionifnoneExists、2)resumesanexistingsession、および3)SetSessionCookieforcontinuityAcrossRequests、ApplicationslicationSliviseSlikeUserauthicationAnticatent。

Laravelは、次のようなWeb開発プロセスを最適化します。1。ルーティングシステムを使用してURL構造を管理します。 2。ブレードテンプレートエンジンを使用して、ビュー開発を簡素化します。 3.キューを介して時間のかかるタスクを処理します。 4. Eloquentormを使用して、データベース操作を簡素化します。 5.ベストプラクティスに従って、コードの品質と保守性を向上させます。
