服务器进tp5项目报nginx404错误,【thinkphp 5 在nginx 环境下路由没法生效(404 500错误 )的解决方法】...

很是惭愧的说,因为以前一直使用的是windowservice,安装apache来进行服务器布置的,这种方式也是最简单最直接的方式,php

可是因为php的服务大多都是linux栈的,我们也不能落后呀,在写了php半年以后,开始拥有的本身的第一台centos的服务器,mysql

实话说,centos真的是简洁,部署完成 php ,mysql,nginx,ftp以后只是使用的1g的空间,服务器开启的时候cpu占用率还不到3%【1核1G20g最低配服务器】linux

本来是想先把这个服务器当作api服务器来使用,因而选用的了(传说中适合api 的 thinkphp 框架)nginx

一块儿准备就绪,选择最新的稳定版tp5,下载,配置域名,文件入口,隐藏路径……sql

写完第一个controller 发现,卧槽,thinkphp

404了?apache

仔细阅读文档,没毛病呀windows

tp5已经默认url_model是兼容模式了呀,为何仍是访问不到呢?centos

万能的百度让我发现不少人都是这种问题,可是 不少都是tp5之前的版本,配置文件写起来不一致,错误了n次api

因而本身找文件,仔细阅读:

参考文献:http://www.9958.pw/post/nginx_config

重点

我发现:

因为nginx不支持pathinfo致使在thinkphp使用

a98328b87f4c48d3b44670f231eaa59a.png

访问的时候会出现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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值