网站首页 > 精选教程 正文
最近在linux服务器上用ThinkPHP开发了一套系统,开发完成后由于要迁移到正式服务器nginx上,才发现ngnix服务器默认是不支持ThinkPHP的pathinfo模式了。所以特地上网搜了一些解决方法:
打开nginx的配置文件 /usr/local/nginx/conf/nginx.conf 一般是在这个路径,根据你的安装路径可能有所变化。如果你配置了vhost,而且只需要你这一个vhost支持pathinfo的话,可以直接打开你的vhost的配置文件。找到类似如下代码(不同版本的nginx可能稍有不同,但是相差不会很远):
location ~.*.(php|php5)?$
{
#原有代码
}
修改成以下代码#去掉$是为了不匹配行末,即可以匹配.php/,以实现pathinfo
#如果你不需要用到php5后缀,也可以将其去掉
location ~.php
{
#原有代码
#定义变量 $path_info ,用于存放pathinfo信息
set $path_info "";
#定义变量 $real_script_name,用于存放真实地址
set $real_script_name $fastcgi_script_name;
#如果地址与引号内的正则表达式匹配
if($fastcgi_script_name ~"^(.+?\.php)(/.+)$"){
#将文件地址赋值给变量 $real_script_name
set $real_script_name $1;
#将文件地址后的参数赋值给变量 $path_info
set $path_info $2;
}
#配置fastcgi的一些参数
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
}
这样,nginx服务器就可以支持pathinfo了。但是如果要支持ThinkPHP的URL_MODE设置为2的模式,还需要配置rewrite规则。找到access_log语句,在其上方加上以下语句:
- #如果请求既不是一个文件,也不是一个目录,则执行一下重写规则
if(!-e $request_filename)
{
#地址作为将参数rewrite到index.php上。
rewrite ^/(.*)$ /index.php/$1;
#若是子目录则使用下面这句,将subdir改成目录名称即可。
#rewrite ^/subdir/(.*)$ /subdir/index.php/$1;
}
- 最后,保存配置文件,重启nginx服务,把ThinkPHP的URL_MODEL设置为2,访问下你的页面,如果能正常访问,恭喜你pathinfo配置成功了^_^
自己比对了一下这个教程和自己服务器的配置文件是一模一样后,刚开始的时候还以为可能和这个教程的环境不一样,然后又是在网上摸索到了后半夜也没有搞明白是怎么回事,服务器该不支持phpinfo还是不支持。在快要想更换成linux系统的时候,重启了一下服务器,然后系统就支持phpinfo的模式了。看来nginx的重启服务和重新加载配置文件,有时候并不是很稳定了
猜你喜欢
- 2024-10-26 微信云托管 微信云托管和云开发区别
- 2024-10-26 PHP程序员2020学习方向:高并发、性能调优、分布式、微服务...
- 2024-10-26 「开源推荐」在线教育点播系统 EduYouKe,适合个人、小微企业
- 2024-10-26 ThinkAdmin-V5开发笔记 thinkpad做开发
- 2024-10-26 php宝塔搭建实战开源MUYUCMS轻量级开源内容管理系统php源码
- 2024-10-26 php宝塔部署实战OneKeyAdmin插件化管理系统源码
- 2024-10-26 THINKPHP 微联云投票系统源码独立版 + 支持刷礼物
- 2024-10-26 ThinkPHP5.0.23源码分析系列(一):生命周期
- 2024-10-26 ThinkPHP基础安全防御之Niushop thinkphp5.1漏洞利用
- 2024-10-26 皮特吧分享一款基于ThinkPHP的WAP+PC导航网站源码
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)