server {
listen 80;
#所有文件放到/var/www/html/xxx目录,而index.php入口文件,及其他静态文件放到/var/www/html/xxx/Html
#这样可以确保其他类文件不会被访问到。
root /var/www/html/xxx/Html;
index index.php index.html index.htm;
server_name www.xxx.com xxx.com;
location / {
#第二个 $uri/ 代表如果访问不到文件,那可以尝试访问目录。(会自动查找目录内的index文件)
#如果写成/index.php?s=$uri 也可以,但是会导致 /Home/Index/Show?id=1的id参数获取不到。
#$query_string漏了也会导致上一行的问题
try_files $uri $uri/ /index.php$uri?$query_string;
}
#如果写成location ~ \.php$ { 的形式,会导致/index.php/Home/Index/Show这种路径识别成目录,然后目录不存在,又重新定向到index的死循环。
#一定要写成如下 php($|/) 的形式。
location ~ \.php($|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
#PATH_INFO 参数是有用的
fastcgi_param PATH_INFO $fastcgi_path_info;
#这一行根据实际情况配,另TP3.2在PHP7.1下完美运行
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。