質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.78%

php-fpmでphpが表示されない

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 183

score -2

現在nginxを使いPHP-fpm から PHPアプリを表示しようと思い実装していますが、File not findと出ます
簡単な構成ですが、メインはRailsアプリになっており、サブディレクトリにPHPアプリを入れている形です

エラーログ
[error] 1874#0: *191 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 114.160.221.2, server: http://xxxxxx.com/, request: "GET /bank/ HTTP/1.1", upstream: "fastcgi://unix:/run/php-fpm/www.sock:", host: "xxxxxxx.com"

nginx側の設定

/etc/nginx/nginx.conf

user ec2-user;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;
    server_tokens off;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

    upstream unicornapp {
            server unix:/var/www/railsapp/tmp/unicorn.sock;
    }
}

/etc/nginx/conf.d/app.conf

error_log   /home/ec2-user/environment/var/log/nginx.error.log;
access_log  /home/ec2-user/environment/var/log/nginx.access.log;
upstream unicorn_server {
    server unix:home/ec2-user/environment/var/www/diy/tmp/sockets/.unicorn.sock;
}

server {
    listen 80;
    client_max_body_size 4000M;
    server_name http://xxxxxx.com/;
    keepalive_timeout 5;
    proxy_max_temp_file_size 0;

    root home/ec2-user/environment/var/www;
    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        if (!-f $request_filename) {
                proxy_pass http://unicorn_server;
                break;
        }
    }
    location /bank/ {
        alias  /home/ec2-user/environment/var/www/php/public/;
        index index.php;
        try_files $uri $uri/ /index.php;

    }
    location ~ /bank/(.+\.php)$ {
        alias          /home/ec2-user/environment/var/www/php/public/;
        fastcgi_pass   unix:/run/php-fpm/www.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME    /home/ec2-user/environment/var/www/php/public/$1;

        include fastcgi_params;
        allow all;
    }
}

/etc/nginx/conf.d/php-fpm.conf

upstream php-fpm {
        server unix:/run/php-fpm/www.sock;
}

php-fpm側

/etc/php-fpm.d/www.conf

; Start a new pool named 'www'.
; the variable $pool can we used in any directive and will be replaced by the
; pool name ('www' here)
[ec2-user]
user = nginx
group = nginx

listen = /run/php-fpm/www.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0666

現状の設定は上記のようになっております

エラーログからも読み取れるように、fastcgiが上手くできていないと思い

location ~ /bank/(.+\.php)$ {
        alias          /home/ec2-user/environment/var/www/php/public/;
        fastcgi_pass   unix:/run/php-fpm/www.sock;
        fastcgi_index  index.php;
      - fastcgi_param  SCRIPT_FILENAME    /home/ec2-user/environment/var/www/php/public/$1;
      + fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
        include fastcgi_params;
        allow all;
    }

このように変更を加えてみたり、ディレクトリを変えてみたり等しました

同一ディレクトリ内のhtmlファイルは正常に表示されており、試しにphp-fpmをストップさせ
htmlを開いたときも正常に表示できていた為、php-fpm側に原因がありそうという状態です

どこの情報が必要か分からなかったので、現在操作している箇所をあげさせてもらってます

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

check解決した方法

0

自己解決しました
fastcgi_paramの記載順に問題があったようでした

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.78%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る