1. ホーム
  2. リナックス

LNMP 環境の設定にエラーが発生しました。アップストリームからの応答ヘッダを読み込む際に「Primary script unknown」と表示されました。

2022-02-28 09:40:35
<パス

今日の午後は、LNMPの環境構築。N、M、Pは正常にインストールされ、静的ページも正常で、最後のステップだけ、とても疲れてブロックされた。


1. wget を使ってローカルマシンから php ページを取得すると、ステータスコード 404 が返されます。
2. 以下のようにエラーログを検索してください(拡大して見ることができます)。

3. ネットで紹介されているエラーの解決方法を全て試しましたが、ほとんどが貼り付けコピーで、言われていることは、Nginxの設定ファイルを修正して、スクリプトファイルの呼び出しが定義されている場所を探し、次のコードを修正することです。

location / {
root /usr/local/nginx/html;
index index.php index.html index.htm;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

結果はやはりうまくいかず、404エラーになってしまいました。
4. 静的ページの解析は問題ないので、NginxとPHPの組み合わせであるFastCGIの問題でしょう、PHPのサービスphp-fpmを確認します。

#ps -ef|grep php-fpm

<イグ
赤ペンで囲った部分は、デフォルトのユーザーがnobodyであった場合です(nobodyのユーザーは多くの特権を持つべきではありません)。通常のユーザは Nginx プロセスと同じであるべきです。

5. php-fpm プロセスのユーザーとユーザーグループを変更してみてください。

#vi /application/php/etc/php-fpm.d/www.conf
This is the path to the php-fpm configuration file on my server (I compiled and installed it)

ユーザーを検索する = nobody
およびグループ = nobody
これをHoNginxと同じユーザー(私の場合はchenxuliang)に変更し、以下のようにします。

次にphp-fpmサービスを再起動します、(私はコンパイルしてインストールしました、私はサービスを再起動する方法がわかりません、コマンドps -efを使用してphp-fpmプロセス番号を見つけ、それを殺す、コマンド#kill -9 process_id、次に/application/php/sbin/php-fpmを実行して、サービスを開始、これは(これは私の環境ではパスです)に注意してください。

6. テスト。linuxでローカルにwgetを実行するか、ブラウザでphpファイルを取得し、正常にパースされるか確認します。以下はその画像です。