一次wordpress部署问题,SCRIPT_FILENAME 和 SCRIPT_NAME

一次部署wordpress时,使用了如下server配置:

server {
        listen 80;
        server_name  word.cn;
 
        root /Users/steven/workspace/wordpress;
        index index.php index.html index.htm;

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

        location ~ \.php$ {
                include fastcgi_params;
                fastcgi_pass unix:/usr/local/opt/php55/sock/php-fpm.sock;
        }
}

分别在服务器和开发机上部署,之后发现服务器上可以正常访问,开发机却死活不行,每次都是白页。
  服务器的系统是ubuntu,直接使用apt-get安装的nginx。

开发机是mac,使用brew安装。

最后无奈只好使用源码重新编译,打开了调试模式(--with-debug),经历一番折磨后,终于找到问题。

是因为fastcgi_params配置文件中的SCRIPT_FILENAME问题,使用源码和brew安装的nginx,fastcgi_params配置文件中是没有SCRIPT_FILENAME这个参数的,需要在server中自己填写,而在ubuntu中使用apt-get安装时是有的。

而要使用上面的wordpress的配置,则必须保证fastcgi_params文件中包含下面的配置:
  fastcgi_param SCRIPT_FILENAME $request_filename;
  否则fastcgi无法找到要执行的脚本文件。

你可能感兴趣的:(一次wordpress部署问题,SCRIPT_FILENAME 和 SCRIPT_NAME)