分享

完美解决PHPCMSV9 phpsso通信失败,注册会员失败

 周旋图书馆 2018-07-14
前言:百度是个好东西,很多疑难杂症都可以在百度找到答案,当然同样的有问题也许会有多种不同的答案,更悲催的是你尝试了多种方案之后仍然未解决你的问题。那不妨尝试下我的方案吧,

病症:phpcms v9 sso通信失败,会导致会员无法正常登录和注册等问题,


优势:百度网友针对phpcms v9 sso通信失败给出的答案大同小异,我也按照步骤尝试过多种方案还是未能解决,后来我自己分析了 phpsso_server文件夹内各文件的关系终于解决,博主亲测有效。

很多网友发现网站前台无法注册和登陆会员,去网站后台直接添加会员也不成功,其实质是phpcms v9 sso通信失败导致的,如图:
完美解决PHPCMSV9 <wbr>phpsso通信失败, <wbr>博主亲测有效
解决方案:
1.检查站点根目录\caches\configs\ 目录下的system.php和database.php文件中的域名站点等配置信息。
2.检查站点根目录\phpsso_server\caches\configs目录下的system.php和database.php文件中的域名和站点配置等信息。
    以上两步相信很多站长都在百度看到了,但迷茫的是关键怎么配置?怎么检查才是正确的配置,一开始博主也不是很懂,后来研究发现他们之间的关系是这样的:
① 站点根目录\caches\configs\system.php文件其实质是网站phpcms后台—设置—PHPSSO配置信息,如图:
完美解决PHPCMSV9 <wbr>phpsso通信失败, <wbr>博主亲测有效

完美解决PHPCMSV9 <wbr>phpsso通信失败, <wbr>博主亲测有效

对应的\caches\configs\system.php文件代码:
完美解决PHPCMSV9 <wbr>phpsso通信失败, <wbr>博主亲测有效

 心细的同学会发现,在网站后台phpcms后台—设置—PHPSSO配置信息中接口地址我们输入的是
http://zx./phpsso_server 
而代码中调用的是http://zx./ 
这样是正确的,并不是我搞错了,按照规则后台PHPSSO配置信息中的确是这样配置的:
需要填写你的域名+/phpsso_server   
同时,我们再来看\caches\configs\database.php文件:
完美解决PHPCMSV9 <wbr>phpsso通信失败, <wbr>博主亲测有效
我们发现这个文件其实是我们的数据库配置信息,您检查下数据库信息无误即可,其实这里一般不会出错。

②下面我们再看站点根目录\phpsso_server\caches\configs\system.php文件,这个文件其实质是网站phpcms后台PHPSSO配置信息,如图:
完美解决PHPCMSV9 <wbr>phpsso通信失败, <wbr>博主亲测有效
这里的最后一行:
'app_path' => 'http://域名/phpsso_server/',//动态域名配置地址和上面文件是有区别的,正确的配置也是这样的。
对应的我们再来看站点根目录\phpsso_server\caches\configs\database.php文件:
完美解决PHPCMSV9 <wbr>phpsso通信失败, <wbr>博主亲测有效
我们发现也是数据库的一些配置信息,和上面文件不同的就是图中我箭头指向的代码,在这个路径下的这个文件这样的配置也是正确的。

到这里,上面所说的方案1和方案2中的配置信息我们就检查完了,其实这里基本不会出错。因为你的网站在安装的时候会自动读取备份信息。数据库信息更不容易出错。
那么我们为什么还要检查以上这两步呢?首先是避免有些网站后台bug导致的后台配置好了却没有写入到你的源文件代码中。如此对照我们才能确保配置正确。这也就是为什么我们百度查询的方案都做了仍然没有解决phpsso通信失败的问题。博主遇到的也是这样的问题。

下面一步就是我虽然在网站后台填写配置正确的,但是却没有写入源文件代码造成的phpsso通信失败问题,
一起来看步骤
3:很多解决方案都是让用户检查以上两步,这里博主发现还有一个很重要的文件导致phpsso通信失败,
文件位置站点根目录\phpsso_server\caches\caches\_date\applist.cache.php 文件,代码如下:
完美解决PHPCMSV9 <wbr>phpsso通信失败, <wbr>博主亲测有效
仔细观察我们发现这个文件其实质是网站后台phpsso——应用管理—通信失败—编辑:
完美解决PHPCMSV9 <wbr>phpsso通信失败, <wbr>博主亲测有效
正常情况下 你在网站后台这里配置了,会自动写入
站点根目录\phpsso_server\caches\caches\_date\applist.cache.php 文件,但是我遇到的问题是 这里配置正确的,仍然通信失败,后来才发现我在这里配置的,并没有写入applist.cache.php 文件,发现之后我直接编辑applist.cache.php 文件源代码保存,然后通信成功了。

那么有人要问了,这里怎么算是配置正确的?
这也就是网友给出的方案
4.网站后台—设置—phpsso配置中心应用id、接口地址、加密密钥、版本和php—应用管理—编辑应用中的对应项要一致。如图:
完美解决PHPCMSV9 <wbr>phpsso通信失败, <wbr>博主亲测有效
完美解决PHPCMSV9 <wbr>phpsso通信失败, <wbr>博主亲测有效
以上配置如果不一致,就会导致phpsso通信失败。
如果这里发现配置正确的,那就应该按照我的步骤3 去看下源代码到底是不是同步到这里的配置信息了。
博主这里就去看了applist.cache.php 文件手动改写了源代码和对应项一致,然后phpsso通信成功:
完美解决PHPCMSV9 <wbr>phpsso通信失败, <wbr>博主亲测有效
然后我去前台注册会员,登陆会员,后台添加会员 发现所有正常,大功告成!

最后 至于网友还说其他几个方案,我这里也整理下:

5.检查 c:windows\systyem32\drivers\etc\hosts文件,如果用的是localhost域名访问,本机是否绑定了127.0.0.1   localhost(将# 127.0.0.1 localhost 前面的#号去掉)。
  这一步我觉得问题不大,这个属于网站环境问题,一般不会出错,大家也可以参考尝试下。

总结:
phpsso通信失败会导致网站会员无法注册登录和添加。最关键的原因是网站后台—设置—phpsso配置中心  与网站后台phpsso——应用管理中的配置信息不一致造成的。不仅要看后台配置是否一致还要看后台配置的信息是否写入源代码了,这样才能确保phpsso通信成功。


尊重原创的辛苦,本文转载自:http://blog.sina.com.cn/s/blog_14c335a1b0102y4s1.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多