A. nginx 与 php 协同工作原理:
首先,nginx 的转发端口 与 php 的监听端口需一致。然后 nginx 将 http 请求映射成 fastcgi 请求,通过对应端口向 php 发送。php 获取并处理请求后,通过对应端口反馈给 nginx 处理后的数据,nginx 将数据输出到浏览器,一次 http 请求结束。
B. Nginx 变量访问控制:
http {
var1; # 变量1能够被 http 下所有的 server | location 块识别
server {
var2; # 变量2能够被所有的 location 块识别
location {
var3; # 变量3只能够被当前的 localtion 块识别
}
location {
}
}
server {
var2;
location {
var3;
}
location {
}
}
}
C. nginx.conf 配置文件:
server {
# 监听端口
listen 80;
# 指明具体的监听端口
listen 127.0.0.1:80;
server_name fuckyou.com;
charset utf-8;
# 注意下面这个 root !
root D:/Website/FrontToolLib;
# 目录访问设置
location / {
# 目录访问目标文件设置
index index.php index.html index.htm;
# 是否允许访问目录
autoindex on;
}
# PHP 文件访问设置
location ~ \.php$ {
# PHP fastcgi 程序监听端口
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
# 注意 $document_root
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
D. 注意点
E. 调试
nginx 常用命令,注意了:这些命令需要先切换到nginx目录下才能使用!即使你将其添加到了系统路径!
启动: start nginx
关闭: nginx -s stop
重载配置文件:nginx -s reload
php-cgi 常用命令:
php-cgi -b 127.0.0.1:9000 -c php.ini
-b:表明监听的端口(ip + port实际上就是为了唯一确定监听的端口号用的)
-c:表明加载的配置文件
启动 nginx:
启动 php(启动后不能关掉 cmd 窗口,否则 php 会被关闭):
测试:
E. 结语
以上内容属三个晚上研究得出,看仔细喽。