Ubuntu

下載 PHP 文件而不是使用 nginx try_files 執行

  • January 14, 2015

我正在使用 Ubuntu 14.10、nginx 1.6.2、php 5.5.12。我有一個這樣的網站設置:

server {
   root /usr/share/nginx/www/oliviataussig;
   index index.php;

   server_name oliviataussig.com www.oliviataussig.com;

   location / {
       try_files $uri $uri/ /index.php =404;
   }

   location ~ \.php$ {
       try_files $uri =404;
       include fastcgi.conf;
       fastcgi_pass unix:/var/run/php5-fpm.sock;
   }
}

當我轉到首頁(index.php)時,它工作正常。但是,當我點擊頁面上的任何連結(這是一個類似 WordPress 的 CMS)時,我想退回到/index.php,它會這樣做,但index.php會被下載而不是執行。我該如何解決?

正如 Hrvoje 建議的那樣,Wordpres -> Nginx codex 給出了大多數可能情況的範例(http://codex.wordpress.org/Nginx

在您的情況下,配置文件應如下所示:

server {
   root /usr/share/nginx/www/oliviataussig;
   index index.php;

   server_name oliviataussig.com www.oliviataussig.com;

   location / {
       try_files $uri $uri/ /index.php?$args;
   }

   # Add trailing slash to */wp-admin requests.
   rewrite /wp-admin$ $scheme://$host$uri/ permanent;


   # Pass all .php files onto a php-fpm/php-fcgi server.
   location ~ [^/]\.php(/|$) {
       fastcgi_split_path_info ^(.+?\.php)(/.*)$;
       if (!-f $document_root$fastcgi_script_name) {
           return 404;
       }
       include fastcgi.conf;
       fastcgi_pass unix:/var/run/php5-fpm.sock;
   }
}

引用自:https://serverfault.com/questions/645667