jeecms多站使用的要决

很显然,多站管理的核心需求是:栏目共享,内容隔离。

但是无论是所谓子站还是独立站,在内容、栏目显示方面都是隔离的(不知道是不是跟账号有关,总之目前创建的不同类别的管理账号在内容显示上都是隔离的)。

内容隔离显然是正确的,但是栏目隔离就不好了。因为只有使用相同的栏目,模板才不用改来改去。

如果采用channelId来调栏目,相应的就会把不属于自己的内容带过来,而且是无可回避的。

如果使用channelPath,由于channelPath在整个站点中是非唯一的,所以同一套模板就可以给多个站点使用。

经测试,当使用siteId(站点id)+channelPath时,就会精确显示本站点的内容,从而实现我们需要的栏目共享,内容隔离。

不过这样实际上也并不会简单多少,每次建新站,必须要把相同的栏目创建一遍,必须填写正确的channelPath。并且必须把siteId填对。好在,siteId是可以批量替换的。

jee的一些问题

多站点的时候内容管理权限的问题没搞清楚,目前是通过管理员的权限管理来实现的,这显然不合适。

还有一个bug,登过一个子站点之后,下次再登,就只能登这个子站点了,因为它好像会自动跳转到带域名的url上。

更牛逼的是,新创建一个管理员,不知道为什么,登不上,登不上不说,刷新页面还进不了登录界面,始终“对不起,您没有权限访问该页面”

最后发现必须清除所有cookie才行。

再用原来的管理员一登,发现原来是因为角色和部门没设置,所以这个系统就比较蛋疼,经常出现一些坑,不说清楚原因就是不让你用。

什么是cheat sheet?

在线查字典,得到这么个结果:

cheat sheet [tʃi:t ʃi:t] [tʃit ʃit]
n. “cheat sheet”原来是出自考试作弊; 但又不完全是作弊:“有些考试时可以带一张小抄; 通常老师会规定它的大小; 或是单面双面等等;
[例句]We created Web project earlier, so you can bypass this step by clicking in the Cheat Sheet.
我们已经在前面创建了Web项目,因此您可以通过单击Cheat Sheet的绕过图标绕过这一步。
很显然,这个结果是屁话。
当然,这个解释很给人启发,而且示例也给了一个我们需要的应用场景。
开卷考试让你带个纸进去,你得把重要的点都写在上面,所以作为一个菜单,它必须是精炼的,而且是易于获得的。
自己总结一下:
cheat sheet在软件或者APP中,应该叫做快捷键列表菜单。

解决的几个问题和几个没解决的问题

首先,把一个日光灯和一个吸顶灯装好了。

日光灯管不好买,老板给了我一个管头有点发黑的货,我要他换一个,找半天找不到,意思是说现在基本只卖led灯管了,所以这玩意根本没货。好吧,将就用吧。

日光灯没有我想像那么好装,因为灯管两头的装置卡得很死,直接插入的可能性是没有的,只有把其中一个从滑槽中取下来才能把灯管两头都插入位。

但是要取下其中一个装置,意味着要把滑槽上方的盖子打开,然而打开之后滑槽里的线就掉出来了,把这些线摁回去费了老半天劲。

终于干完这活,还好,有惊无险,灯管没问题可以用。

吸顶灯是一个蝶形2d灯管,取下来的时候就费了牛劲,因为往外拔的时候就把灯管给摁破了,去到店里一试,这灯是好的,所以问题一定在镇流器上,所以只好买了镇流器,到家一想,也可能是接触不良,但是不管那么多了,换上再说。

换镇流器比换灯麻烦,因为要接线,一看,原来的线接的也是简洁,就两头一勾,不过要说接触不良的话,其实也不会,很短的线头卡得死死的。换完之后灯也亮了。

 

然后,把jeecms里的多站点功能给试出来了。

 

接下来,为了处理某网站的js报错,我尝试写油猴脚本,然而写起来容易,运行不易,首先油猴的易用性是有问题的,设置里的包含、排除什么的根本无法编辑,翻译也挺让人无语的,换成英文版,还是看不出怎么做,最后发现原来这些设置全在脚本内容中用注释的方式写着,也是醉了,竟然用注释来做设置。

好吧,现在写好@include,(虽然没搞清楚它和@match的区别,按官方说match是有严格的语法的,其实就是chrome扩展里的限制),写好了也没用,原因竟然是忽略了http和https的区别,最后怕不准确,把具体的地址写进去了,发现不起作用,只好还是用*来解决。结论是,得在页面上搞,想在页面引用的js上进行注入是不行的。

 

最后,想把这些记录下来,遇到了这个:

Your PHP version (5.4.45) is far too old. Please upgrade immediately. Then activate the plugin again.

哦,昨天其实已经看到了,但是没解决。

今天一定要办了,升级php嘛。

结果没想到升级个Php这么难,首先用yum remove php-common来卸载,发现行不通,因为软件的源找不到,404了。(已经运行了更改源的操作)

于是用Lnmp自带的脚本升级,没想到一开始用的是lnmp1.1的方法./upgrade_php.sh ,1.3里是直接upgrade,php是作为参数的。

最后脚本有效,升级完了自动重启一切。

所以我终于把这篇文章写出来了。

补充几件没办好或没办成的事:1、汽车后视镜附加小镜没装上;2、joint的安装没完成,grunt这玩意没搞定,估计不用也没啥;3、大麦盒子和电视机的遥控器竟然冲突了,大麦的遥控器方向键下竟然同时会把电视机的返回键功能呼出,貌似也不是什么云智控的问题。4、某网站的js错误还是没解决,这个错误可能导致了ueditor用不了,也就意味着详情编辑不了,也是醉了,网站的bug,我竟然想用油猴帮他们解决。

意外之喜,昨天丢在修理店的线找回来了,老板说:你不是落在我这里,你是掉地上了。

再次优化一下wp后台

之前不知道为什么没有安装那些插件,好像当时是手动修改了一些东西,但是一直以来,写文章的页面慢得令人发指。

亏我也能忍,昨天f12一看,原来编辑器中还有一个用了googleapi的字体,于是装了两个插件试了一下,第一个是用的360的cdn,没用了,于是装了第二款,似乎是有效果的。但是按f12一看,那个文件还是用的google的,也不知道是因为缓存还是因为现在翻着墙。下次在不翻墙的情况下看看吧。

自力更生,解决问题,握了个大草

我作为一个善解人意的消费者,花钱买东西,往往不给卖家添麻烦。

这是第一次认真享受服务。

可惜的是,腾讯云的工程师搞不定,我这个工单传了无数的截图,说明,最终人家把我甩给了微信的工程师。

微信的工程师对我进行远程协助,也是困难的一B。

他做的事情就是看日志,然而相关日志我早就看了。

不过他进了一步,在代码里插了更多的输出。

但是为了改代码,我们俩真是付出不少代价,因为我的五笔输入法他玩不转,叫他按左shift,他好像也无法正常切到英文,结果在auth.php的头上输入了一堆乱七八糟的东西,这锅可能要vim来背吧。

下午我实在是不能再等了,只好让这哥们先歇着,我得出门了。

晚上回家再战,玩了几把游戏继续研究这个事情。

最后想起昨晚就怀疑的事情:是不是这个服务器压根不能访问外网?

其实之前就用curl访问过百度,curl -l “http://baidu.com”

结果是没有结果。

没错,狗日的这个服务器现在根本就不能访问外网!!!!(之前想到这个问题的时候,跑到腾讯云的监控界面查看“外网出包量”什么的,看不出所以然,感觉好像是能访问的样子,其实纯属扯淡)

从网上搜索解决linux不能访问外网的说明,发现network文件里没有配置信息,只有一句注释。

于是我按照网上的说明自己写了一份配置。写完一重启网络服务,结果服务器竟然无法用ssh访问了。

但是此时测试却发现:小程序端不再报那个超时错误!而是报json解析错误。

但是考虑到现在无法用ssh,只好想办法把它改回来。

怎么改呢?

用腾讯云提供的在线登录功能登进去,用vi把文件改回来。

改完一想,还得把问题找到啊。

哪儿能控制访问外网呢?原来腾讯云有个“安全组”的安全策略设定功能。

一查之下发现会话服务器和业务服务器都被放到了一个比较严格的安全组。

于是我把会话服务器解放出来。

终于curl可以访问百度了。

再一测试,结果和前面自己改network一样,报错信息变了。

而ssh终端也没出问题。

1005无法连接微信服务器的问题终于不再有了!!!

基本上胜利了。

不过这次报的Json解析错误怎么办呢?

我从会话服务器的日志中没看到有json错误,我把那段json放到js控制台里直接定义成变量,明显成了一个正常的对象。也就是说json本身应该没错。

回到业务服务器,我找到pm2的日志,运气非常好。

一拉就找到问题所在了。

就是前面那些乱七八糟的p\n\r\nx什么的搞的鬼。

这些东西怎么出来的呢?还是因为微信工程师在给我远程的时候不小心输入进去的。

php也是吊,这些东西输入到<?php之前竟然可以正常运行,只不过影响到最后的输出,我也是醉了。

把这些东西一删掉,结果就正常了。

终于,见到了久违的登录成功。

这事真是一波N折,其实就是一件小事,只不过我们想太多,忘了一些基本的问题。真正的灯下黑!

不过这次也算是第一次享受了售后服务。不容易。

微信的工程师还是不错的(也不知道是不是微信的工程师,外包的服务团队?还是什么代理商的人?)

不过找别人解决问题,有时效率不如自己,因为对方可能会把我已经做过的事情再做一遍。

求人不如求己,要相信自己的判断。

微信搞一大套东西,最基础的问题都说不清楚

话说昨天把mysql搞定了。

今天测试,小程序还是登录不了。

把phpmyadmin给安上,跑进去一看监控,发现数据库访问是没问题的,点一下,就出一个波峰。

那么问题出在哪里呢?

看日志,要找这个wafer的日志真是够难的。

业务服务器找半天,pm2的日志里确实是有,但它那个无限长的日志说的和前端看到的一样,都是etimedout,超时而已。(这个错误码真是要死,你以为是time,实际上它还带着一个d)

这等于什么也没说。不过毕竟它不管登录,所以它这么说也正常,所以还得是上会话服务器上看。会话服务器的日志在哪里呢?找人家写的手动部署教程看不到,找官方的github项目说明看,也看不到,从代码里找,也没找到它写到哪里去了。 后来被我硬给搜索到了。/opt/lampp/htdocs/mina_auth/log/这个目录下有很多按日期命名的文件夹,里面有些名为mina_auth.log.0的文件,tail -f 一下,一直看。果然就看到了错误。

INFO|2017-08-26 11:57:27.888572|/opt/lampp/htdocs/mina_auth/index.php:13|{“returnCode”:1005,”returnMessage”:”WEIXIN_NET_ERR”,”returnData”:””,”version”:1,”componentName”:”MA”}

根本问题就出在会话服务器无法连接微信服务器上。

实在想不通之前怎么就可以,现在怎么就不可以了呢?

没奈何,到小程序的QQ群里去反馈,那里有官方人员和爱好者,但是没人理我。

最后有个代理商跑来和我说扯了两句,发个链接让我授权给他,我打开一同意,结果给我提供什么cdn礼包,但要填写什么身份证号什么的,我没空理会,最后这哥们说作为代理商,他可以帮我摧官方尽快处理工单,于是我提交了工单。

折腾完,也就是刚才,突然想到,难道是因为我的会话服务器没域名,所以微信拒绝我连接吗?

那么问题来了,以前域名也没解析到会话服务器啊。域名解析那儿一直没变,都是直接挂到负载均衡上去的。

负载均衡按道理它不会切什么会话服务器和业务服务器,按照wafer的逻辑,小程序连接的都是业务服务器,业务服务器通过内网IP直接连接到会话服务器,会话服务器再和腾讯打交道。

以我现在提供给他们的信息,估计他们也查不出来什么,除非是微信官方给提供了更多内部的文档。否则我能看到什么他们也只能看到什么,那就没解了。

 

回到腾讯云看文档,越看越糊涂,不过意外间发现昨天改root密码时的问题在腾讯云小程序部署文档里有:https://www.qcloud.com/document/product/448/9634

我也是醉得不行了。

搞了一天mysql,最后终于解决了

一开始玩了一下官方自动部署的环境。

好像自动给我连的数据库。

中间我把它弄死一回,重新装过。

但是完全不记得怎么回事了。

现在用不了,只能根据最近的变故来判断,无非就是有个数据库过期了。

一查,原来配置里确实用到了那个数据库。

现在的思路是在本机上装个mysql,一查,原来本机整个是用的LAMPP,也就是xampp。所以不需要装。

开始直接登mysql,root账号的密码不对。

死也猜不出来,怎么办呢?

只好试试用phpmyadmin,但是这个东西屁事也多。修改来修改去,倒是可以进了,但是用的是一个边缘的账号,这个账号根本没有什么权限,鸟用没有。

只好再尝试修改root的密码。

用mysqld_safe命令,然而弄完了以后不知道怎么再启动mysql。因为当前这个系统是centos7,所以mysql那套东西都不能用。

之前用yum来安装安装不上也是这个原因,centos7已经不提供mysql了。

所以还得用xampp的专用办法。其实也谈不上什么专用,关键是你路径得写对。这么简单的事,我搞半天也搞不好,因为中间有一个重要的是点是:如果你搞定了mysqd,你得再开个终端来登录。否则那个进程还在运行,你就不知道怎么办了。

找回密码的步骤如下:

1、停止mysql服务器

sudo /opt/lampp/lampp stopmysql

2、使用`–skip-grant-tables’ 参数来启动 mysqld

sudo /opt/lampp/sbin/mysqld --skip-grant-tables

3、再开一个终端(在终端中直接右键+B) 进入mysql

sudo /opt/lampp/bin/mysql -uroot

现在会直接进入mysql

4、连接mysql权限数据库

use mysql;

5、修改root用户的密码

update user set password=password("123456") where user="root";

6、刷新权限表(必须要有这一步)

flush privileges;

7、退出mysql

quit;

8、重启mysql服务

sudo /opt/lampp/lampp startmysql

ok 现在就可以使用刚才设置的密码登录msql了

 

最终搞定一切,还得看:http://blog.csdn.net/shumol_lon/article/details/56497056

当然现在还没搞定。

因为数据库都建好并把记录写进去之后,调试时出现了超时,一脸蒙逼。