Node.js の継続的な開発と広範な適用により、ますます多くの開発者が Node.js を使用して Web アプリケーションを開発しようと試み始めています。同時に、Node.js は優れた静的ファイル サーバーでもあり、シンプルで使いやすい Web サーバーを迅速に構築するのに役立ちます。しかし、最近 Node.js を使って静的ファイルサーバーを構築したところ、PHP が入っているフォルダーが読み込めないことが分かり、開発者を非常に悩ませました。では、なぜ Node.js 静的フォルダーは PHP を読み取れないのでしょうか?
まず、Node.js 静的フォルダー サーバーの性質を理解する必要があります。平たく言えば、Node.js 静的フォルダー サーバーは、ローカル フォルダーの内容を HTTP プロトコルを通じてブラウザーに送信できるサービス プログラムです。 HTML、CSS、JavaScript、画像、動画などのさまざまな静的ファイルを読み取って送信できます。開発中に、Node.js の HTTP モジュールに基づいて単純な Web サーバーを迅速に構築し、それを使用して静的リソースを配布できます。
残念ながら、Node.js では、php ファイルに関して、Node.js 自体には php ファイルを解析する機能がなく、php リクエストを転送することもできません。 Node.js を使用して PHP ファイルを処理する場合は、CGI (Common Gateway Interface) などのサードパーティ ツールを使用する必要があります。
CGI の原理は、PHP ファイルを別のプロセスで実行し、標準入出力ストリームを通じてデータを取得および送信することです。具体的には、独立した PHP プロセスを開始し、プロセス内で PHP ファイルを実行し、実行結果を Node.js プロセスに返して処理します。したがって、CGI を使用すると、Node.js を使用して PHP ファイルの読み取りと転送を行うことができるため、Node.js 静的フォルダー サーバーが PHP ファイルを読み取ることができないという問題が回避されます。
さらに、別の解決策は、Nginx を PHP ファイルのゲートウェイとして使用し、PHP ファイルを Node.js サーバーに転送して、プロキシ リクエストを通じて処理することです。 CGI と比較して、この方法は同時リクエストをより効率的に処理できますが、対応する Nginx 構成が必要で、実装が少し複雑です。
要約すると、Node.js の静的フォルダーが PHP ファイルを読み取れない理由は、Node.js 自体に PHP インタープリターがなく、PHP リクエストを転送できないためです。 PHP ファイルを読み取る Node.js を実装するには、CGI または Nginx プロキシを使用して転送を実現します。もちろん、小規模な静的ファイル サーバーの場合、PHP ファイルが必要ない場合は、Node.js サーバーの読み取りと送信に影響を及ぼさないように、PHP フォルダーを別のフォルダーに分離することも検討できます。
つまり、Node.js は優れた静的ファイル サーバーとして、優れた柔軟性と拡張性を備えています。 Node.js を使用して Web アプリケーションを構築し、静的リソース サービスを提供するプロセスでは、実際のニーズや状況に応じてさまざまな技術的手段を柔軟に使用して目的を達成する必要があります。
以上がNode.js 静的フォルダーが PHP を読み取れないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。