目次
Nginx + PHP を構成する正しい考え方とプロセス、nginxphp を構成する考え方
ホームページ バックエンド開発 PHPチュートリアル Nginx+PHPの正しい考え方と設定手順、nginxphp_PHPの設定の考え方チュートリアル

Nginx+PHPの正しい考え方と設定手順、nginxphp_PHPの設定の考え方チュートリアル

Jul 12, 2016 am 08:52 AM
nginx php 構成

Nginx + PHP を構成する正しい考え方とプロセス、nginxphp を構成する考え方

多くの人にとって、Nginx + PHP を構成することは、チュートリアルを検索してコピーして貼り付けることに他なりません。何の問題もないように思えますが、実際には、インターネット上の多くの情報は荒廃しており、抜け穴が満載です。深い理解を求めずにただコピペすると、遅かれ早かれその代償を払うことになります。 。

Nginx+PHPを正しく設定する方法

PHP を使用してフロントエンド コントローラーを実装するとします。率直に言えば、これは統合された入り口です。すべての PHP リクエストを同じファイルに送信し、このファイル内の "REQUEST_URI" を解析することでルーティングを実装します。

一般的にはこのように構成されています

現時点では、多くのチュートリアルで次のように Nginx+PHP を構成する方法が説明されています:

リーリー

たくさんの間違い、あるいは少なくとも悪趣味なところがあります。見てみればいくつか見つかります。

まず、Nginx 構成ファイル内の命令の継承関係を理解する必要があります。

Nginx 設定ファイルは、外側から内側への一般的なブロックは「http」、「server」、「location」などです。デフォルトの継承関係は外側から内側であり、内側のブロックは自動的に継承されます。外側のブロックの値をデフォルト値として取得します。

まずは「index」コマンドから始めましょう

問題の設定では、「場所」で定義されています:

リーリー

将来的に新しい「場所」を追加する必要があると、必然的に「インデックス」命令が繰り返し定義されることになります。これは、複数の「場所」が水平関係にあり、この場合「インデックス」が存在しないためです。 「「server」index」で定義する必要があります。継承関係の助けを借りて、「index」コマンドはすべての「場所」で有効になります。

「if」コマンドを見てみましょう

最も誤解されている Nginx コマンドと言っても過言ではありません:

リーリー

多くの人は一連のチェックを行うために "if" 命令を使用することを好みますが、これは実際には "try_files" 命令の役割です。

try_files $uri $uri/ /index.php;
さらに、初心者は「if」命令がカーネルレベルの命令であると考えがちですが、実際には書き換えモジュールの一部です。また、Nginx の設定は実際には手続き型ではなく宣言型であるため、命令と混合される場合があります。非書き換えモジュールからは、期待どおりの結果が得られない可能性があります。

以下の「fastcgi_params」設定ファイルを見てください

fastcgi_params を含める;
Nginx には、「fastcgi_params」と「fastcgi.conf」という 2 つの fastcgi 設定ファイルがあります。それらに大きな違いはありません。唯一の違いは、後者の「SCRIPT_FILENAME」定義が前者よりも 1 行多いことです。

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

注: $document_root と $fastcgi_script_name の間には / はありません。

元々、Nginx には「fastcgi_params」しかありませんでしたが、後に「SCRIPT_FILENAME」を定義するときにハードコーディングを使用する人が多いことがわかり、使用法を標準化するために「fastcgi.conf」が導入されました。

しかし、これには疑問が生じます。なぜ古い設定ファイルを変更するのではなく、新しい設定ファイルを導入する必要があるのでしょうか?これは、「fastcgi_param」命令が配列型であるためです。通常の命令と同じで、内側の層が外側の層を置き換えます。通常の命令との違いは、同じレベルで複数回使用される場合、代わりに追加されることです。交換されました。つまり、「SCRIPT_FILENAME」が同じレベルで 2 回定義されている場合、両方ともバックエンドに送信されるため、潜在的な問題が発生する可能性があります。このような状況を回避するために、新しい構成ファイルが導入されました。

さらに、セキュリティの問題も考慮する必要があります。PHP で「cgi.fix_pathinfo」がオンになっている場合、PHP は間違ったファイル タイプを PHP ファイルとして解析する可能性があります。 Nginx と PHP が同じサーバーにインストールされている場合、最も簡単な解決策は、「try_files」コマンドを使用してフィルタリングすることです:

try_files $uri =404;

改良版

以前の分析に基づいて、これはオリジナルのバージョンよりもはるかにクリーンになっていますか? リーリー

Nginx + PHP を正しく設定する方法は、誰もが独自の理解を持っているはずです。

http://www.bkjia.com/PHPjc/1125885.html

本当http://www.bkjia.com/PHPjc/1125885.html技術記事 Nginx+PHP を構成するための正しい考え方とプロセス 多くの人にとって、Nginx+PHP を構成するということは、チュートリアルを検索してコピーして貼り付けることに他なりません。何もないようですね...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

See all articles