2016-08-24 22 views
1

我意識到這個問題已經被問了無數次,但儘管我想盡辦法落實到位的各種解決方案,許多人建議我還沒有解決我的問題:404錯誤與任何PHP文件,使用nginx的

沒有不管我做什麼,我網站上的任何php文件都會給我一個404錯誤。但是,html文件可以很好地工作。

我nginx.conf:

user www-data; 
worker_processes auto; 
pid /run/nginx.pid; 

events { 
     worker_connections 768; 
     # multi_accept on; 
} 

http { 
     sendfile on; 
     tcp_nopush on; 
     tcp_nodelay on; 
     keepalive_timeout 65; 
     types_hash_max_size 2048; 

     ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POOD$ 
     ssl_prefer_server_ciphers on; 

     access_log /home/****/websites/logs/access.log; 
     error_log /home/****/websites/logs/error.log; 

     include v-hosts/*.conf; 
     #### prevent processing requests with undefined server names 
     server { 
       listen 80; 
       server_name ''; 
       return 444; 
     } 


} 

我/etc/nginx/v-hosts/website.com.conf

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

    root /home/*****/websites/website.com/root; 
    index index.php index.html index.htm; 

    server_name website.com www.website.com; 

    location/{ 
     try_files $uri $uri/ =404; 
     root /home/****/websites/website.com/root; 
     index index.php index.html index.html; 
    } 

    error_page 404 /404.html; 
    error_page 500 502 503 504 /50x.html; 
    location = /50x.html { 
    root /home/****/websites/website.com/root; 
    } 

    location ~ \.php$ { 
     root /home/****/websites/website.com/root; 
     try_files $uri =404; 

     fastcgi_pass unix:/run/php7.0-fpm.sock; 
     fastcgi_index index.php; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     include fastcgi_params; 
     fastcgi_split_path_info ^(.+\.php)(/.+)$; 
     } 
} 
  • 我在php.ini中設置cgi.fix_pathinfo=0
  • 我有一個index.php以及一個info.php在/home/****/websites/website.com/root

謝謝

回答

1

我已經成功地固定我的問題!在訪問/home/****/websites/logs/error.log中的錯誤日誌後,我意識到我的路徑fastcgi_pass unix:/run/php7.0-fpm.sock;是錯誤的。我已將其更改爲fastcgi_pass unix:/run/php/php7.0-fpm.sock;,現在頁面正確顯示!

`