2016-05-18 15 views
2

私はこの問題の潜在的な解決策を何十回も見てきましたが、何か問題が見つかることはありません。基本的に、PHPファイルは私のNginX + PHP_fpm + Ubuntu 14サーバでは実行されません。私はすべてのパッケージを持っており、実行しています。私はブラウザのキャッシュなどをクリアしましたが、まだ何も働いていません。私はすべての助けに感謝します!NginXがPHPを実行していません

現在のところ、PHPファイルにアクセスしようとすると、GETはHTMLファイルとして返しますが、スクリプトは実行しません。ここで

は私のnginx.confファイルです:

worker_processes 1; 
worker_rlimit_nofile 8192; 

events { 
worker_connections 3000; 
} 

error_log /var/log/nginx/error.log warn; 
pid  /var/run/nginx.pid; 

http { 
    include  /etc/nginx/mime.types; 
    #default_type application/octet-stream; 
    default_type text/html; 

    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; 

    sendfile  on; 
    #tcp_nopush  on; 

    keepalive_timeout 65; 

    #gzip on; 

    include /etc/nginx/conf.d/*.conf; 
    include /etc/nginx/sites-enabled/*; 
} 

ここに私の/サイト利用可能/ defaultファイルされる:

## 
# You should look at the following URL's in order to grasp a solid understanding 
# of Nginx configuration files in order to fully unleash the power of Nginx. 
# http://wiki.nginx.org/Pitfalls 
# http://wiki.nginx.org/QuickStart 
# http://wiki.nginx.org/Configuration 
# 
# Generally, you will want to move this file somewhere, and start with a clean 
# file but keep this around for reference. Or just disable in sites-enabled. 
# 
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples. 
## 

# Default server configuration 
# 
server { 
    listen 80 default_server; 
    listen [::]:80 default_server ipv6only=on; 

    # SSL configuration 
    # 
    # listen 443 ssl default_server; 
    # listen [::]:443 ssl default_server; 
    # 
    # Note: You should disable gzip for SSL traffic. 
    # See: https://bugs.debian.org/773332 
    # 
    # Read up on ssl_ciphers to ensure a secure configuration. 
    # See: https://bugs.debian.org/765782 
    # 
    # Self signed certs generated by the ssl-cert package 
    # Don't use them in a production server! 
    # 
    # include snippets/snakeoil.conf; 

    root /usr/share/nginx/html; 

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

    server_name localhost; 

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

    error_page 404 /404.html; 
     error_page 500 502 503 504 /50x.html; 
     location = /50x.html { 
       root /usr/share/nginx/html; 
     } 

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
    # 
    location ~ \.php$ { 
     try_files $uri =404; 
     include snippets/fastcgi-php.conf; 

     # With php5-cgi alone: 
     #fastcgi_pass 127.0.0.1:9000; 
     # With php5-fpm: 
     #fastcgi_split_path_info ^(.+\.php)(/.+)$; 
     fastcgi_pass unix:/var/run/php5-fpm.sock; 
     #fastcgi_index index.php; 
     include fastcgi_params; 
    } 

    # deny access to .htaccess files, if Apache's document root 
    # concurs with nginx's one 
    # 
    #location ~ /\.ht { 
    # deny all; 
    #} 
} 


# Virtual Host configuration for example.com 
# 
# You can move that to a different file under sites-available/ and symlink that 
# to sites-enabled/ to enable it. 
# 
#server { 
# listen 80; 
# listen [::]:80; 
# 
# server_name example.com; 
# 
# root /var/www/example.com; 
# index index.html; 
# 
# location/{ 
#  try_files $uri $uri/ =404; 
# } 
#} 

ここでは、私のサーバーのconfファイルである:

server { 

    listen 8000 default_server; 

    listen [::]:8000 default_server ipv6only=on; 

    root /var/www/html; 
    #index index.php index.html index.htm; 

    #location/{ 

    #index index.php index.html index.htm; 

    #} 
} 

ご覧のとおり、私はこれらのファイルで遊んでいます。しかし、役に立たない。

+0

エラーログ(/var/log/nginx/error.log)は何を表していますか? cgi /var/log/nginx/error.logをgrepして何がポップアウトするかを確認することができます。私はそこにあなたの答えを見つけるでしょう。 – Sean

+0

PHPファイルを読み込もうとすると、エラーログが表示されません。 –

+0

リクエストしているURLは何ですか? – Sean

答えて

1

私たちのコメントに基づいて、このセクションをリッスンしているサーバー設定のnginx設定に追加する必要があります。

正規表現は、ファイルが.phpで終わるURLを要求するたびに、そのファイルをfastcgiプロセスに送信するようにnginxに指示します。それ以外の場合は、デフォルトで/ var/www/htmlにマッチする生ファイルを返すことになります。

希望に役立ちます。

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
# 
location ~ \.php$ { 
    try_files $uri =404; 
    include snippets/fastcgi-php.conf; 

    # With php5-cgi alone: 
    #fastcgi_pass 127.0.0.1:9000; 
    # With php5-fpm: 
    #fastcgi_split_path_info ^(.+\.php)(/.+)$; 
    fastcgi_pass unix:/var/run/php5-fpm.sock; 
    #fastcgi_index index.php; 
    include fastcgi_params; 
} 
+0

が働いた!ありがとうございました!彼らは、デフォルトでロケーションブロックが実行されていなかったということが重要でした。それを実際の設定ファイルに移動することでそれを修正しました。 –

関連する問題