web-dev-qa-db-ja.com

nginxは200okステータスを表示しますが、ページをロードしません

私はubuntu16.04サーバーにnginx、php7.0-fpmとmysqlをインストールしました。すべて正常に動作しますが、phpmyadminのセットアップページは読み込まれません。以下は私のphpmyadminnginxブロックです。

location /phpmyadmin {
        root /usr/share/;
            index index.php index.html index.htm;
            location ~ ^/phpmyadmin/(.+\.php)$ {
                try_files $uri =404;
                #fastcgi_pass 127.0.0.1:9000;   
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
            include fastcgi_params;
            }
    }

以下は私のnginxアクセスログです

/usr/share# tail -f /var/log/nginx/access.log 
127.0.0.1 - - [15/Oct/2016:17:13:06 +0530] "GET /phpmyadmin/setup/index.php HTTP/1.1" 200 31 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0"
127.0.0.1 - - [15/Oct/2016:17:13:06 +0530] "GET /phpmyadmin/setup/index.php HTTP/1.1" 200 31 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0"
127.0.0.1 - - [15/Oct/2016:17:13:41 +0530] "GET /phpmyadmin/setup/index.php HTTP/1.1" 200 31 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0"
127.0.0.1 - - [15/Oct/2016:17:13:44 +0530] "GET /phpmyadmin/setup/index.php HTTP/1.1" 200 31 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0"
127.0.0.1 - - [15/Oct/2016:17:13:46 +0530] "GET /phpmyadmin/setup/index.php HTTP/1.1" 200 31 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0"
127.0.0.1 - - [15/Oct/2016:17:13:46 +0530] "GET /phpmyadmin/setup/index.php HTTP/1.1" 200 31 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0"
127.0.0.1 - - [15/Oct/2016:17:13:47 +0530] "GET /phpmyadmin/setup/index.php HTTP/1.1" 200 31 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0"
127.0.0.1 - - [15/Oct/2016:17:13:47 +0530] "GET /phpmyadmin/setup/index.php HTTP/1.1" 200 31 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0"
127.0.0.1 - - [15/Oct/2016:17:21:26 +0530] "GET /phpmyadmin/setup/index.php HTTP/1.1" 200 31 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0"
127.0.0.1 - - [15/Oct/2016:17:21:28 +0530] "GET /phpmyadmin/setup/index.php HTTP/1.1" 200 31 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0"

Nginxエラーログに何もありません。 php7.0-fpmも正常に実行されています。以下は同じログ抽出です。

 tail -f /var/log/php7.0-fpm.log 
[15-Oct-2016 17:09:48] NOTICE: fpm is running, pid 17062
[15-Oct-2016 17:09:48] NOTICE: ready to handle connections
[15-Oct-2016 17:09:48] NOTICE: systemd monitor interval set to 10000ms
[15-Oct-2016 17:21:10] NOTICE: Terminating ...
[15-Oct-2016 17:21:10] NOTICE: exiting, bye-bye!
[15-Oct-2016 17:21:11] NOTICE: configuration file /etc/php/7.0/fpm/php-fpm.conf test is successful

[15-Oct-2016 17:21:11] NOTICE: fpm is running, pid 17297
[15-Oct-2016 17:21:11] NOTICE: ready to handle connections
[15-Oct-2016 17:21:11] NOTICE: systemd monitor interval set to 10000ms

Php-fpmリッスンモードをローカルホストポート9000からphp.sockに変更しようとしたので、これに関する専門家のアドバイスが必要です。同じことがphpmyadminnginxブロック設定でも見られます。

4
Shailesh Sutar

Phpmyadminの追加を除いて、通常、/etc/nginx/sites-available/defaultファイルはPHPを処理するために、次のようになります。

# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;

server_name _;

location / {
  # First attempt to serve request as file, then
  # as directory, then fall back to displaying a 404.
  try_files $uri $uri/ =404;
}

# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
  include snippets/fastcgi-php.conf;

  # With php-fpm (or other unix sockets):
  fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}
# deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    # deny all;
    #}
  }

したがって、ブラウザで.phpファイルを開くと、このlocationディレクティブはファイル.phpを含むfastcgi-php.confファイルを処理し、phpスクリプトをphp7.0-fpmに渡します。

Nginx構成ファイルに変更を加えた直後に、Sudo nginx -tのように構成ファイルをテストします。問題がなければ、次の出力が表示されます。

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

次に、Sudo service nginx reloadと入力します

このスニペットを含むghi.phpファイルを追加することで、テストできます。

<?php
phpinfo();
?>

cd /var/www/htmlに行きたいのですが、そこからSudo vim ghi.phpを実行できます。

次に、<server-ip-address>/ghi.phpに移動します。何も表示されない場合、サーバーはまだphpを処理していません。

2
Daniel