2011-09-12 19 views
1

ubuntu 11でphp-fpm(php v 5.3.5)でnginxを設定しようとしています.nginxとphp5-fpmの両方がwww-dataとして動作するように設定されています。 nginxはhtmlファイルを提供するように見えますが、PHPファイルは提供されていません(ログファイルは404エラーを生成します)。 php5-fpmは、nginxが接続しようとしているのと同じポート(9000)で稼働しています。設定ファイルは以下のようにコピーされます。ファイルは/ var/wwwにあります(www-dataには、そのディレクトリ内のすべてのファイルに対する読み取り/書き込みアクセス権があります)。ubuntuのnginx&php5-fpmの設定支援

php5-fpmがnginxからの要求を正しく受信しているかどうか、不正な権限/不正な設定ファイルの場所が原因で要求を処理できないかどうかを調べるには、この問題のトラブルシューティングを行うにはどうすればよいですか。

ご協力いただければ幸いです。

nginx.confファイル:

user www-data; 

    worker_processes 4; 

    pid /var/run/nginx.pid; 

events { 
    worker_connections 768; 

} 

http 

{ 

    include mime.types; 

    sendfile on; 

    tcp_nopush on; 

    tcp_nodelay on; 

    keepalive_timeout 65; 

    types_hash_max_size 2048; 

    # server_tokens off; 

    server_names_hash_bucket_size 64; 

    # server_name_in_redirect off; 

    include /etc/nginx/mime.types; 

    default_type application/octet-stream; 


    access_log /var/log/nginx/access.log; 
    error_log /var/log/nginx/error.log; 

    gzip on; 
    gzip_disable "msie6"; 
    gzip_comp_level 2; 
    gzip_proxied any; 
    gzip_http_version 1.1; 
    gzip_buffers 16 8k; 
    gzip_types text/plain text/css text/javascript application/json application/x-javascript text/xml application/xml application/xml+rss; 
    include /etc/nginx/conf.d/*.conf; 
    include /etc/nginx/sites-enabled/*; 
} 

サイトのデフォルトファイル(利用可能/有効)フォルダ:

default 

server 

{ 

    listen 80; 

    server_name localhost; 

    access_log /var/log/nginx/localhost.access.log; 

    location/{ 
     root /var/www; 

     index index.html index.php; 

     try_files $uri $uri/ /index.php?q=$uri&$args; 

    } 


    location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ { 

     access_log  off; 

     expires   30d; 

     root /var/www; 

    } 



## Disable viewing .htaccess & .htpassword 
    location ~ /\.ht { 

     deny all; 

    } 

include php.conf; 

} 

nginxのディレクトリ内のphp.configファイル:

fastcgi_intercept_errors on; 


location ~ \.php$ 

{ 

    fastcgi_split_path_info ^(.+\.php)(/.+)$; 

    fastcgi_param PATH_INFO   $fastcgi_path_info; 

    fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; 

    fastcgi_param QUERY_STRING  $query_string; 

    fastcgi_param REQUEST_METHOD $request_method; 

    fastcgi_param CONTENT_TYPE  $content_type; 

    fastcgi_param CONTENT_LENGTH $content_length; 

    fastcgi_param SCRIPT_NAME  $fastcgi_script_name; 

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 

    fastcgi_param REQUEST_URI  $request_uri; 

    fastcgi_param DOCUMENT_URI  $document_uri; 

    fastcgi_param DOCUMENT_ROOT  /var/www; 

    fastcgi_param SERVER_PROTOCOL $server_protocol; 

    fastcgi_param GATEWAY_INTERFACE CGI/1.1; 

    fastcgi_param SERVER_SOFTWARE nginx; 

    fastcgi_param REMOTE_ADDR  $remote_addr; 

    fastcgi_param REMOTE_PORT  $remote_port; 

    fastcgi_param SERVER_ADDR  $server_addr; 

    fastcgi_param SERVER_PORT  $server_port; 

    fastcgi_param SERVER_NAME  $server_name; 

    fastcgi_read_timeout 600; # Set fairly high for debugging 

    fastcgi_pass 127.0.0.1:9000; 

    fastcgi_index index.php; 

} 

のphp5-FPMのログファイル出力:

configuration file /etc/php5/fpm/main.conf test is successful 

nginxのからのログファイルの出力:

"GET /index.php HTTP/1.1" 404 31 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.220 Safari/535.1" 

答えて

1

サーバーブロックに、php5-fpm以上のPHPファイルを渡すためのビットがありません。

location ~ .php$ { 
    include /etc/nginx/fastcgi_params; 
    fastcgi_pass 127.0.0.1:9000; 
    fastcgi_index index.php; 
    fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name; 
} 

this toolを使用してみてください、新しいサーバブロック(/site-enabledのビット)を書き込みます。

+0

ありがとうございます –