NGINXとPHPサービスの組み合わせを構成するためにMACOSを使用してPHP Nginx環境を構築する方法
MAC環境の構築におけるHomebrewの中心的な役割は、ソフトウェアのインストールと管理を簡素化することです。 1. Homebrewは、依存関係を自動的に処理し、複雑な編集プロセスとインストールプロセスを簡単なコマンドにカプセル化します。 2。ソフトウェアのインストールの場所と構成の標準化を確保するために、統一されたソフトウェアパッケージエコシステムを提供します。 3.サービス管理機能を統合し、Brew Servicesを通じてサービスを簡単に開始および停止できます。 4.便利なソフトウェアのアップグレードとメンテナンス、およびシステムのセキュリティと機能を改善します。
MacにPHP Nginx環境を構築することは、実際には強力なパッケージマネージャーであるHomeBrewを使用して、NginxをWebサーバーとしてインストールおよび構成し、同時にPHP-FPM(PHP FastCGI Process Manager)プロセスPHPスクリプトを使用することです。 2つは、FastCGIプロトコルを介して連携します。この組み合わせは、ローカル開発環境にとって効率的で柔軟です。

解決策について話すために、これはおそらくアイデアです。
まず、MacがMac開発者のスイスアーミーナイフであるHomebrewを持っていることを確認する必要があります。そうでない場合は、ターミナルで文を実行します: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Homebrewをインストールしてください。

nginxのインストール: brew install nginx
コマンドとnginxは、システムに素直に横たわっています。そのデフォルトの構成ファイルパスは、通常/usr/local/etc/nginx/nginx.conf
にあります。
PHPをインストールします(プロジェクト要件に応じてPHP 8.2または8.3などの最新の安定したバージョンのインストールに慣れています): brew install php
または特定のバージョンが必要な場合: brew install php@8.2
インストールが完了した後、HomebrewはPHP-fpm構成ファイルがどこにあるか、通常/usr/local/etc/php/8.2/php-fpm.d/www.conf
PHPバージョンに応じて)。

nginx構成はコアです。 nginx.conf
を編集する必要があります。 http
ブロックでserver
ブロックを見つけたり、自分で新しいブロックを作成したりします。典型的な構成は次のようになります:
http { #...他の構成... サーバー{ 8080を聞いてください。 #またはシステムserver_name localhostで他のサービスとの競合を回避したいポート。 #またはローカルドメイン名root/users/your_username/sites; #これは、Webサイトファイルを保存するディレクトリです。独自のPATH Index.php index.html index.htmに置き換えることを忘れないでください。 位置 / { try_files $ uri $ uri / / index.php?$ query_string; } #これが重要な部分です。nginxをphp-fpmに転送します 場所〜\ .php $ { #ファイルが存在するかどうかを確認し、存在しないphpファイルのnginx処理を避けますtry_files $ uri = 404; #fastcgiサーバーアドレス、通常はphp-fpmのデフォルトソケット FASTCGI_PASS 127.0.0.1:9000; #またはunix:/usr/local/var/run/php-fpm.sock #fastCGIパラメーターの導入FASTCGI_PARAMS; #SICTING_FILENAMEを設定してPHP-FPMを伝え、スクリプトパスが現在実行されているfastcgi_param script_filename $ document_root $ fastcgi_script_name; #nginxがHTTP認証ヘッダーfastcgi_param path_info $ fastcgi_path_info;に渡すことを許可します。 } #敏感な情報を防ぐための.ht*ファイルを非表示漏れ場所〜/\.ht { すべてを否定します。 } } }
fastcgi_pass
行に注意してください。 PHP-FPMがデフォルトでTCPポート9000に耳を傾ける場合、 127.0.0.1:9000
:9000を使用します。 UNIXソケットに耳を傾ける場合、パスは/usr/local/var/run/php-fpm.sock
のようになります(このパスはphp-fpm www.conf
にあります)。私は個人的には、わずかなパフォーマンスの利点があり、ポートの競合の可能性を回避するUnixソケットを使用することを好みます。
PHP-FPM構成の場合、通常、移動しすぎる必要はありません。 www.conf
のlisten
パラメーターが、nginx構成のfastcgi_pass
のアドレスと一致することを確認してください。デフォルトでインストールされているPHP-FPMは、通常、すでに構成されています。
サービスの開始:nginxを開始: brew services start nginx
start php-fpm: brew services start php
(またはbrew services start php@8.2
インストールしたバージョンに対応します)
テストする: <?php phpinfo(); ?>
のコンテンツを使用して、Webサイトのルートディレクトリ( /Users/your_username/Sites
など)にindex.php
ファイルを作成します。 <?php phpinfo(); ?>
。次に、ブラウザを開き、 http://localhost:8080/index.php
(または構成したポートとドメイン名)にアクセスします。おなじみのPHP情報ページが表示されている場合は、おめでとうございます。環境は準備ができています。
Mac環境を構築する上でのHomebrewの中心的な役割は何ですか?
Macの開発環境に関して言えば、Homebrewは本当に人々を愛と憎しみにするものですが、愛についてです。そのコア関数は、手動でダウンロード、コンパイルし、構成する必要があるソフトウェアを単純なコマンドのラインに変えることです。 Homebrewがなければ、Nginxをインストールする場合は、公式Webサイトにソースコードをダウンロードし、それを解凍し、 ./configure
Configure、 make
、 make install
。プロセス中に、さまざまな依存関係の問題に遭遇し、頭が大きすぎます。 Homebrewは非常に勤勉な執事のようなもので、これらすべての退屈なタスクを手伝っています。
それについて最も良い点は、統一された、管理しやすいソフトウェアパッケージエコシステムを提供することです。何をインストールしたいですか? brew install
ITは、すべての依存関係を処理し、正しい場所にインストールするのに役立ちます。通常、NGINXやPHP-FPMなどのスタートアップスクリプトの構成に役立ち、 brew services start
によって実行できます。この利便性は、開発者が生産性を向上させるための強力なツールです。 Macのコマンドライン環境をより友好的で強力にし、環境構築の泥沼よりもコード自体にもっと集中できるようになります。さらに、ソフトウェアのアップグレードもシンプルでbrew upgrade
であり、HomeBrewを通じてインストールされているすべてのソフトウェアは最新の状態に保つことができます。これは、セキュリティと機能の点で非常に有益です。
NginxはPHP-FPMとどのように連携しますか?
NginxとPHP-FPMのコラボレーションは、PHP Webサービスアーキテクチャ全体で非常に絶妙なデザインです。簡単に言えば、nginxは「ファサード」であり、Php-fpmは「舞台裏」です。
http://localhost:8080/index.php
など、ユーザーがブラウザにURLを入力すると、リクエストは最初にnginxに到達します。 Nginxは効率的な静的ファイルサーバーです。写真、CSS、JSなどの静的リソースを要求すると、ファイルシステムから直接読み取り、非常に速い速度でブラウザに戻ります。しかし、要求された.php
ファイルの場合、nginxはこの問題自体を処理できず、それを処理するためにPHPが必要であることを知っています。
現時点では、NginxはPHPコードを直接実行することはありませんが、「フォワーダー」の役割を果たします。 FastCGIプロトコルを介してこのPHPリクエストをPHP-FPMに転送します。 PHP-FPMは、1つ以上のPHPインタープリタープロセスプールを維持するPHPのプロセスマネージャーです。 Nginxがリクエストをスローすると、PHP-FPMはプロセスプールからアイドル状態のPHPプロセスを見つけてリクエストを処理します。このPHPプロセスがリクエストを受信した後、対応する.php
ファイルを解析し、内部のPHPコードを実行し、データベースに接続したり、ビジネスロジックを処理したりします。
PHPコードが実行された後、PHP-FPMは実行結果(通常はHTML、JSON、またはその他のデータ)をFASTCGIプロトコルを介してNGINXに返します。 Nginxがこの結果を取得した後、最終的にユーザーのブラウザに送信します。
この分離設計の利点は明らかです。NGINXは、HTTPリクエストと静的ファイルの効率的な処理に焦点を当て、PHP-FPMはPHPコードの解析と実行に焦点を当てています。どちらも独自の義務を果たし、互いに干渉しず、システム全体の安定性とパフォーマンスを大幅に改善します。たとえば、PHPプロセスがクラッシュしたとしても、Nginxは依然として正常に実行できますが、PHPリクエストを処理できず、Webサービス全体がダウンしません。
MAC環境での一般的なNginxおよびPHP構成トラップとソリューション
MacでNginxとPHPを構成しますが、HomeBrewはプロセスを大幅に簡素化しましたが、一部の場所ではまだ簡単に行き詰まっています。私は個人的に多くに出会いました。要約すると、おそらくいくつかの一般的なトラップと対応するソリューションがあります。
1.ポート競合の問題: Nginxはデフォルトでポート80を聴きますが、Macが既にApache(MacOSでコムが入っている)または他のサービスがポート80を占有している場合、Nginxは開始されません。
-
解決策:最も直接的な方法は、NGINX構成を変更して、8080、8000、または8888などの頻繁に使用されるポートをリッスンさせることです
nginx.conf
のserver
ブロックのlisten
命令を変更するだけです。または、Apacheが必要ないと確信している場合は、無効にすることができます:sudo apachectl stop
。
2。ファイル許可の問題: NGINXまたはPHP-FPMは、Webサイトファイルを読み取ることができないか、PHPがログまたはキャッシュファイルに書き込むことができません。これは、ユーザーの許可とファイルシステムの許可が微妙な場合があるため、Macで特に一般的です。
-
ソリューション戦略:
- Webサイトのルートディレクトリ(
root
ディレクティブによって指されるディレクトリ)とその中のファイルとフォルダーが、NGINXを実行しているユーザー(通常_www
またはnobody
)が許可を読み取っていることを確認してください。 - PHPが書き込む必要があるディレクトリ(ログ、キャッシュなど)の場合、PHP-FPMを実行しているユーザーに書き込み許可があることを確認してください。最も簡単なラフな方法は
chmod -R 777
ですが、それはベストプラクティスではありません。より安全な方法は、chown -R _www:_www /path/to/your/project
、そしてchmod -R 755 /path/to/your/project
およびchmod -R 775 /path/to/your/project/cache_or_log_dir
です。
- Webサイトのルートディレクトリ(
3。PHP-FPMが実行されていないか、構成が不一致ではありません: NGINXにはfastcgi_pass
が設定されていますが、PHP-FPMは開始されていません。または、NGINXが指すFASTCGIアドレス(ポートまたはソケットパス)は、PHP-FPMの実際のリスニングと矛盾しています。
-
ソリューション戦略:
- PHP-FPMが開始されたかどうかを確認します。BREW
brew services list
php
またはphp@版本号
のステータスがstarted
かどうかを確認します。そうでない場合、brew services start php
。 - php-fpm構成ファイル(通常
/usr/local/etc/php/版本号/php-fpm.d/www.conf
)を確認し、listen
ディレクティブを見つけ、TCPポート(127.0.0.1:9000
)を聴いているかどうかを確認するか、Unixソケット(listen = /usr/local/var/run/php-fpm.sock
)。次に、nginx構成のfastcgi_pass
が正確に一致していることを確認します。
- PHP-FPMが開始されたかどうかを確認します。BREW
4。NGINX構成構文エラー: NGINX構成は非常に厳格です。小さなセミコロンが逃したか、ブラケットの不一致により、Nginxが開始されません。
-
ソリューション戦略: nginx構成を変更した後、最初に
nginx -t
コマンドを使用して、構成ファイルの構文が正しいかどうかをテストする必要があります。syntax is ok
あり、test is successful
場合、Nginxを自信を持って再起動できます。
5。 root
またはindex
ファイル構成エラー: nginxはWebサイトファイルを見つけることができない、またはindex.php
見つかりません。
-
解決策:
nginx.conf
のroot
指令によって指されたパスが正しいかどうかを再確認し、index
指令にindex.php
が含まれており、順序が正しいことを確認してください。
問題が発生した場合、最初のステップは、常にnginxのエラーログ(通常/usr/local/var/log/nginx/error.log
)とphp-fpmのログを確認することです。これらのログファイルは、何が間違っているのかを示します。それは、許可、ポートの競合、またはPHPコードエラーが不十分なためです。経験から、ロギングは問題を解決するための最良のガイドであることがわかります。
以上がNGINXとPHPサービスの組み合わせを構成するためにMACOSを使用してPHP Nginx環境を構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

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

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

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

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

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

目次EOSとは何ですか?プロジェクトバックグラウンドプロジェクトカテゴリ1。スマートコントラクトレイヤー-1インフラストラクチャ2。委任されたステークの証拠(DPOS)エコシステム3。Web3DAPPおよび開発者エコシステム戦略Ethereumのような従来のネットワークが直面するスケーラビリティを解決することを目指して、最も技術的に高度なブロックチェーンプラットフォームの1つとして認識されています

Huaxing CapitalのXu Kunは、2025年の第1四半期にプライマリ市場の投資量が月に下落したものの、AI Bigモデルと具体化されたインテリジェンスが資本の焦点となったことを指摘しました。同時に、市場の「28効果」が強調され、国有資産が資金調達を主導し、主要な機関の利点が強化され、中小規模の機関が圧力を受けていました。

ディレクトリsatlayerとは何ですか? Binance Alphaは、8月11日にオンラインに行く最初のSatlayer(Slay)になります

ラップトップサイレント?簡単なトラブルシューティングと解決!ラップトップは、毎日の仕事と勉強のための必須のツールですが、時には静かなトラブルに遭遇します。この記事では、ラップトップの沈黙の一般的な原因と解決策を詳細に分析します。方法1:最初にボリュームとオーディオ機器の接続を確認し、システムのボリューム設定が正常かどうかを確認します。ステップ1:タスクバーボリュームアイコンをクリックして、ボリュームスライダーがミュートされておらず、ボリュームが適切であることを確認します。ステップ2:ボリュームコントロールパネルで、「メインボリューム」と「マイク」ボリューム設定をチェックして、すべてのアプリケーションのボリュームが正しく調整されていることを確認します。ステップ3:ヘッドフォンまたは外部スピーカーを使用している場合は、デバイスが正しく接続されてオンになっていることを確認してください。方法2:オーディオドライバーによって時代遅れまたは破損したオーディオを更新またはリセットする

Apiversioninginphpcanbeectiveiveivementedusingurl、ヘッダー、orqueryparameterapproaches、withurlanderversioningbeingmostrecommended.1

CSSを使用して点線の境界線を作成し、境界属性を点線に設定するだけです。たとえば、「Border:3PXDotted#000」は、3ピクセル幅のブラックドットボーダーを要素に追加できます。境界線を調整することにより、ポイントのサイズを変更できます。より広い境界線はより大きなポイントを生み出します。 「Border-Top:2pxdottred」など、特定の側に点線の境界線を設定できます。点線の境界線は、Divや入力などのブロックレベルの要素に適しています。それらは、アクセシビリティを改善するために、フォーカス状態または編集可能な領域でよく使用されます。色のコントラストに注意してください。同時に、Dashedのショートラインスタイルとは異なり、点線は円形のドット形状を示します。この機能は、すべての主流ブラウザで広く使用されています。

theobserverdesignpatternablesablesはautomatic of dependentobjectswhenasubject'sstatechanges.1)itdefinesaone-to-manydependencybetweenobjects;

CSSリストスタイルを変更するには、最初にリストスタイルタイプを使用して弾丸または番号付けスタイルを変更します。 1.リストスタイルタイプを使用して、ULの弾丸をディスク、円、または正方形に設定し、OLの数は小数、下部アルファ、上部アルファ、下部ローマンまたはアッパーローマです。 2。リストスタイルでタグを完全に削除します:なし。 3.リストスタイルイメージ:url( 'bullet.png')を使用して、カスタム画像に置き換えます。 4。リストスタイルのポジションを使用します:in
