非常惭愧的说,由于之前一直使用的是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错误 )的解决方法】的更多相关文章

  1. Myeclipse开发环境下文件中出现的提示错误与解决方法:The import javax.servlet cannot be resolved?

    1.开发工具:MyEclipse 2.右击项目  >>  Build Path  >>  Add External Archives (Tomcat  >>  li ...

  2. iis7下配置php出现404.17错误的解决办法

    服务器上建有几个PHP站点,都在正常运行.今天又新建了一个PHP站点,处理程序模块配置的和其他几个都一样,但就是跑不起来,一直提示404.17错误,重启服务器也不行. 最后实在没办法了,就把正常运行站 ...

  3. nginx 配置虚拟主机访问PHP文件 502错误的解决方法

    最近配置Nginx 服务器虚拟主机 访问目录发现报502错误 百度了很多方法 都不管用  我擦 各种抓狂----- 原本Nginx配置如下: 网上找了很多方法: 查看日志   借助nginx的错误日志 ...

  4. thinkphp 5.0 lnmp环境下 无法访问,报错500(public目录)

    两种方法: 1.修改fastcgi的配置文件 /usr/local/nginx/conf/fastcgi.conf fastcgi_param PHP_ADMIN_VALUE "open_b ...

  5. nginx环境下配置nagios-关于nagios配置文件nginx.conf

    接上文:nginx环境下配置nagios-关于nginx.conf 配置如下: ;          location ~ .*\.(php|php5)?$          {            ...

  6. nginx环境下配置nagiosQL-关于nagiosql配置文件

    接上文:nginx环境下配置nagios-关于nginx.conf nagiosql文件应该处于conf/domain/目录下 nagiosql配置如下: ;                  gzi ...

  7. Nginx环境下配置PHP使用的SSL认证(https)

    最近一段时间发现好多网站都从http协议变成了加密的https协议,比如说百度.吾志等等.https看起来比http高端了好多,而且在不同的浏览器向上还会显示出不同于http的URL展示效果(比如说c ...

  8. nginx环境下启动php-fpm

    nginx环境下启动php-fpm 1.首先查看是否安装了php-fpm 这个我试了好多命令都不行比如 rpm -qa php-fpm , rpm -ql php-fpm , which php-fp ...

  9. CI在nginx环境下去掉url中的index.php

    在nginx环境下CI框架默认URL规则访问不了,出现500错误,如: http://blog.php230.com/index.php/keywords 今天在服务器配置CI框架环境时,去除URL中 ...

随机推荐

  1. Django 缓存系统

    Django 是动态网站,一般来说需要实时地生成访问的网页,展示给访问者,这样,内容可以随时变化,但是从数据库读多次把所需要的数据取出来,要比从内存或者硬盘等一次读出来 付出的成本大很多. 缓存系统工 ...

  2. iOS进阶

    著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:wjh2005链接:https://www.zhihu.com/question/28518265/answer/887505 ...

  3. MySQL中 InnoDB 和 MyISAM 小结

    转:http://blog.csdn.net/ithomer/article/details/5136982 部分内容: InnoDB和MyISAM的差别 InnoDB和MyISAM是许多人在使用My ...

  4. ajax原理图解

    Ajax 原理图解 摘自: http://www.nowamagic.net/ajax/ajax_PicForAjaxPrinciple.php Ajax其实已经使用很久了,但一直也没有时间正经的找本 ...

  5. tp框架命名空间

    命名空间:相当于虚拟的目录在tp里面主要为了实现自动加载类 TP框架下有一个初始命名空间(相当于根目录)初始命名空间:ThinkPHP\Library 在初始命名空间下又包含很多根命名空间这些根命名空 ...

  6. DWR3.0框架入门(3) —— ScriptSession的维护及优化

    1.ScriptSession使用中存在的问题        在上一节实现了服务器的推送功能,但是根据 ScriptSession的生命周期我们可以得出以下几点的问题:   (1)ScriptSess ...

  7. 代码中引用res里的颜色、图片

    1.imageButton userImgButton 在代码中设置图片,使用res/Drawable 里的图片 Resources res = getResources(); Bitmap inDr ...

  8. 闭包用法,延迟tab

    var changeTab =( function () { var timeId = 0; return function (tabId) { if (timeId) { clearTimeout( ...

  9. scala和maven整合实践

    .scala和maven如何整合     网上有一堆教程讲idea如何new module或new project一步一步来创建scala工程,在这里我不推荐这个.原因是现在主流的开发环境,大多数是采 ...

  10. Delphi中的窗体创建与销毁

    Delphi中的窗体,有模式窗体与非模式窗体两种.两种窗体的调用方式不同,模式窗体使用ShowModal显示,非模式窗体使用Show显示.当显示模式窗体的时候你是不能操作本程序的其他窗体的,你不能把焦 ...