宝塔Nginx下配置thinkphp5

  • A+
所属分类:技术流

ThinkPHP5是一款十分流行的PHP框架,很多公司都基于TP开发。但是由于Pathinfo()的设置,使得TP5的框架在Nginx下会报404错误。如果你配置在根目录下,则是502,如果你配置在Public下,则是只有首页能显示,其他页面全都是404。

这里,需要调整一下Nginx的conf规则,需要注意的是,调整的是Nginx对于这个网站的规则,而不是调整整个的规则。比如网站目录是abc,域名是abc.com,则调整该网站对应的conf文件。有的是面板上自带的网站文件配置,无自带的话需要自己手动调整。

宝塔面板,调整方式如下:

打开网站列表,点击“设置”。弹出配置窗口,点击“网站目录”。

这里,宝塔提供了ThinkPHP5的标准指向配置。但是仅仅调整这个是不好用的。

接下来,打开该网站的“配置文件”,添加一段代码(下面会有描述),即可使用。

 

代码调整方式如下:蓝色背景部分是添加的代码。其中,“/www/wwwroot/test/public;”是网站所在路径的public目录(即TP5的指向目录)。蓝色部分修改了rewrite规则,随后整个网站就可以恢复正常了。

注意红色部分,是你的域名,所以,你不要全部复制,只需要加入蓝色背景部分即可。

server
{
listen 80;
server_name domain.com;
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/public;

#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
#SSL-END

#ERROR-PAGE-START 错误页配置,可以注释、删除或修改
error_page 404 /404.html;
error_page 502 /502.html;
#ERROR-PAGE-END

#PHP-INFO-START PHP引用配置,可以注释或修改
include enable-php-55.conf;
#PHP-INFO-END

#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
include /www/server/panel/vhost/domin.conf
#REWRITE-END

#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
access_log off;
}

location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}

location ~ .*\.(js|css)?$
{
expires 12h;
access_log off;
}
access_log /www/wwwlogs/domain.log;
error_log /www/wwwlogs/domain.error.log;
}

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: