【thinkphp 5 在nginx 环境下路由无法生效(404 500错误 )的解决方法】
非常惭愧的说,由于之前一直使用的是windowservice,安装apache来进行服务器布置的,这种方式也是最简单最直接的方式,
但是由于php的服务大多都是linux栈的,咱们也不能落后呀,在写了php半年之后,开始拥有的自己的第一台centos的服务器,
实话说,centos真的是简洁,部署完成 php ,mysql,nginx,ftp之后只是使用的1g的空间,服务器开启的时候cpu占用率还不到3%【1核1G20g最低配服务器】
原本是想先把这个服务器当做api服务器来使用,于是选用的了(传说中适合api 的 thinkphp 框架)
一起准备就绪,选择最新的稳定版tp5,下载,配置域名,文件入口,隐藏路径……
写完第一个controller 发现,卧槽,
404了?
仔细阅读文档,没毛病呀
tp5已经默认url_model是兼容模式了呀,为什么还是访问不到呢?
万能的百度让我发现很多人都是这种问题,但是 很多都是tp5以前的版本,配置文件写起来不一致,错误了n次
于是自己找文件,仔细阅读:
参考文献:http://www.9958.pw/post/nginx_config
重点
我发现:
由于nginx不支持pathinfo导致在thinkphp使用

访问的时候会出现404错误,
这个时候你要看看自己的nginx的config文件
location ~ \.php${
fastcgi_psaa 127.0.0.1:10000;
include fastcgi.conf
}
这是我的config文件
配置也是极其简单,这个时候我们要逐步的改这个配置文件
先贴最终的 文件【注意:不要直接复制粘贴】
location ~ \.php/?.* {
fastcgi_pass 127.0.0.1:10000;
fastcgi_index index.php;
set $path_info ὀ~\ὀ~];
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ ὀ~\^(.+?\.php)(/.+)$ὀ~]) {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME /www_amiku_cn$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
include fastcgi.conf;
}
首先
把
location ~ \.php${
改为
location ~ \.php/?.* {
这样,用url在访问您的网站的时候就能够识别所有的网址
接下来
fastcgi_psaa 127.0.0.1:10000;
这一句要大家根据自己的端口号来填写,不需要改,切记不要随意复制粘贴
接着在你原有的配置中删除其他项
替换成pathinfo及地址匹配方法
set $path_info ὀ~\ὀ~];
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ ὀ~\^(.+?\.php)(/.+)$ὀ~]) {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME /www_amiku_cn$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
最后,
把原本的include的方法补上【注意】
【注意】在include的的时候注意要确认自己的文件名称
我这里的是
fastcgi.conf
有些人的是
fcgi.conf
是不一样的,注意不要填错
接着:wq保存修改
reload 一次即可
这样thinkphp在nginx环境下就能正常访问及debug了
最后附上nginx去掉index.php的方法
同理,加载nginx.conf的location后面即可
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
最后:感谢大神的参考资料:http://www.9958.pw/post/nginx_config
【thinkphp 5 在nginx 环境下路由无法生效(404 500错误 )的解决方法】的更多相关文章
- Myeclipse开发环境下文件中出现的提示错误与解决方法:The import javax.servlet cannot be resolved?
1.开发工具:MyEclipse 2.右击项目 >> Build Path >> Add External Archives (Tomcat >> li ...
- iis7下配置php出现404.17错误的解决办法
服务器上建有几个PHP站点,都在正常运行.今天又新建了一个PHP站点,处理程序模块配置的和其他几个都一样,但就是跑不起来,一直提示404.17错误,重启服务器也不行. 最后实在没办法了,就把正常运行站 ...
- nginx 配置虚拟主机访问PHP文件 502错误的解决方法
最近配置Nginx 服务器虚拟主机 访问目录发现报502错误 百度了很多方法 都不管用 我擦 各种抓狂----- 原本Nginx配置如下: 网上找了很多方法: 查看日志 借助nginx的错误日志 ...
- thinkphp 5.0 lnmp环境下 无法访问,报错500(public目录)
两种方法: 1.修改fastcgi的配置文件 /usr/local/nginx/conf/fastcgi.conf fastcgi_param PHP_ADMIN_VALUE "open_b ...
- nginx环境下配置nagios-关于nagios配置文件nginx.conf
接上文:nginx环境下配置nagios-关于nginx.conf 配置如下: ; location ~ .*\.(php|php5)?$ { ...
- nginx环境下配置nagiosQL-关于nagiosql配置文件
接上文:nginx环境下配置nagios-关于nginx.conf nagiosql文件应该处于conf/domain/目录下 nagiosql配置如下: ; gzi ...
- Nginx环境下配置PHP使用的SSL认证(https)
最近一段时间发现好多网站都从http协议变成了加密的https协议,比如说百度.吾志等等.https看起来比http高端了好多,而且在不同的浏览器向上还会显示出不同于http的URL展示效果(比如说c ...
- nginx环境下启动php-fpm
nginx环境下启动php-fpm 1.首先查看是否安装了php-fpm 这个我试了好多命令都不行比如 rpm -qa php-fpm , rpm -ql php-fpm , which php-fp ...
- CI在nginx环境下去掉url中的index.php
在nginx环境下CI框架默认URL规则访问不了,出现500错误,如: http://blog.php230.com/index.php/keywords 今天在服务器配置CI框架环境时,去除URL中 ...
随机推荐
- Struts2---声明式异常处理
在service方法里 throw抛出一个异常, 然后再方法声明上加上throws: public List<Category> list() throws SQLException{ C ...
- myeclipse设置以及快捷键
http://blog.csdn.net/anxin323/article/details/40214467 如何查看jar包里的源码和doc文档? 1. jar文件右键properties--jav ...
- jquery刷新iframe页面的方法(兼容主流)
1,reload 方法,该方法强迫浏览器刷新当前页面.语法:location.reload([bForceGet]) 参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取 ...
- Keil MDK下如何设置非零初始化变量(转)
源:Keil MDK下如何设置非零初始化变量 一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备.而keil mdk在默 ...
- IOS数据库FMDB增、删、改、查的使用【原创】
http://blog.it985.com/13588.html IOS数据库FMDB增.删.改.查的使用[原创] FMDB是一个XCODE的中一个轻量级的数据库,用于将网络资源存储在本地.所以,FM ...
- Spring MVC之Action输入参数
第一部分:Action输入参数Spring MVC 通过@RequestMapping注解映射请求,最终的真正执行代码为处理器方法,即@RequestMapping注解的方法.Spring MVC方法 ...
- UVa 11059 最大乘积
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- CodeForces 755C PolandBall and Forest (并查集)
题意:给定每一点离他最远的点,问是这个森林里有多少棵树. 析:并查集,最后统计不同根结点的数目即可. 代码如下: #pragma comment(linker, "/STACK:102400 ...
- 一句话绑定父函数的作用域this
//如何在返回的函数中绑定父函数的作用域this function bound () { return function () { console.log(this); }.bind(this); } ...
- 1.TCP/IP基本概念
为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样 ...