如何正确配置 Nginx+PHP
假设我们用PHP实现了一个前端控制器,或者直白点说就是统一入口:把PHP请求都发送到同一个文件上,然后在此文件里通过解析「REQUEST_URI」实现路由。
一般这样配置
-
server {
-
listen 80;
-
server_name foo.com;
-
-
root /path;
-
-
location / {
-
index index.html index.htm index.php;
-
-
if (!-e $request_filename) {
-
rewrite . /index.php last;
-
}
-
}
-
-
location ~ \.php$ {
-
include fastcgi_params;
-
fastcgi_param SCRIPT_FILENAME /path$fastcgi_script_name;
-
fastcgi_pass 127.0.0.1:9000;
-
fastcgi_index index.php;
-
}
-
}
这里面有很多错误,或者说至少是坏味道的地方,大家看看能发现几个。
Nginx配置文件分为好多块,常见的从外到内依次是「http」、「server」、「location」等等,缺省的继承关系是从外到内,也就是说内层块会自动获取外层块的值作为缺省值。