ホームページ > バックエンド開発 > PHPの問題 > mac nginx が php を解析しない場合はどうすればよいですか?

mac nginx が php を解析しない場合はどうすればよいですか?

藏色散人
リリース: 2023-03-11 19:06:02
オリジナル
2696 人が閲覧しました

Mac nginx が php を解析しない場合の解決策: 1. 正しい名前の新しいファイルを cp します; 2. コマンド「php-fpm --fpm-config...」を実行します; 3. ファイルを cp しますwww .conf ファイルという名前; 4. ソリューション プロセスを終了します。

mac nginx が php を解析しない場合はどうすればよいですか?

この記事の動作環境:macOS10.15システム、PHP7.1バージョン、MacBook Air 2019コンピュータ

mac nginx php が解析されない場合はどうすればよいですか?

nginx で php をデプロイするときに Mac が遭遇する落とし穴

ある人から Web サイトのデプロイを手伝ってほしいと頼まれ、まずローカル nginx でデバッグしたいと思いました。最初、ページを開いたとき、403 と表示されました。これは以前にも見たことがあり、nginx の権限の問題でした。権限を変更した後、PHP ページにアクセスすると、解析せずに直接ダウンロードされることがわかりました。私のPCにPHP環境がないことを思い出し、PHPをダウンロードしましたが、やはり同じ症状でした。つまり、私はPHPにあまり詳しくないため(以前はxamppなどのソフトウェアを使用していました)、完了するまでに時間がかかりました。

最初に理解すべきことは、nginx 自体は PHP を処理できないということです。これは単なる Web サーバーです。フロントエンドが PHP を要求すると、nginx は処理のためにインターフェイスを PHP インタープリターに送信してから返す必要があります。結果をフロントエンドに送信します。通常、nginx はリクエストを fastcgi 管理プロセスに送信して処理します。たとえば、nginx の設定:

location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;#这里原来不是$document_root,搞得我很蒙,还好网上查到改好了,不然会报file not found
    include        fastcgi_params;
}
ログイン後にコピー

したがって、fastcgi を開始するには、php-fpm がここで使用されます。これは php fastcgi マネージャーであり、php 言語にのみ使用されます (古いバージョンの php は、 php-fpm を別途ダウンロードしてください。私が使用している php-fpm にはこれが統合されています)。

ここには奇妙な質問がたくさんあります。

  • php-fpm の初回実行

失敗: /private/etc/php-fpm.conf ファイルが見つかりません。

解決策: ただし、このディレクトリには php-fpm.conf.default ファイルがあるため、正しい名前の新しいファイルを作成します

  • ##php-fpm を 2 回目に実行します

失敗: /usr/var/log/php-fpm.log

解決策: そのようなディレクトリはまったくありません。conf ファイルで変更しました。しかたがないので、以下のコマンドで php-fpm を実行するしかありません (このコマンドは後で実行します)

php-fpm --fpm-config /private/etc/php-fpm.conf  --prefix /usr/local/var
ログイン後にコピー

  • Run php-fpm for the 3 回目

  • Failed: No pool defined. at least one pool section must be specified in config file
    ログイン後にコピー
解決策: /etc/php-fpm.d/ ディレクトリに移動すると、www.conf.default ファイルがあり、www.conf## という名前のファイルを cp します。

    #4 番目の php-fpm の初回実行
  • 失敗: ポートが占有されています

解決策: このプロセスを強制終了します

sudo lsof -i tcp:9000#占有ポートを探す ポート9000のプロセス番号

#kill -9 port#Kill!

php-fpm を 5 回目に実行します
  • ## 成功しました。

  • ##補足:

nginx で設定する場合は少し違いがあり、Mac では php-fpm は 9000 ポートを直接リッスンしますが、サーバーでは php7 をリッスンします。 0. -fpm.sock ですがソケット ファイルです。この方法の方が高速な場合があるため、php

を正常に実行するには、nginx の php 設定の

fastcgi_pass 127.0.0.1:9000;
ログイン後にコピー

を次のように変更する必要があります。

推奨学習: 「

PHP ビデオ チュートリアル

引き続き追加

非常に興味深い内容なので、ビデオをアップロードしたいと思います。 27 分、nginx は 413 Request Entity Too Large を直接報告しましたが、設定しませんでした...

それを nginx 設定に追加します (set-enabled/default)

fastcgi_pass unix:/run/php/php7.0-fpm.sock;
ログイン後にコピー
設定を読み直して、サーバーを再起動します

server {
    ...
    client_max_body_size 80m;
    ...
}
ログイン後にコピー

次に、php.ini を変更してその中の 2 つの構成を変更する必要があります

nginx -s reload
service nginx restart
ログイン後にコピー

次に、php-fpm プロセスをオフにして再起動します~

ps : 先生 本当に全然調べてないんですが…mp4はアップロードできませんが、このタイプはシステムに追加されていません。これは自分で探すしかありません…不快です:(

note : ubuntu では apt を使用することがより推奨されるようになりました。apt-get ではありません…だから、変更する時期が来ました!

以上がmac nginx が php を解析しない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート