如何正确配置 Nginx+PHP

来源:互联网 发布:windows isa 编辑:程序博客网 时间:2024/05/20 09:43

摘要: 如何正确配置 Nginx+PHP 对很多人而言,配置Nginx+PHP无外乎就是搜索一篇教程,然后拷贝粘贴。听上去似乎也没什么问题,可惜实际上网络上很多资料本身年久失修,漏洞百出,如果大家不求甚解,一味的拷贝粘贴,早晚有一天会为此付出代价。

如何正确配置 Nginx+PHP




对很多人而言,配置Nginx+PHP无外乎就是搜索一篇教程,然后拷贝粘贴。听上去似乎也没什么问题,可惜实际上网络上很多资料本身年久失修,漏洞百出,如果大家不求甚解,一味的拷贝粘贴,早晚有一天会为此付出代价。

假设我们用PHP实现了一个前端控制器,或者直白点说就是统一入口:把PHP请求都发送到同一个文件上,然后在此文件里通过解析「REQUEST_URI」实现路由。

一般这样配置

此时很多教程会教大家这样配置Nginx+PHP:

  1. server {
  2. listen 80;
  3. server_name foo.com;
  4. root /path;
  5. location / {
  6. index index.html index.htm index.php;
  7. if (!-e $request_filename) {
  8. rewrite . /index.php last;
  9. }
  10. }
  11. location ~ \.php$ {
  12. include fastcgi_params;
  13. fastcgi_param SCRIPT_FILENAME /path$fastcgi_script_name;
  14. fastcgi_pass 127.0.0.1:9000;
  15. fastcgi_index index.php;
  16. }
  17. }

这里面有很多错误,或者说至少是坏味道的地方,大家看看能发现几个。

我们有必要先了解一下Nginx配置文件里指令的继承关系:

Nginx配置文件分为好多块,常见的从外到内依次是「http」、「server」、「location」等等,缺省的继承关系是从外到内,也就是说内层块会自动获取外层块的值作为缺省值。


原文链接