thinkphp5 的 nginx 配置文件
来源:互联网 发布:页面加载执行js方法 编辑:程序博客网 时间:2024/05/16 09:34
首先我们假定几个条件:
1,配置文件使用vhost方式,如果单主机的酌情修改;
2,假定配置的域名是 mydomain.vm;
3,假定用户使用的是 linux 操作系统;
4,假定项目文件部署在 /app/www/mydomain.vm 目录下;
5,假定 nginx 的日志放在 /app/logs/nginx 目录下。
下面是配置文件的具体内容:
server { listen 80; server_name mydomain.vm www.mydomain.vm; access_log /app/logs/nginx/mydomain_access.log; error_log /app/logs/nginx/mydomain_error.log; set $root /app/www/mydomain.vm/public; location ~ .*\.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ { root $root; } location / { root $root; index index.html index.php; if ( -f $request_filename) { break; } if ( !-e $request_filename) { rewrite ^(.*)$ /index.php/$1 last; break; } } location ~ .+\.php($|/) { set $script $uri; set $path_info ""; if ($uri ~ "^(.+\.php)(/.+)") { set $script $1; set $path_info $2; } fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_index index.php?IF_REWRITE=1; fastcgi_param PATH_INFO $path_info; fastcgi_param SCRIPT_FILENAME $root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $script; include fastcgi_params; }}
复制代码
关于配置文件的几个需要关注的地方:
1,如果用户没有修改过 nginx 初始的 log 文件路径,那么通常是在 /var/logs/nginx 目录下,修改一下这个配置文件中对应的部分即可;
2,配置文件中做了动静分离,但是考虑到开发环境经常需要变动静态内容,所以没有设置缓冲,如果需要的话,在静态解析部分增加 expires 指令即可;
3,以上配置文件在 debian / ubuntu 发行版中可以直接使用,如果是在 centos / gentoo 这样的发行版中可能需要略作调整;
4,配置文件中直接使用了 php7.0 的 fpm 方式,如果是 5.4/5.6 版本,对应修改一下 fastcgi_pass 的参数,需要提醒的是 5.4/5.6 的 .sock 很可能路径是在 /run 下面,而不是 /run/php 下面。
当然,如果大家使用的是 debian 发行版的话,这个配置文件可以直接放置在项目工程目录里面,然后再在 /etc/nginx/sites-enabled 目录下做一个链接即可,例如:
#cd /etc/nginx/sites-enabled#ln -s /app/www/mydomain.vm/profile/nginx_vhost_profile ./01_mydomain#nginx -s reload
复制代码
就可以生效了。
=========华丽的分割线=========
2016-7-13补充:
在新版的nginx下面,上面的配置会出现一点问题,主要是 path_info 在某些情况下会取到错误的值,导致 tp5 框架误认为模块名为 ‘E’。
下面提供的是最新版本的配置文件,适用于最新版的 nginx。实测已经解决了这个问题。
server { listen 80; server_name mydomain.vm www.mydomain.vm; access_log /app/logs/nginx/mydomain_access.log; error_log /app/logs/nginx/mydomain_error.log; set $root /app/www/mydomain.vm/public; location ~ .*\.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ { root $root; } location / { root $root; index index.html index.php; if ( -f $request_filename) { break; } if ( !-e $request_filename) { rewrite ^(.*)$ /index.php/$1 last; break; } } location ~ .+\.php($|/) { fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_split_path_info ^((?U).+.php)(/?.+)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $root$fastcgi_script_name; include fastcgi_params; }}
- thinkphp5 的 nginx 配置文件
- thinkphp5.0 在nginx下的配置
- Nginx下ThinkPHP5的配置方法详解
- ThinkPHP5添加用户配置文件
- Nginx的配置文件nginx.conf
- thinkphp5 nginx 配置
- win nginx thinkphp5 配置
- thinkphp5配置nginx访问
- nginx的配置文件
- 【转】nginx的配置文件
- Nginx的配置文件说明
- Nginx的配置文件解析
- nginx的配置文件
- nginx/tengine 的配置文件
- NGINX的配置文件解析
- NGINX 的配置文件说明
- Nginx的配置文件
- nginx日志的配置文件
- 后缀自动机(SAM)模板
- Kafka集群搭建(使用kafka自带的zookeeper)
- PHP简介及工作原理
- 【Scikit-Learn 中文文档】把它们放在一起
- BBB学习(二):BBB介绍
- thinkphp5 的 nginx 配置文件
- 机器学习之决策树 Decision Tree(一)
- 网络编程
- 我自己收藏的web前端网站(持续更新中...)
- LOJ6008 「网络流 24 题
- ztree 总结
- ViewGroup 自定义演示
- 【Scikit-Learn 中文文档】寻求帮助
- java类加载器