环境是lnmp

项目换了ci,整合ucenter的同步登录的时候出现问题,在uc后台发现出现通信不成功的情况。

在本地测试都是正常的,但是在显示就不行了,检查通信吧,uc检查通信的时候是去请求项目的/api/uc.php文件,

如:http://wulin.aliapp.com/api/uc.php

我们直接访问这个文件。发现路径url没变,页面内容却是主页的,也就是没有访问到这个文件,通信当然就不成功了。

然后测试发现,所有二级页面下的php文件都是这样,仔细想想,应该是nginx的配置出了问题 


ci的配置uri模式是“AUTO”,$config['uri_protocol'] = 'AUTO';

下面给出正确的配置

server

        {

                listen       80;

                server_name aaa.wulin.cn;

                root /www/wulin;

                index index.html index.htm index.php index.shtml;

                //这里是隐藏index.php的

                location / {

                        if ($request_filename !~* /(upload|api|tc|js|javascript|css|images|fckeditor|userfiles|crontab|

 

robots\.txt|index\.php)/) {

 

                        rewrite ^/(.*)$ /index.php?$1 last;

                        break;

                     }

                }

                //主要是下面这段

                //发现url里面有uc.php的时候就指向那个文件,其他文件要访问同理

                location ~ uc\.php{

                        fastcgi_param  SCRIPT_FILENAME  /www/wulin/api/uc.php;

                        fastcgi_index index.php;

                        fastcgi_pass 127.0.0.1:9000;

                        include fastcgi_params;

                        fastcgi_param PATH_INFO $fastcgi_script_name;

                }

 

                #access_log /var/log/192.168.10.60-access.log;

 

                location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

                {

                        expires      30d;

                }

 

                location ~ .*\.(js|css)?$

                {

                        expires      1h;

                }

                location ~ \.php$ {

                        fastcgi_param  SCRIPT_FILENAME  /www/wulin/index.php;

                        fastcgi_index index.php;

                        fastcgi_pass 127.0.0.1:9000;

                        include fastcgi_params;

                        fastcgi_param PATH_INFO $fastcgi_script_name;

                }

 

                location ~ /\.ht

                {

                    deny all;

                }

        }

 

这下就好了,重新载入配置即可。

/etc/init.d/nginx reload

 

在访问http://wulin.aliapp.com/api/uc.php,出现:Authracation has expiried

这就对了,在到uc后台查看,发现通信成功了,测试同步登陆退出也正常了。

ci貌似在nginx下的配置确实有点麻烦。。。

 

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

et_highlighter