PHP が IIS で POST データを受信できない場合の解決プロセス

問題のステータスの説明:

1. PHP バージョンを切り替え、IIS サービスを再起動してみました。結果は無効です。

2. PHP バージョン 5.4 および 5.5 を使用している場合、POST データが送信されるとすぐにプログラムがタイムアウトになります。5.6 はタイムアウトしませんが、POST は空のデータを出力します。

3. プロセス中に PHP を再インストールしましたが、それでも動作しませんでした。

4.asp.net は投稿データに正常にアクセスできます。asp.net プログラムもサーバー上で実行されています。

5. ASP プログラムも投稿データを取得できず、投稿データが送信されるとすぐにエラーを報告します。

6. このサーバーは半年ほど稼働していますが、特に問題はありませんでしたが、PHP が突然 POST データを受信できなくなりました。

7. 他の Windows サーバーでも同じ ASP および PHP プログラムが正常に動作することを確認しています。

問題の結論分析:

1. Asp.net は正常に実行でき、ポスト データを受信できます。つまり、iis は POST を受信できます。

2. asp も PHP もポストデータを受信できず、再インストールや再起動も無効であり、asp や PHP 自体には問題がないことがわかります。

3. 要約すると、iis と php または asp の間に問題があり、この構成またはマッピング方法は IIS で設定されています。

4. 包括的な分析。最後の質問は IIS の構成に関するものです。

問題を解決するための消去法:

解決策 1. IIS を再インストールします。このリスクは高すぎるため、10 を超えるサイトに対してサーバーを再構成する必要があります。

オプション 2. IIS の環境構成の一部を変更して問題を見つけます。好ましい

問題は最終的に解決されました:

「オプション 2」の問題は、「ホスト パイプライン モード」を「クラシック」に調整することで解決されます。(phpやaspのPOSTは正常です)

パゴダ内の設定は次のとおりです。

 「IISサーバー」の設定は以下の通りです。

技術的なポイントの概要 (マネージド パイプライン モード):

クラシックモード:

個人的なわかりやすい観点:初期によく使われていたモデルの旧バージョンと考えることができます。互換性は比較的良好ですが、拡張性は比較的劣ります。このモードは、asp と PHP を使用する場合に使用できます。第一に、asp 自体の拡張があまりないこと、第二に、PHP 自体が拡張されることです。

統合モード:

個人的なわかりやすい観点: ASP.NET 自体が非常に強力で拡張機能が多いため、ASP.NET はこのモードの使用を推奨します。ASP.NET は新しいテクノロジであり、「asp.net」として理解できます。それらは「同時」「時代の産物」とみなされます。強力な機能と強力な拡張性を満たすために生まれました。

おすすめ

転載: blog.csdn.net/weixin_39434806/article/details/132033930