nginx下部署php项目出现404错误
博客专区 > SSAAA 的博客 > 博客详情
nginx下部署php项目出现404错误
SSAAA 发表于3年前
nginx下部署php项目出现404错误
  • 发表于 3年前
  • 阅读 153
  • 收藏 1
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: 前段时间在公司linux服务器上部署一套php开发的微信项目,一切部署好之后访问http://weisl.vipslb.com是没有问题的。但是访问http://weisl.vipslb.com/index.php/api/wjgxpf1416446741时候出现了404错误。导致所有客户在微信后台绑定的url和token都失效。

出现问题之后就开始了在网上找答案的漫漫之旅。。。。

最终花了一天时间终于把问题搞好了,这里谢谢这位朋友提供的信息:http://www.qttc.net/201208199.html

下面来说说导致的原因和解决方案,也给自己做个笔记。

原因:

    nginx 默认不支持pathinfo模式。没有开启pathinfo模式的话,nginx会把weisl.vipslb.com/index.php/api/...中的index.php当成目录来访问,所以会出现404错误。

解决方案:

    下面这段代码拷贝到你的项目配置文件下,如:我的是/etc/nginx/conf.d/weisl.conf.

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

location ~ \.php {    
 fastcgi_pass 127.0.0.1:9000; 
 fastcgi_index index.php; 
 include fastcgi.conf; 
 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 $document_root$real_script_name;  
 fastcgi_param SCRIPT_NAME $real_script_name;    
 fastcgi_param PATH_INFO $path_info; 
}

    注意:这些可以不用注释

最后保存退出,重启nginx。

访问就正常了.....




标签: nginx php linux pathinfo
共有 人打赏支持
粉丝 2
博文 3
码字总数 1310
×
SSAAA
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: