Nginx+PHP+PHPFPM环境搭建(2)-子目录API

上一篇文章记录了最基础的nginx+php-fpm的环境搭建,可以用浏览器访问一个demo的php返回phpinfo()信息,跑通了最基本的环境相当于helloword已经完成。这篇文章是记录怎么实现API的子目录,便于整理API,实现不同的请求。就像这样:

固定的配置

打开现在的nginx配置/usr/local/etc/nginx/nginx.conf,下面是比较关键的信息

这个配置是上篇文章贴过来的,第一块代码的root是html,这个html文件夹位于/usr/local/Cellar/nginx/1.10.1/html,root html中间没有斜线意味着是相对路径,也就是相对root路径下的html,root的绝对路径是/usr/local/Cellar/nginx/1.10.1/,也就是nginx安装的路径。

第二块代码的fastcgi_param里面的路径是/usr/local/Cellar/nginx/1.10.1/html,可以看到是绝对路径,写死了的。

那么这时候进入localhost/index.php是没问题的,会访问html文件夹里面的index.php,但是如果访问下面这些路径怎么办呢?难道每一个url都对应一块config代码么?

灵活的配置

解决这个问题就是要用到通配符了,我们想实现任何url路径都会自动的去找这个路径的文件夹,想找任何名字的php文件都会自动进行名字匹配,只要root确定,是可以实现的,直接贴配置

root api是什么

是api而不是/api,说明是相对路径,那么对应的绝对路径是root/api,也就是/usr/local/Cellar/nginx/1.10.1/api,可以看到这个api文件夹和html文件夹是平行的,这个api文件夹是我自己创建的,用来存php的接口文件。所以以后url如果访问的php文件那么默认都去这个api文件夹找

fastcgi_pass 127.0.0.1:9000是什么

是nginx这个Webserver和php-fpm通信的端口,用9000

fastcgi_index index.php是只能访问叫做index名字的php吗

不是的,访问test.php,xxx.php名字无所谓,这里index.php只是示意

fastcgi_param 后面是什么

后面的配置就可以根据输入的url自动的去找文件夹里面的php

这样就配置完了。

测试配置

下面简单测试一下,在/usr/local/Cellar/nginx/1.10.1/api这个文件夹里面创建user文件夹,user文件夹里面创建login文件夹,login文件夹里面创建test.php文件,test.php文件里面内容和前一篇文章一样,打印phpinfo(),浏览器访问localhost:80/user/login/index.php就可以看到结果了。这样的话不同的API对应不同的url就对应了不同的文件夹里面的.php文件了。