-
Notifications
You must be signed in to change notification settings - Fork 0
/
search.xml
3691 lines (1770 loc) · 683 KB
/
search.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="utf-8"?>
<search>
<entry>
<title>黑群晖显示真实CPU核心信息补丁</title>
<link href="/post/black-cloud-display-real-cpu-core-information-patch.html"/>
<url>/post/black-cloud-display-real-cpu-core-information-patch.html</url>
<content type="html"><![CDATA[<p>使用黑群晖(这里以DS918+为例)会发现一个问题,就是信息中心的CPU信息跟实物不吻合,对于强迫证的我们来说,这也是需要改正的,下面就来说说如何让它显示正确的CPU信息:</p><a id="more"></a><ul><li><p>首先下载补丁文件:到电脑上,解压出来得到一个文件夹ch_cpuinfo,里面有一个“ch_cpuinfo”文件;</p></li><li><p>然后将ch_cpuinfo文件夹上传到黑群晖的共享文件夹,如docker目录下;</p></li><li><p>使用诸如putty等工具连接SSH,并以root权限登录(可以先用admin账号登录,再使用<code>sudo -i</code>切换到root账号,提示输密码时直接输admin的密码),分别输入以下命令:</p></li></ul><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">cd /volume1/docker/ch_cpuinfo</span><br><span class="line">./ch_cpuinfo</span><br></pre></td></tr></table></figure><p>接着先选择数字<code>1</code>,再选择<code>y</code>。</p><p><img src="https://cdn.lancn.cn/usr/uploads/2020/05/1840053542.jpg" alt="heiqunhui01.jpg"></p><ul><li><p>输完后就可以关闭SSH工具,退出当前群晖登录的用户,并且重新登录;</p></li><li><p>重新登录到桌面以后,打开控制面板的信息中心,就可以显示实际硬件信息了。</p></li></ul><p><img src="https://cdn.lancn.cn/usr/uploads/2020/05/1999277547.png" alt="heiqunhui02.png"></p>]]></content>
<categories>
<category> 智能终端 </category>
</categories>
<tags>
<tag> 黑群晖 </tag>
</tags>
</entry>
<entry>
<title>黑群晖之猫盘折腾记</title>
<link href="/post/the-cats-plate-in-the-dark.html"/>
<url>/post/the-cats-plate-in-the-dark.html</url>
<content type="html"><![CDATA[<p>想我在IT界混了也算有段时间了吧(适当时候要自吹一下),想想当年对什么新鲜事物都充满了好奇感,可现在呢,嗅觉越来越弱化了,以致于NAS(Network Attached Storage:网络附属存储)虽听过,但却从未真正接触过,惭愧吧……。而提到NAS就不得不说群晖,虽早几年就知道这世上有黑白群晖一说(官方出厂的俗称白群晖,自己捣鼓的就是黑群晖),但苦于白群晖的价格,再加上懒癌,黑群晖也就没接触过,别笑哈……</p><a id="more"></a><p><img src="https://cdn.lancn.cn/usr/uploads/2020/04/590351383.jpg" alt="maopan03.jpg"></p><p>这不最近看到论坛上又多了一个黑群晖利器——猫盘(又一个矿难产物),起初价格很便宜,但随着各大神的不断努力,让这个矿难产品可以跑起NAS(如:X3P、黑群晖)后,这价格就越来越贵,等到我再入手时都过百了,还好碰到<a href="https://yufanboke.top/" target="_blank" rel="noopener">Yufun</a>同学要转手,赶紧接了过来,价格当然要比某鱼上便宜,他之前刷的是X3P,那我当然要刷个黑群晖体验一下了,网上教程很多,一键工具也很多,这里简单介绍一下(这里以X3P的基础上刷黑群晖,如果是原版猫盘系统建议使用一键工具先刷到X3P):</p><ul><li>使用phtty工具连接ssh,猫盘x3p的默认用户为:<code>root</code> 密码为:<code>Etech12</code></li><li>粘贴以下代码,并执行,执行静静等待,待群晖助手搜索到即可(几分钟还是要等的)</li></ul><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">wget -N --no-check-certificate https://raw.githubusercontent.com/Squaregentleman/catdrive-syno/master/install.sh && chmod +x install.sh && bash install.sh</span><br></pre></td></tr></table></figure><p><img src="https://cdn.lancn.cn/usr/uploads/2020/04/162449019.png" alt="maopan01.png"></p><p>猫盘现在刷机资料非常多,我看到矿渣论坛有人做了整理,直接贴地址备份下。 17以下资料刷机前多看看,可以少踩坑,我是懒得刷直接买了刷好的。</p><p>【<a href="http://bbs.nas66.com/thread-3385-1-1.html?_dsign=a9aa4cb2" target="_blank" rel="noopener">固件汇总</a>】</p><p>【<a href="http://bbs.nas66.com/forum.php?mod=viewthread&tid=3467&_dsign=c9dade51" target="_blank" rel="noopener">应用汇总</a>】</p><p>或许总是有人会像我一样喜欢折腾,比如把猫盘从群晖刷回X3P,这里顺个教程(来自<a href="https://luuns.com/v/113/" target="_blank" rel="noopener">luuns</a>),我试过的确可以回到X3P:</p><ul><li>下载<code>x3p_full.bin</code>到群晖的文件夹<a href="https://cloud.luuns.com/index.php/s/5tmiJLGCFZjHbak" target="_blank" rel="noopener">https://cloud.luuns.com/index.php/s/5tmiJLGCFZjHbak</a>,举例luuns,系统路径就是<code>/volume1/luuns</code></li></ul><p><img src="https://cdn.lancn.cn/usr/uploads/2020/04/2308901881.png" alt="maopan04.png"></p><ul><li>依旧使用putty工具连接SSH,输入如下命令:</li></ul><p><code>sudo -i</code>提权 或者root账号登录<br><code>cd /volume1/luuns</code>切换到存放文件的目录</p><p>用ls检查<code>x3p_full.bin</code>是否存在,然后依次复制下面命令,复制一条执行一条</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">dd <span class="keyword">if</span>=<span class="string">"x3p_full.bin"</span> of=/dev/mtdblock0 bs=<span class="number">1</span> skip=<span class="number">0</span> count=$((<span class="number">0xc8000</span>))</span><br><span class="line">dd <span class="keyword">if</span>=<span class="string">"x3p_full.bin"</span> of=/dev/mtdblock1 bs=<span class="number">1</span> skip=$((<span class="number">0x000c8000</span>)) count=$((<span class="number">0x00004000</span>))</span><br><span class="line">dd <span class="keyword">if</span>=<span class="string">"x3p_full.bin"</span> of=/dev/mtdblock2 bs=<span class="number">1</span> skip=$((<span class="number">0x000cc000</span>)) count=$((<span class="number">0x00434000</span>))</span><br><span class="line">dd <span class="keyword">if</span>=<span class="string">"x3p_full.bin"</span> of=/dev/mtdblock3 bs=<span class="number">1</span> skip=$((<span class="number">0x00500000</span>)) count=$((<span class="number">0x00300000</span>))</span><br></pre></td></tr></table></figure><p><img src="https://cdn.lancn.cn/usr/uploads/2020/04/2327475060.png" alt="maopan05.png"></p><p>等到最后一条命令执行完毕后,就可以断电了,然后按住猫盘的 reset 键,接电源。等蓝灯闪烁再放开 reset 键,安静等十分钟左右 路由器出现ip就可以进x3p系统了</p>]]></content>
<categories>
<category> 智能终端 </category>
</categories>
<tags>
<tag> 黑群晖 </tag>
</tags>
</entry>
<entry>
<title>小米MIX 2s花了49元撸了电池和屏幕</title>
<link href="/post/Xiaomi%20mix%202S%20spent%2049%20yuan%20on%20batteries%20and%20screens.html"/>
<url>/post/Xiaomi%20mix%202S%20spent%2049%20yuan%20on%20batteries%20and%20screens.html</url>
<content type="html"><![CDATA[<p>本人手中的小米MIX 2s是年前淘来的,用的也挺不错,只是碍于电池容量小用的时间就短,所以一天两充是免不了,看了一下电池寿命,估计也就在88%左右(升级到MIUI开发版,可以直接在拨号界面输入<code>*#*#6485#*#*</code>查看)</p><a id="more"></a><p><img src="https://cdn.lancn.cn/wp-content/uploads/2020/03/1584541948-xiaomi_mix2s01.jpg" alt=""></p><p>大概看几个参数就能知道电池损耗情况了,如下图:</p><p><img src="https://cdn.lancn.cn/wp-content/uploads/2020/03/1584542127-xiaomi_mix2s04.png" alt=""></p><p>本来想着再用段时间再换,赶巧3月小米又开启了安心服务月活动,旨在为手机及家电用户提供产品免费清洁、保养、消毒等服务。小米售后服务方面表示,手部细菌、语音飞沫、空气中的细菌等会附着在手机表面形成病菌,通过与人接触,存在较高的健康隐患,经常给手机消毒十分重要。正因如此,小米在安心月活动当中针对性推出免费清洁和消毒服务。此次针对手机产品还有免费贴膜及49 元换电池活动。其中,在3.11-3.17日期间服务升级,推出15款机型49元换电池活动,助力抗疫。具体包括小米8、小米8SE、小米8青春、小米8屏幕指纹版、小米8探索版;小米9、小米9SE、小米9pro 5G、小米9探索版;MIX2、MIX2S、MIX3和MAX 3、Redmi 6、Redmi 6A。</p><p><img src="https://cdn.lancn.cn/wp-content/uploads/2020/03/1584541949-xiaomi_mix2s03.jpg" alt=""></p><p>赶紧电话联系售后,说是要预约,目前电池没货,待货到后再联系安装。等了几天都没消息,一直到16号,售后打电话来说电池到货了,要想享受49的价格这两天就要去换了(上班呀…………),没办法17号中午赶紧搭车前往售后,可能是中午的缘故吧,我去的时候竟然没人…………,不过没多久就来了好多人(真该好好暗暗庆幸),售后工程师简单核对了一些信息,拿出电池,可以看到电池包装的标签上填着我的手机尾号等信息(早就分配好了哈,工作蛮细致的),因为只是换电池,师傅也没询问太多,直接关机后放到加热台上加热(手机后盖都是用胶粘着的),约摸过了一分来钟,师傅但拆了起来,不一会就将电池拆下(两根电池拉条全都拉断了),放上新电池开机测试,结果按了几回都是无显示,师傅表示开机有震动,屏幕坏了(准确的说是屏幕排线坏了,我去……),跟一旁的服务员说这机子做特殊服务处理,要换屏幕(我是该高兴还是…………),于是本来很快就可以搞定的,结果前后花了1个小时左右,最终手机更换了电池和屏幕总成,我那小掉漆的框也魂归售后了。</p><p><img src="https://cdn.lancn.cn/wp-content/uploads/2020/03/1584541948-xiaomi_mix2s02.jpg" alt=""></p><p>上图是换完新电池的情况,目前使用了一天感觉比原来的电池要好一点,可能是我原来的损耗不是太低吧,不过因为还换了屏幕总成的缘故吧,手机震动有点不太对劲,改天还得跑去售后一趟,那么售后还得再拆一次机,别把幸运再降临一次哈(我是不是该把手机备份一下,还得拷出来),有点幻想症了。</p>]]></content>
<categories>
<category> 我的地盘 </category>
</categories>
<tags>
<tag> 手机 </tag>
</tags>
</entry>
<entry>
<title>Hexo一键部署到阿里云OSS</title>
<link href="/post/one-click-deployment-of-hexo-to-alibaba-cloud-oss.html"/>
<url>/post/one-click-deployment-of-hexo-to-alibaba-cloud-oss.html</url>
<content type="html"><![CDATA[<p>鉴于最近github从中国大陆访问网速较慢,而且现在国内阿里云oss、腾讯云对象储存等的开始支持将静态网站部署在上面,而且访问速度还可以,加上最近本博主又开始在折腾Hexo了,Hexo的好处是可以生成静态文件,这样就可以多个地方同时在线,比如Github、Coding、OSS等,目前本站已经部署在前面说的那个地方,今天顺便把阿里云的OSS也上了吧。另外像腾讯云的COS上部署也差不多,改天也可以再尝试一下。</p><a id="more"></a><p>想部署在OSS上,还得满足如下几个条件(有点废话):</p><ul><li>本地已经安装好了hexo(即可以通过<a href="http://localhost:4000可以访问">http://localhost:4000可以访问</a>)</li><li>拥有阿里云账号(部署静态网站需要实名认证)和备案的域名</li></ul><p>本次废话教程将重点从第二部分开始,本地安装Hexo博客就不再多说了,网上类似的教程很多,貌似也不是很难</p><ul><li>在您的hexo项目目录下执行:</li></ul><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm install hexo-deployer-ali-oss --save</span><br></pre></td></tr></table></figure><ul><li>在Hexo项目配置文件<code>_config.yml</code>中添加如下部署配置:</li></ul><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">deploy:</span><br><span class="line"> type: ali-oss</span><br><span class="line"> region: <您的oss 区域代码></span><br><span class="line"> accessKeyId: <您的oss accessKeyId></span><br><span class="line"> accessKeySecret: <您的oss accessKeySecret></span><br><span class="line"> bucket: <您的bucket name></span><br></pre></td></tr></table></figure><p>小说明:<br><code>type</code>:不用改<br><code>region</code>:OSS所在区域,按实际修改成如:<code>oss-cn-hangzhou</code>的格式<br><code>accessKeyId</code> 和 <code>accessKeySecret</code>:这个登录阿里云后,点击右边的头像下 <code>AccessKey管理</code>,就可以找到<br><code>bucket</code>:Bucket 名称</p><ul><li>改好之后记得保存,保存好之后再执行<code>hexo d</code>,一般没问题的话就可以将Hexo生成的静态文件上传到OSS中了,刷新一下你的小域名就可以看到最新动态了。</li></ul><p>注:默认情况下,将文件上传到阿里云OSS bucket的根目录下,如果需要部署到其他目录,请在deploy下添加remotePath选项进行指定</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">remotePath:<您要部署的目录></span><br></pre></td></tr></table></figure><p>另外在创建阿里云OSS存储桶(Bucket)时,应将存储权限设置为公共读。如果碰到网站菜单点击没反应,比如点击归档、友链等,但在本地测试又是好的,一般都是OSS基础设置中的子目录首页功能没有开始,具体开通如下图:<br><img src="https://cdn.lancn.cn/usr/uploads/2020/03/1663135651.png" alt="hexo-aliyun01.png"><br><img src="https://cdn.lancn.cn/usr/uploads/2020/03/772832735.png" alt="hexo-aliyun02.png"></p>]]></content>
<categories>
<category> 网站建设 </category>
</categories>
<tags>
<tag> Hexo </tag>
<tag> 网站 </tag>
<tag> 阿里云 </tag>
</tags>
</entry>
<entry>
<title>Typecho 博客评论显示 UserAgent (UA)</title>
<link href="/post/typecho-blog-comments-display-useragent-ua.html"/>
<url>/post/typecho-blog-comments-display-useragent-ua.html</url>
<content type="html"><![CDATA[<p>本篇文章纯搬运 <a href="https://www.zrahh.com/archives/298.html" target="_blank" rel="noopener">左岸大佬</a> 的教程,之所以搬运也是为了记录下过程,也便于以后时间长了还能再参考着折腾(没办法,文章写不出来多少,折腾这些东西无用的却是十分的来劲)废话不多说,赶紧码字+拷贝记录下来。</p><a id="more"></a><p>由于目前我用的是Mirages主题,所以接下来也按这个主题来:</p><ol><li>将下面的样式表外链加入到<code>/usr/themes/Mirages/component/header.php</code>的<code>head</code>部分,当然也可通过主题设置界面添加,这里建议大伙把css中的图片下载到本地,以便将来…………。</li></ol><figure class="highlight php"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><link rel=<span class="string">"stylesheet"</span> href=<span class="string">"//cdn.zrahh.com/css/comment-ua.css"</span>></span><br></pre></td></tr></table></figure><p><img src="https://cdn.lancn.cn/wp-content/uploads/2020/03/1583672377-4209146948.png" alt="typecho_ua.png"></p><ol start="2"><li>将以下代码加入到<code>/usr/themes/Mirages/function.php</code>末尾</li></ol><figure class="highlight php"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// 获取浏览器信息</span></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">getBrowser</span><span class="params">($agent)</span></span></span><br><span class="line"><span class="function"></span>{</span><br><span class="line"> <span class="keyword">if</span> (preg_match(<span class="string">'/MSIE\s([^\s|;]+)/i'</span>, $agent, $regs)) {</span><br><span class="line"> $outputer = <span class="string">'<i class="ua-icon icon-ie"></i>&nbsp;&nbsp;Internet Explore'</span>;</span><br><span class="line"> } <span class="keyword">else</span> <span class="keyword">if</span> (preg_match(<span class="string">'/FireFox\/([^\s]+)/i'</span>, $agent, $regs)) {</span><br><span class="line"> $str1 = explode(<span class="string">'Firefox/'</span>, $regs[<span class="number">0</span>]);</span><br><span class="line">$FireFox_vern = explode(<span class="string">'.'</span>, $str1[<span class="number">1</span>]);</span><br><span class="line"> $outputer = <span class="string">'<i class="ua-icon icon-firefox"></i>&nbsp;&nbsp;FireFox'</span>;</span><br><span class="line"> } <span class="keyword">else</span> <span class="keyword">if</span> (preg_match(<span class="string">'/Maxthon([\d]*)\/([^\s]+)/i'</span>, $agent, $regs)) {</span><br><span class="line"> $str1 = explode(<span class="string">'Maxthon/'</span>, $agent);</span><br><span class="line">$Maxthon_vern = explode(<span class="string">'.'</span>, $str1[<span class="number">1</span>]);</span><br><span class="line"> $outputer = <span class="string">'<i class="ua-icon icon-edge"></i>&nbsp;&nbsp;MicroSoft Edge'</span>;</span><br><span class="line"> } <span class="keyword">else</span> <span class="keyword">if</span> (preg_match(<span class="string">'#360([a-zA-Z0-9.]+)#i'</span>, $agent, $regs)) {</span><br><span class="line">$outputer = <span class="string">'<i class="ua-icon icon-360"></i>&nbsp;&nbsp;360极速浏览器'</span>;</span><br><span class="line"> } <span class="keyword">else</span> <span class="keyword">if</span> (preg_match(<span class="string">'/Edge([\d]*)\/([^\s]+)/i'</span>, $agent, $regs)) {</span><br><span class="line"> $str1 = explode(<span class="string">'Edge/'</span>, $regs[<span class="number">0</span>]);</span><br><span class="line">$Edge_vern = explode(<span class="string">'.'</span>, $str1[<span class="number">1</span>]);</span><br><span class="line"> $outputer = <span class="string">'<i class="ua-icon icon-edge"></i>&nbsp;&nbsp;MicroSoft Edge'</span>;</span><br><span class="line"> } <span class="keyword">else</span> <span class="keyword">if</span> (preg_match(<span class="string">'/UC/i'</span>, $agent)) {</span><br><span class="line"> $str1 = explode(<span class="string">'rowser/'</span>, $agent);</span><br><span class="line">$UCBrowser_vern = explode(<span class="string">'.'</span>, $str1[<span class="number">1</span>]);</span><br><span class="line"> $outputer = <span class="string">'<i class="ua-icon icon-uc"></i>&nbsp;&nbsp;UC浏览器'</span>;</span><br><span class="line"> } <span class="keyword">else</span> <span class="keyword">if</span> (preg_match(<span class="string">'/QQ/i'</span>, $agent, $regs)||preg_match(<span class="string">'/QQBrowser\/([^\s]+)/i'</span>, $agent, $regs)) {</span><br><span class="line"> $str1 = explode(<span class="string">'rowser/'</span>, $agent);</span><br><span class="line">$QQ_vern = explode(<span class="string">'.'</span>, $str1[<span class="number">1</span>]);</span><br><span class="line"> $outputer = <span class="string">'<i class= "ua-icon icon-qq"></i>&nbsp;&nbsp;QQ浏览器'</span>;</span><br><span class="line"> } <span class="keyword">else</span> <span class="keyword">if</span> (preg_match(<span class="string">'/UBrowser/i'</span>, $agent, $regs)) {</span><br><span class="line"> $str1 = explode(<span class="string">'rowser/'</span>, $agent);</span><br><span class="line">$UCBrowser_vern = explode(<span class="string">'.'</span>, $str1[<span class="number">1</span>]);</span><br><span class="line"> $outputer = <span class="string">'<i class="ua-icon icon-uc"></i>&nbsp;&nbsp;UC浏览器'</span>;</span><br><span class="line"> } <span class="keyword">else</span> <span class="keyword">if</span> (preg_match(<span class="string">'/Opera[\s|\/]([^\s]+)/i'</span>, $agent, $regs)) {</span><br><span class="line"> $outputer = <span class="string">'<i class= "ua-icon icon-opera"></i>&nbsp;&nbsp;Opera'</span>;</span><br><span class="line"> } <span class="keyword">else</span> <span class="keyword">if</span> (preg_match(<span class="string">'/Chrome([\d]*)\/([^\s]+)/i'</span>, $agent, $regs)) {</span><br><span class="line">$str1 = explode(<span class="string">'Chrome/'</span>, $agent);</span><br><span class="line">$chrome_vern = explode(<span class="string">'.'</span>, $str1[<span class="number">1</span>]);</span><br><span class="line"> $outputer = <span class="string">'<i class="ua-icon icon-chrome"></i>&nbsp;&nbsp;Google Chrome'</span>;</span><br><span class="line"> } <span class="keyword">else</span> <span class="keyword">if</span> (preg_match(<span class="string">'/safari\/([^\s]+)/i'</span>, $agent, $regs)) {</span><br><span class="line"> $str1 = explode(<span class="string">'Version/'</span>, $agent);</span><br><span class="line">$safari_vern = explode(<span class="string">'.'</span>, $str1[<span class="number">1</span>]);</span><br><span class="line"> $outputer = <span class="string">'<i class="ua-icon icon-safari"></i>&nbsp;&nbsp;Safari'</span>;</span><br><span class="line"> } <span class="keyword">else</span>{</span><br><span class="line"> $outputer = <span class="string">'<i class="ua-icon icon-chrome"></i>&nbsp;&nbsp;Google Chrome'</span>;</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">echo</span> $outputer;</span><br><span class="line">}</span><br><span class="line"><span class="comment">// 获取操作系统信息</span></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">getOs</span><span class="params">($agent)</span></span></span><br><span class="line"><span class="function"></span>{</span><br><span class="line"> $os = <span class="keyword">false</span>;</span><br><span class="line"> </span><br><span class="line"> <span class="keyword">if</span> (preg_match(<span class="string">'/win/i'</span>, $agent)) {</span><br><span class="line"> <span class="keyword">if</span> (preg_match(<span class="string">'/nt 6.0/i'</span>, $agent)) {</span><br><span class="line"> $os = <span class="string">'&nbsp;&nbsp;<i class= "ua-icon icon-win1"></i>&nbsp;&nbsp;Windows Vista&nbsp;/&nbsp;'</span>;</span><br><span class="line"> } <span class="keyword">else</span> <span class="keyword">if</span> (preg_match(<span class="string">'/nt 6.1/i'</span>, $agent)) {</span><br><span class="line"> $os = <span class="string">'&nbsp;&nbsp;<i class= "ua-icon icon-win1"></i>&nbsp;&nbsp;Windows 7&nbsp;/&nbsp;'</span>;</span><br><span class="line"> } <span class="keyword">else</span> <span class="keyword">if</span> (preg_match(<span class="string">'/nt 6.2/i'</span>, $agent)) {</span><br><span class="line"> $os = <span class="string">'&nbsp;&nbsp;<i class="ua-icon icon-win2"></i>&nbsp;&nbsp;Windows 8&nbsp;/&nbsp;'</span>;</span><br><span class="line"> } <span class="keyword">else</span> <span class="keyword">if</span>(preg_match(<span class="string">'/nt 6.3/i'</span>, $agent)) {</span><br><span class="line"> $os = <span class="string">'&nbsp;&nbsp;<i class= "ua-icon icon-win2"></i>&nbsp;&nbsp;Windows 8.1&nbsp;/&nbsp;'</span>;</span><br><span class="line"> } <span class="keyword">else</span> <span class="keyword">if</span>(preg_match(<span class="string">'/nt 5.1/i'</span>, $agent)) {</span><br><span class="line"> $os = <span class="string">'&nbsp;&nbsp;<i class="ua-icon icon-win1"></i>&nbsp;&nbsp;Windows XP&nbsp;/&nbsp;'</span>;</span><br><span class="line"> } <span class="keyword">else</span> <span class="keyword">if</span> (preg_match(<span class="string">'/nt 10.0/i'</span>, $agent)) {</span><br><span class="line"> $os = <span class="string">'&nbsp;&nbsp;<i class="ua-icon icon-win2"></i>&nbsp;&nbsp;Windows 10&nbsp;/&nbsp;'</span>;</span><br><span class="line"> } <span class="keyword">else</span>{</span><br><span class="line"> $os = <span class="string">'&nbsp;&nbsp;<i class="ua-icon icon-win2"></i>&nbsp;&nbsp;Windows X64&nbsp;/&nbsp;'</span>;</span><br><span class="line"> }</span><br><span class="line"> } <span class="keyword">else</span> <span class="keyword">if</span> (preg_match(<span class="string">'/android/i'</span>, $agent)) {</span><br><span class="line"> <span class="keyword">if</span> (preg_match(<span class="string">'/android 9/i'</span>, $agent)) {</span><br><span class="line"> $os = <span class="string">'&nbsp;&nbsp;<i class="ua-icon icon-android"></i>&nbsp;&nbsp;Android Pie&nbsp;/&nbsp;'</span>;</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">else</span> <span class="keyword">if</span> (preg_match(<span class="string">'/android 8/i'</span>, $agent)) {</span><br><span class="line"> $os = <span class="string">'&nbsp;&nbsp;<i class="ua-icon icon-android"></i>&nbsp;&nbsp;Android Oreo&nbsp;/&nbsp;'</span>;</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">else</span>{</span><br><span class="line"> $os = <span class="string">'&nbsp;&nbsp;<i class="ua-icon icon-android"></i>&nbsp;&nbsp;Android&nbsp;/&nbsp;'</span>;</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">else</span> <span class="keyword">if</span> (preg_match(<span class="string">'/ubuntu/i'</span>, $agent)) {</span><br><span class="line"> $os = <span class="string">'&nbsp;&nbsp;<i class="ua-icon icon-ubuntu"></i>&nbsp;&nbsp;Ubuntu&nbsp;/&nbsp;'</span>;</span><br><span class="line"> } <span class="keyword">else</span> <span class="keyword">if</span> (preg_match(<span class="string">'/linux/i'</span>, $agent)) {</span><br><span class="line"> $os = <span class="string">'&nbsp;&nbsp;<i class= "ua-icon icon-linux"></i>&nbsp;&nbsp;Linux&nbsp;/&nbsp;'</span>;</span><br><span class="line"> } <span class="keyword">else</span> <span class="keyword">if</span> (preg_match(<span class="string">'/iPhone/i'</span>, $agent)) {</span><br><span class="line"> $os = <span class="string">'&nbsp;&nbsp;<i class="ua-icon icon-apple"></i>&nbsp;&nbsp;iPhone&nbsp;/&nbsp;'</span>;</span><br><span class="line"> } <span class="keyword">else</span> <span class="keyword">if</span> (preg_match(<span class="string">'/mac/i'</span>, $agent)) {</span><br><span class="line"> $os = <span class="string">'&nbsp;&nbsp;<i class="ua-icon icon-mac"></i>&nbsp;&nbsp;MacOS&nbsp;/&nbsp;'</span>;</span><br><span class="line"> }<span class="keyword">else</span> <span class="keyword">if</span> (preg_match(<span class="string">'/fusion/i'</span>, $agent)) {</span><br><span class="line"> $os = <span class="string">'&nbsp;&nbsp;<i class="ua-icon icon-android"></i>&nbsp;&nbsp;Android&nbsp;/&nbsp;'</span>;</span><br><span class="line"> } <span class="keyword">else</span> {</span><br><span class="line"> $os = <span class="string">'&nbsp;&nbsp;<i class="ua-icon icon-linux"></i>&nbsp;&nbsp;Linux&nbsp;/&nbsp;'</span>;</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">echo</span> $os;</span><br><span class="line">}</span><br></pre></td></tr></table></figure><ol start="3"><li>将以下代码添加到<code>/usr/themes/Mirages/lib/comments.php</code>中<code>122</code>行所在的<code>div</code>中</li></ol><figure class="highlight php"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment-ua"></span><br><span class="line"> <span class="meta"><?php</span> getOs(<span class="keyword">$this</span>->agent); <span class="meta">?></span></span><br><span class="line"> <span class="meta"><?php</span> getBrowser(<span class="keyword">$this</span>->agent); <span class="meta">?></span></span><br><span class="line"></span></span><br></pre></td></tr></table></figure><p>本文部分内容转载自 <a href="https://logi.im/blog/user-agent-in-typecho-comment.html" target="_blank" rel="noopener">LOGI</a> ,如果你有缘看到这篇文章,也去踩踩他的博客吧。</p>]]></content>
<categories>
<category> 网站建设 </category>
</categories>
<tags>
<tag> typecho </tag>
</tags>
</entry>
<entry>
<title>为 Typecho的代码块添加Copy按钮</title>
<link href="/post/add-copy-button-for-code-block-of-typecho.html"/>
<url>/post/add-copy-button-for-code-block-of-typecho.html</url>
<content type="html"><![CDATA[<p>由于目前我用的是<code>Mirages</code>主题,所以接下来的步骤也按这个主题来,当然主题不同,也只是改的地方不一样而已,相信这都不是事,要是真有事了欢迎留言哈。</p><a id="more"></a><ul><li>先将以下代码添加到主题<code>header.php</code>中的<code></head></code>标签前,或前往<code>控制台</code>-<code>设置外观</code>-<code>主题自定义扩展</code>(考虑到以后更新主题能够更加偷懒,建议还是放到自定义扩展中,将它添加到<code>自定义 HTML 元素拓展</code>-<code>标签: head 头部 (meta 元素后)</code>。</li></ul><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br></pre></td><td class="code"><pre><span class="line"><script></span><br><span class="line"> <span class="comment">// 在代码块右上角添加复制按钮</span></span><br><span class="line"> <span class="built_in">document</span>.addEventListener(<span class="string">'DOMContentLoaded'</span>, initCodeCopyButton);</span><br><span class="line"> <span class="function"><span class="keyword">function</span> <span class="title">initCodeCopyButton</span>(<span class="params"></span>) </span>{</span><br><span class="line"> <span class="function"><span class="keyword">function</span> <span class="title">initCSS</span>(<span class="params">callback</span>) </span>{</span><br><span class="line"> <span class="keyword">const</span> css = <span class="string">`</span></span><br><span class="line"><span class="string"> .btn-code-copy {</span></span><br><span class="line"><span class="string"> position: absolute;</span></span><br><span class="line"><span class="string"> line-height: .6em;</span></span><br><span class="line"><span class="string"> top: .2em;</span></span><br><span class="line"><span class="string"> right: .2em;</span></span><br><span class="line"><span class="string"> color: rgb(87, 87, 87);</span></span><br><span class="line"><span class="string"> }</span></span><br><span class="line"><span class="string"> .btn-code-copy:hover {</span></span><br><span class="line"><span class="string"> color: rgb(145, 145, 145);</span></span><br><span class="line"><span class="string"> cursor: pointer;</span></span><br><span class="line"><span class="string"> }</span></span><br><span class="line"><span class="string"> `</span>;</span><br><span class="line"> <span class="keyword">const</span> styleId = btoa(<span class="string">'btn-code-copy'</span>).replace(<span class="regexp">/[=+\/]/g</span>, <span class="string">''</span>);</span><br><span class="line"> <span class="keyword">const</span> head = <span class="built_in">document</span>.getElementsByTagName(<span class="string">'head'</span>)[<span class="number">0</span>];</span><br><span class="line"> <span class="keyword">if</span> (!head.querySelector(<span class="string">'#'</span> + styleId)) {</span><br><span class="line"> <span class="keyword">const</span> style = <span class="built_in">document</span>.createElement(<span class="string">'style'</span>);</span><br><span class="line"> style.id = styleId;</span><br><span class="line"> <span class="keyword">if</span> (style.styleSheet) {</span><br><span class="line"> style.styleSheet.cssText = css;</span><br><span class="line"> } <span class="keyword">else</span> {</span><br><span class="line"> style.appendChild(<span class="built_in">document</span>.createTextNode(css));</span><br><span class="line"> }</span><br><span class="line"> head.appendChild(style);</span><br><span class="line"> }</span><br><span class="line"> callback();</span><br><span class="line"> };</span><br><span class="line"> <span class="function"><span class="keyword">function</span> <span class="title">copyTextContent</span>(<span class="params">source</span>) </span>{</span><br><span class="line"> <span class="keyword">let</span> result = <span class="literal">false</span>;</span><br><span class="line"> <span class="keyword">const</span> target = <span class="built_in">document</span>.createElement(<span class="string">'pre'</span>);</span><br><span class="line"> target.style.opacity = <span class="string">'0'</span>;</span><br><span class="line"> target.textContent = source.textContent;</span><br><span class="line"> <span class="built_in">document</span>.body.appendChild(target);</span><br><span class="line"> <span class="keyword">try</span> {</span><br><span class="line"> <span class="keyword">const</span> range = <span class="built_in">document</span>.createRange();</span><br><span class="line"> range.selectNode(target);</span><br><span class="line"> <span class="built_in">window</span>.getSelection().removeAllRanges();</span><br><span class="line"> <span class="built_in">window</span>.getSelection().addRange(range);</span><br><span class="line"> <span class="built_in">document</span>.execCommand(<span class="string">'copy'</span>);</span><br><span class="line"> <span class="built_in">window</span>.getSelection().removeAllRanges();</span><br><span class="line"> result = <span class="literal">true</span>;</span><br><span class="line"> } <span class="keyword">catch</span> (e) { <span class="built_in">console</span>.log(<span class="string">'copy failed.'</span>); }</span><br><span class="line"> <span class="built_in">document</span>.body.removeChild(target);</span><br><span class="line"> <span class="keyword">return</span> result;</span><br><span class="line"> };</span><br><span class="line"> <span class="function"><span class="keyword">function</span> <span class="title">initButton</span>(<span class="params">pre</span>) </span>{</span><br><span class="line"> <span class="keyword">const</span> code = pre.querySelector(<span class="string">'code'</span>);</span><br><span class="line"> <span class="keyword">if</span> (code) {</span><br><span class="line"> <span class="keyword">const</span> preParent = pre.parentElement;</span><br><span class="line"> <span class="keyword">const</span> newPreParent = <span class="built_in">document</span>.createElement(<span class="string">'div'</span>);</span><br><span class="line"> newPreParent.style = <span class="string">'position: relative'</span>;</span><br><span class="line"> preParent.insertBefore(newPreParent, pre);</span><br><span class="line"> <span class="keyword">const</span> copyBtn = <span class="built_in">document</span>.createElement(<span class="string">'div'</span>);</span><br><span class="line"> copyBtn.innerHTML = <span class="string">'copy'</span>;</span><br><span class="line"> copyBtn.className = <span class="string">'btn-code-copy'</span>;</span><br><span class="line"> copyBtn.addEventListener(<span class="string">'click'</span>, () => {</span><br><span class="line"> copyBtn.innerHTML = copyTextContent(code) ? <span class="string">'success'</span> : <span class="string">'failure'</span>;</span><br><span class="line"> setTimeout(<span class="function"><span class="params">()</span> =></span> copyBtn.innerHTML = <span class="string">'copy'</span>, <span class="number">250</span>);</span><br><span class="line"> });</span><br><span class="line"> newPreParent.appendChild(copyBtn);</span><br><span class="line"> newPreParent.appendChild(pre);</span><br><span class="line"> }</span><br><span class="line"> };</span><br><span class="line"> <span class="keyword">const</span> pres = <span class="built_in">document</span>.querySelectorAll(<span class="string">'pre'</span>);</span><br><span class="line"> <span class="keyword">if</span> (pres.length !== <span class="number">0</span>) {</span><br><span class="line"> initCSS(<span class="function"><span class="params">()</span> =></span> pres.forEach(<span class="function"><span class="params">pre</span> =></span> initButton(pre)));</span><br><span class="line"> }</span><br><span class="line"> };</span><br><span class="line"><<span class="regexp">/script></span></span><br></pre></td></tr></table></figure><ul><li>如果像我一样用的是<code>Mirages</code>主题,那么还要交前面的代码部分修改,要不然会出现提示拷贝成功,粘贴里却是啥也没有的尴尬情况,具体为:将上述代码第35行的<code>const target = document.createElement('pre');</code>改成<code>const target = document.createElement('textarea');</code></li></ul><p>如果你开启了<code>PJAX</code>,则需单独加入回调函数。对于本主题,依次进入<code>控制台 - 外观 - 设置外观 - PJAX(BETA) - PJAX RELOAD</code>,将<code>initCodeCopyButton();</code>添加进入即可。</p><p>本文部分内容转载自 <a href="https://logi.im/blog/adding-copy-btn-to-typecho-code-block.html" target="_blank" rel="noopener">LOGI</a> ,如果你有缘看到这篇文章,也去踩踩他的博客吧。</p>]]></content>
<categories>
<category> 网站建设 </category>
</categories>
<tags>
<tag> typecho </tag>
</tags>
</entry>
<entry>
<title>复苏的2020</title>
<link href="/post/2020-of-recovery.html"/>
<url>/post/2020-of-recovery.html</url>
<content type="html"><![CDATA[<p>用“复苏”来形容2020年的开工复产,应该不为过吧。因为新冠病毒疫情的影响,导致节后该开工的无法开工,该上学的还在等待,给社会造成了多大影响可想而知(虽然俺从初八就开始上班了),好在疫情得到了控制(确诊病例、治愈人数等都在住好的方面发展),很多地方也开始开工复产,当然相应的防护措施还是有的,</p><a id="more"></a><p>就比如我大浙江的三码通行政策(绿码、黄码、红码),不管怎么说开工复产了,对单位(或政府)还是对个人都是有好处的,这个就不多扯了,就像FM93里说到的,看到路上车多了、人多了都有一种不一样的喜悦感,接下来所谓的一罩(口罩)难求应该会有所好转吧。</p><p><img src="https://cdn.lancn.cn/wp-content/uploads/2020/02/1582202887-2020jhkg.jpeg#mirages-width=900&mirages-height=383&mirages-cdn-type=1" alt="请输入图片描述"></p><p>还是聊会自个吧,瞎扯闲扯的也不好是吧233.话说疫情这段时间,因为路上车少人少,虽然冷清了点,但是也有一个好处,油耗降了,原来一箱油跑500多公里,这会竟然跑了600多公里,足足多了100公里,我能暗自高兴一把吧,不过随着这周一开工复产了,路上车多人也多了,估计这跑不了这么多公里数了,虽然会有点小失落,但是想想现在热闹了呀,不像之前那段时间前无车、后无车的,空的慌。</p><p>年后第一次外卖订单不幸在昨天产生了,要不是因为疫情的影响,估计早就订了,不过现在虽然开工复产了,可以订外卖了但也只能送到小区门口,还得自己去拿,这局面还得一段时间吧。因为疫情的影响,街上很多店还是关门的,餐饮店开的也不多,而且也只能打包回去吃还不能堂食,服务性行业开的也少,比如理发店,小区边上的都还没开业,我这头发还得再保留段时间(应该不会成为山顶洞人吧),随着疫情控制的变化,相信不久这些还未(或者说还不能)开门营业的街店,应该都会开张起来,再等等呗。</p><p>虽然不是什么大佬,但俺也每天在关注着疫情,看着自己的家乡慢慢的变成了低风险地区,心情也渐渐舒畅了。疫情不可怕,有国在前,俺一小家有何可惧的!相信明天会更好,等这疫情结束了,一定要好好庆祝一番!</p>]]></content>
<categories>
<category> 我的地盘 </category>
</categories>
<tags>
<tag> 随笔 </tag>
</tags>
</entry>
<entry>
<title>最近的事@6</title>
<link href="/post/recent-6.html"/>
<url>/post/recent-6.html</url>
<content type="html"><![CDATA[<p>最近因为新型冠状病毒肺炎带来的影响,能宅在家的基本都宅在家了,像我这种不能宅家要上班的没办法了,加上大衢州的管控措施越来越严格,譬如进出小区都要出入证(不论人或车),进出小区或单位都要量体温(戴口罩那都是必须的事),虽然麻烦但看着最近几天没有新增确诊,管控措施还是非常有用的。</p><a id="more"></a><p>目前一般的单位都被要求2月10日复工,所以最近行车在路上也可以看到那不是一般的空,什么交通堵塞那都不存在的,估计下周一复工后路面状况会慢慢回到以前吧。</p><p><img src="https://cdn.lancn.cn/wp-content/uploads/2020/02/1581130732-xgfy01.jpg#mirages-width=1080&mirages-height=764&mirages-cdn-type=1" alt="请输入图片描述"></p><p>因为最近严格的管控措施,所以最近觅食就显得有点……,除了在单位食堂就只能在家里吃了(能点的外卖不多,而且还不能进小区,得去小区门口自提,也就失去了点外卖的动力),从网上看到最近宅家族们的厨技也是渐长(确实难宅呀,长这么大也是头一回体会到啥叫躺在床上不出门也能为国做贡献233)。不过最近上班也倒不忙,很多时候还是蛮空的,算是半休半工作吧,上班了还能聊聊天(虽然隔着口罩),也好过于天天宅家——闷的慌。</p><p><img src="https://cdn.lancn.cn/wp-content/uploads/2020/02/cloudflare.jpg#mirages-width=550&mirages-height=280&mirages-cdn-type=1" alt="请输入图片描述"></p><p>或许正是因为上班不忙的缘故,这不想着折腾一下这“一亩三分地”,因为win后缀域名无法备案,加上主机也是当时腾讯云送的券,换的HongKong主机,原来是直解析到IP的,感觉会不会太直接了点,可不直接就要上个CDN(是否还有别的路子,还请高手指教),没备案的域名想在国内节点用上CDN那是没戏的(没备案的很多都用不了),木的办法只好搬出CloudFlare(后简称CF),原本CF只能DNS接入的,不过通过第三方可以使用Cname,就用了笨牛家的。后又在网上看到可以直接解析到CF的具体节点IP上(因为国内访问,CF提供的默认节点IP是在美西的,那速度……),一顿折腾搞好了,可几天试用下来感觉网速还没有原来直接解析到HongKong的快(犯2了?),所以现在犹豫要不要换回去……</p><p>或许还是因为最近不太忙吧,这不想着把年前淘来的小米mix2s刷个机(还好年前下了手,要不然……想买也不一定能到了),到手就是MIUI11的系统,用着也挺好的,本也不想折腾的这不不犯闲,就想着刷个机。新系统要降级就得解BL锁,解锁之前做了个本机备份并拷贝到电脑上(解锁会清空手机),下好要刷的系统(一开始下的是MIUI V9.5.10),刷机之路非常顺利,恢复备份后发现原先整齐的桌面产马变的临乱不堪,不同版本的系统桌面布局不兼容?等恢复好之后上手体验了一下,感觉V9.5.10没有V11来的舒服(作孽呀……),结果就是上手体检没过2个小时就在线更新到了 V10.0.3.0 ,虽然V10的版本也没有V11看着舒服(后悔呀……),但还是想坚持用几天看看,大不了再往上升级呗,反正往上升级又不用解BL锁啥的,也方便的很……</p>]]></content>
<categories>
<category> 我的地盘 </category>
</categories>
<tags>
<tag> 随笔 </tag>
</tags>
</entry>
<entry>
<title>2020年的春节</title>
<link href="/post/spring-festival-in-2020.html"/>
<url>/post/spring-festival-in-2020.html</url>
<content type="html"><![CDATA[<p>2020年(本来寓意挺好的,2020爱你爱你……)的春节,原以为会跟以往春节那样,结果是大大出乎意料,原本可以大团聚的日子(串门、聚会等),现在却因为新型冠状病毒肺炎的出现,一切都变了,变得被要求在家呆着,没事少出门,更没提聚会、拜年等,而且今年流行的已不在是红包,而是口罩,谁要是可以拿出一堆的口罩来,那他一定很……。</p><a id="more"></a><p><img src="https://cdn.lancn.cn/wp-content/uploads/2020/01/1580367834-Jietu20200130-150041.jpg#mirages-width=833&mirages-height=922&mirages-cdn-type=1" alt="请输入图片描述"></p><p>疫情是越来越严重,我大浙江的颜色也越来越深了,全国也变成了彩色,深颜色的区域也越来越多了,现在人们看到颜色浅的地方估计都很开心吧(东部地区是不用想了,想颜色变浅还得再过段时间吧),这场突来其来的疫情,也把武汉这个名称推到了风口上,可以说谈其色变,各地也都把从这个地方归来或经过的人盯的紧紧的。就连春节假期也因此延期了(从小到大这还是头一回碰到,可却也没太多的喜悦感),大街上随处可见的冷清,原本一位难求的停车位,现在也可以随便停了(喜欢停哪就停哪),其它诸如饭店、水果店开门的也很少,小区、村庄等也开始进行管控(减少出入口,必经出入口也有人员巡查、测温等),所有的种种都让这2020年的春节过得有点不爽、无奈……</p><p><img src="https://cdn.lancn.cn/wp-content/uploads/2020/01/1580367830-Jietu20200130-150222.jpg#mirages-width=779&mirages-height=639&mirages-cdn-type=1" alt="请输入图片描述"></p><p>我大浙江目前确诊的也有428例了(还好我不在温州),好在治愈也有4例了,随着假期结束返程的开始,这些数字都还会发生变化,衷心希望这场疫情能够早日结束,早日恢复大伙自觉的生活。<br>加油!武汉。<br>加油!中国。</p>]]></content>
<categories>
<category> 我的地盘 </category>
</categories>
<tags>
<tag> 随笔 </tag>
</tags>
</entry>
<entry>
<title>“范”闲整个黑苹果</title>
<link href="/post/fan-leisure-the-whole-black-apple.html"/>
<url>/post/fan-leisure-the-whole-black-apple.html</url>
<content type="html"><![CDATA[<p>“范”闲最近比较出名,当然我其实并不闲(真的吗?)这不赶上周末有点闲,要不给俺家台式机也整个黑苹果吃吃(平安果最近卖的这么贵的,穷人就整个黑的吃吃吧),家里的台机配置也不高(I5 +H61+12G),日常整个Win10啥的是够用了,谁叫俺不打游戏呢(显卡是N卡730),看到黑果小兵有做好的系统(远景的号登录不上了,其它的付费的地也懒的整),就下个试试吧</p><a id="more"></a><p><img src="https://cdn.lancn.cn/wp-content/uploads/2019/12/CLOVER.png#mirages-width=1920&mirages-height=1080&mirages-cdn-type=1" alt="请输入图片描述"></p><p>用的是四叶草的引导,主题也是定制的(挺漂亮的),因为机型有点早了怕太新了跑不动就下个Mojave吧,下载地址:<a href="https://blog.daliansky.net/macOS-Mojave-10.14.6-18G87-Release-version-with-Clover-5033-original-image.html" target="_blank" rel="noopener">https://blog.daliansky.net/macOS-Mojave-10.14.6-18G87-Release-version-with-Clover-5033-original-image.html</a> ,具体的使用上面写的很详细我就不在啰嗦了,有些碰到问题的地方我说说(怕以后时间长了自己记不得还能翻翻):</p><ul><li><p>双系统安装的话(比如Win10+Mac),记得要将硬盘改为GPT,MBR格式是不行的,已经是MBR格式的可以用Win10自带的命令转换,转换好之后将BIOS里的引导方式改为<code>UEFI only</code>(不同板子显示不一样,差不多),另外还需要新建个200M以上的分区,作为黑苹果的EFI存放盘(没有这个分区,黑苹果里的磁盘工具抹盘会失败)。</p></li><li><p>用做好的黑苹果U盘引导安装,抹盘后安装可能会提示<code>安装macOS 应用程序副本已损坏,不能用来安装macOS</code>,可以点击 <code></code> 实用工具-终端 <code>,输入命令:</code> date 0201010116 <code>,回车后关闭</code> 终端 `,可继续安装进程;另外安装过程中全程断开网络。</p></li></ul><ul><li><p>经过几次重启后就能进黑苹果了,这时还是通过U盘引导的,想直接从硬盘上引导黑苹果,还得将U盘中的EFI文件拷到之前分的那个200M以上的EFI分区,用PE就可以解决,将U盘中的EFI分区中的所有文件拷贝到硬盘上那个分好的EFI分区中,重启后就可以直接硬盘引导了。</p><ul><li>我这个机型用【黑果小兵】macOS Mojave 10.14.6 18G87 正式版 with Clover 5050原版镜像 装好之后,除了声卡没声音外,其它的诸如显卡、网卡都驱好了,我的声卡是ALC887的,网上可以找到相关的EFI文件,可是很多都要账号登录后方可下载,逛了很久,最后在B站上找到了解决方案:<a href="https://www.bilibili.com/video/av22593342?from=search&seid=11745333475432574617" target="_blank" rel="noopener">黑苹果声卡驱动教程 alc887</a> (有具体的操作视频),声卡驱动 :<a href="https://github.com/vit9696/AppleALC/releases" target="_blank" rel="noopener">https://github.com/vit9696/AppleALC/releases</a> ID查找 :<a href="https://github.com/vit9696/AppleALC/wiki/Supported-codecs" target="_blank" rel="noopener">https://github.com/vit9696/AppleALC/wiki/Supported-codecs</a> ,我是用<code>11</code>修改ID后重启就有声音了。</li></ul></li></ul><p>目前测试一段时间,没啥问题,上网看视频、听歌、Office、聊聊天都是很Nice的,当然完美谈不上,至少基本使用没问题(苹果的输入法倒是没有Windows的好用,五笔更是,装了个搜狗的凑合凑合先吧),其它的等有空再瞧瞧,对于现在很少开电脑的我来说,黑苹果应该是够用了,实在要用Windows啥的,不是还有笔记本嘛(我的黑苹果能用的很久?天知道)。</p>]]></content>
<categories>
<category> 我的地盘 </category>
</categories>
<tags>
<tag> 苹果 </tag>
</tags>
</entry>
<entry>
<title>最近的事@5</title>
<link href="/post/recent-events-5-1.html"/>
<url>/post/recent-events-5-1.html</url>
<content type="html"><![CDATA[<p>打开博客发现最近一次更新竟然是3个月前(现在都这么懒了吗?不敢想象呀),我是不是该上来啰嗦一下,发一发牢骚了233。</p><a id="more"></a><p><img src="https://cdn.lancn.cn/wp-content/uploads/2019/12/2019len.jpg#mirages-width=400&mirages-height=270&mirages-cdn-type=1" alt="请输入图片描述"></p><p>外面是越来越冷了,早上起不来,晚上睡的晚,如此反复恶性循环,难道这就是冬天,这就是天冷了该有的表现,估计是吧,反正我是这么一回事。人越来越惰性,越来越……啥也不想,就想那么躺着,哪怕只是多躺几秒钟,这算是懒癌晚期的表现吧233。以前回家必开两样东西:电视和电脑,现在回家还是必开两样:电视和手机,以前没事老爱上博客唠叨唠叨,现在就爱拿手机刷刷头条,打打小游戏,人确实是变了(难怪我以前经常逛的博客现在要么少更新了,要么干脆打不开了,莫非大家都是晚期了…………),好在我这域名当时注册了十年,空间也还没到期,感谢当年鹅场送了我2K的优惠券,要不然我也可能打不开了,哈哈 。</p><p>现在电脑开的少其实也是有原因的,以前寡人一个,回家了没事自然是电脑一开,然后一直开到睡觉,现在不一样了,不是寡人了,虽然来点啥事,都可以把开电脑这事扔到脑后,用电脑该干的活基本上班时也差不多了,回到家再开电脑又不玩游戏感觉就没啥用了,看电影啥的现在不是可以手机或投屏嘛,也比坐在电脑前看着爽呀,那不是可以躺着看嘛233。</p><p>啰了半天,感觉跟标题越说越不沾边,哪是什么最近的事,这纯粹就是瞎扯蛋嘛……。感觉最近也没发生啥好说的,生活平淡、日复一日的过着,似乎一切都是这么早已安排好的,就如程序一般按部就班在运行着。</p>]]></content>
<categories>
<category> 我的地盘 </category>
</categories>
<tags>
<tag> 随笔 </tag>
</tags>
</entry>
<entry>
<title>iPhone快速开启或关闭VoiceOver(旁白)</title>
<link href="/post/iphone-quick-turn-voiceover-on-or-off.html"/>
<url>/post/iphone-quick-turn-voiceover-on-or-off.html</url>
<content type="html"><![CDATA[<p>iPhone的VoiceOver(现在叫旁白)对视力等障碍的朋友们还是非常好用的,但要是正常人不小心开启了,就会发现想关闭那不是一般的麻烦(都有想砸手机的冲突)。为了关闭这功能会去尝试登录–设置–辅助–旁白–关闭,看着流程不复杂,可实际操作起来那真是一个爽233。</p><a id="more"></a><p><img src="https://cdn.lancn.cn/wp-content/uploads/2019/09/zsj.jpeg#mirages-width=339&mirages-height=254&mirages-cdn-type=1" alt="请输入图片描述"></p><p>其实想要快速开启或关闭VoiceOver(旁白)功能,还是蛮简单的(知道时感觉就这是这么简单,不知道时我也折腾了许久),不啰嗦了,赶紧放出大招:</p><h4 id="快速按手机右侧的关机键三次即可开启或关闭VoiceOver(旁白)"><a href="#快速按手机右侧的关机键三次即可开启或关闭VoiceOver(旁白)" class="headerlink" title="快速按手机右侧的关机键三次即可开启或关闭VoiceOver(旁白)"></a>快速按手机右侧的关机键三次即可开启或关闭VoiceOver(旁白)</h4><p>iphoneX以上没有Home键的是这么操作的,有Home键的我试了没用,可能是我手上的6SP太古老(ios12)了吧,按Home键或开关键都没反应,不去深究了,反正俺也不用这功能(够懒吧)</p>]]></content>
<categories>
<category> 我的地盘 </category>
</categories>
<tags>
<tag> iphone </tag>
</tags>
</entry>
<entry>
<title>懒懒的9102年</title>
<link href="/post/the-lazy-year-of-9102.html"/>
<url>/post/the-lazy-year-of-9102.html</url>
<content type="html"><![CDATA[<p>发觉9102年是真的懒,而且还是非一般的懒,这不小小博客上次更新还是在一月份(我去…………),什么理由都不能像我这么懒的没药治了…………。木的治咯,,木的治咯,,咋活呀!</p><a id="more"></a><p><img src="https://cdn.uu126.cn/wp-content/uploads/2019/08/3310300122.jpeg?imageView2/1/w/1024/h/613" alt="请输入图片描述"></p><p>趁着大中午的休息时间,赶紧水上一贴,算是对慵懒的这段时间来一个小小的自我批评吧,大多的自我总结就不写了(怕是也写不出啥,懒成习惯了……),今后抽抽身还是要来水一下,谁叫这是俺的小据点呢(说不是or say no的可以走了),俺的地盘俺们一定要做主的(真是废柴呀……)</p><p>先来说说博客吧,懒的没药的人又把Ghost换成Typecho了,不是Ghost不好,也不是Typecho有多好(神马话233),只是这两者相比Wordpress还是要好一点点的,Wordpress俺是前台快了后台慢,作为小小小博客还是功能富余了点,所以经俺们懒懒的决定还是Typecho吧(之前也用过一段时间的,稍微熟悉那么一丢丢),主题目前用的是之前买的,非常不错值得推荐的一款主题。</p><p>感觉写着写着发现有点困了,还是趴会吧,下午还要干活呢,先水到此,下次再水吧…………………………(懒癌是越来越严重了…………)。</p>]]></content>
<categories>
<category> 我的地盘 </category>
</categories>
<tags>
<tag> 随笔 </tag>
</tags>
</entry>
<entry>
<title>最近的事@4</title>
<link href="/post/recent-events-4.html"/>
<url>/post/recent-events-4.html</url>
<content type="html"><![CDATA[<p>一晃都已经9102年了(网上看到很多都把2019写成这样,我这算是跟风吧?),上一次更博还是2018年11月份,这间隔的不是一点半点呀,难怪<a href="https://sunxyu.cn/" target="_blank" rel="noopener">小宇</a>童鞋都来叫阵了(我看他就是闲的?几乎天天更新,反观我…………)。最近发生了很多事(一贯的套路用词……),那就慢慢说来吧。</p><a id="more"></a><p><img src="https://cdn.uu126.cn/201901/2019newyear01.jpg" alt="请输入图片描述"></p><p>先从12月初说吧,一次交通意外让我这人生头一回栽了个大跟头,经过发现一个“真理”——这皮包铁(两轮小电驴)真的是斗不过铁包皮(小四轮)呀,万幸的是没有碰上(简要说一下大概:那天刚过红绿灯,看见前面路口一辆小车要拐弯,车停了一下让我本能的觉得这是在让我过去,在我没有任何减速的情况下,小车猛的一个转变进来,由于距离太近导致情急中紧急制动,或许是因为刚下过雨不久,或许是因为那段路面太差,小电驴测滑摔倒,造成从脸到手、膝盖多处擦伤,嘴上还缝了线,膝盖更是受伤严重,什么髌骨骨折、半月板、韧带损伤,牙齿碎裂等等住了将近半个月的院,要不是因为后面的一件事,估计要住上至少一个月),小车司机在当天垫付了600块后就再也“没钱”了(估计是考虑到保险的事吧),人生还是头一回遭此大劫,可谓是损失惨重呀(因为门牙等碎裂,害我现在说话都不敢张大口了?)</p><p>12月中旬,人生最大的事来了——结婚,同龄人当中我算是蛮晚的吧,由于月初的事故,导致婚前很多事都是媳妇在筹办(在此好好感谢一下),一大堆的事真是辛苦她了,可以非常负责任的说在这次婚礼中,我算是最闲的当事人了?。或许也正因为如此吧,老天爷也想奖赏一下媳妇,我们婚礼那几天都是好天气,中间还出过太阳(要知道这前后不是阴天就是下雨,很多朋友都在说我们日子挑的好)。我唯一为这次婚礼做的贡献就是提前出院(拿掉了右腿上的石膏,佩带上狗东上买的支架,贴上老丈人特地采来的神奇膏药贴),然后一拐一拐的陪着媳妇拍了外景和婚礼,当然了我这点贡献跟媳妇的付出那根本就是九牛一毛(没办法,谁叫俺运气好,以后要好好表现,立贴为证啊)</p><p><img src="https://cdn.uu126.cn/201901/2019newyear02.png" alt="请输入图片描述"></p><p>还是因为月初的事故,这不开始休起病假了,每天人是爽了,就是这个月发钱的时候会发现少的可怜,据说病假工资是……(等发了就清楚了,反正可以肯定的是:很少),想在网上找点活干干,至今无果呀(是不是要去学个程序、敲个代码啥的,考虑考虑)。估计最多休到年后肯定休不下去了,再休下去,我要…………</p><p>现在想想有些事是可以长篇小论一下的,比如:婚礼,可想想如今的网络,想想还是简写一下吧,其实前段时间写过博文的,只是没有发表出来,也是考虑到一些因素后来给删了,至于这次又为什么要写出来,想想如今的网络…………,简写一番留个印也好。</p>]]></content>
<categories>
<category> 我的地盘 </category>
</categories>
<tags>
<tag> 随笔 </tag>
</tags>
</entry>
<entry>
<title>IOS 高版本保资料降级(未关验证)</title>
<link href="/post/data-degradation-of-ios-higher-version-verification-not-turned-off.html"/>
<url>/post/data-degradation-of-ios-higher-version-verification-not-turned-off.html</url>
<content type="html"><![CDATA[<p>用iPhone的朋友都知道,IOS(iPhone手机的灵魂)更新还是蛮快的,不管是修补漏洞也好,还是增加新功能也罢,给我的感觉就是完胜安卓系统,至少同年代的机型,iPhone可以用的更流畅些,而且只要你肯刷,新版本的系统始终都是可以轻松得到(除非跨越太大会限制版本更新,但相比安卓新系统的普及率来讲,IOS的新牒普及率已经高出很多了)。</p><a id="more"></a><p>在日常使用中还是会碰到例如:新版本不适应了,费电等原因需要降级(IOS只能降级到未关闭验证的系统版本,这点相比安卓有点打脸了,这也算是封闭式系统的特性吧),一般正常的操作,苹果家的iTunes是不允许高版本的备份恢复到低版本的系统中,估计是怕出现问题或者是有意为之等原因,好在各路大神给出了解决方案,本人也亲身体验了iPhone6S Plus由IOS12.1降级到12.0.1,同时将12.1的备份恢复到12.0.1,中间出现了点点小插曲,不过最终还是完美搞定,下面就来啰嗦一下:</p><ul><li><p>将手机连接iTunes,并备份当前iPhone 12.1资料,这里据有些大神说不设置密码会好一点,反正我是没设置(比较听话型)</p></li><li><p>备份好之后开始刷机(备份比较费时间,建议备份的途中就可以下载固件,目前能降的也只有12.0.1),手机进入DFU模式(在确保与电脑连接好、iTunes也打开的情况下,将手机关闭后再开机,屏幕上显示苹果图标时按住Home键,大概10秒左右屏幕再次黑掉,这时松开开关键、继续按住Home键,再等大概10秒,iTunes会提示处于恢复模式的iPhone(大概这个意思吧,原话忘了),这时松开手机按住键盘上的Shift键找到固件刷入</p></li><li><p>开始最关键的步骤,修改备份资料,先找到备份目录(选最新的那个),一般默认目录为:<br><code>C:\Users\电脑用户名\AppData\Roaming\Apple Computer\MobileSync\Backup</code></p></li></ul><p><img src="https://cdn.uu126.cn/201811/iosjiangji_01.png" alt="请输入图片描述"></p><ul><li>打开备份文件夹.找到 Info.plist 用记事本/写字板(推荐使用plist Editor Pro)打开。先搜索<code>Build Version</code>修改为<code>16A404</code>(我的是这个,具体看你下载的固件名:<code>iPhone_5.5_12.0.1_16A404_Restore</code>版本号12.0.1后面就是<code>Build Version</code></li></ul><p><img src="https://cdn.uu126.cn/201811/iosjiangji_buildversion.png" alt="请输入图片描述"></p><p>接着修改<code>Product Version</code>,将其修改为:<code>12.0.1</code></p><p><img src="https://cdn.uu126.cn/201811/iosjiangji_productversion.png" alt="请输入图片描述"></p><p>两处修改完成之后保存一下,等iPhone进入系统就可以在iTunes中恢复了。说说我这边碰到的事,点击恢复一切正常,手机重启后卡在白屏幕界面上好长时间,我以为是挂了,就直接重启了,好在重启后一会就进入系统了,可能是我耐心不够好吧233,待手机进入系统后就是软件的恢复安装,过程还是需要点时间的,不过这些等待还是值得的,毕竟相比不能恢复备份来讲还是可以忽略不计的。目前手机使用正常,耗电相比12或12.1也没什么大的感觉,可能我原来就是一天一充吧(换过第三方大容量电池了)。</p><h4 id="聊点题外话"><a href="#聊点题外话" class="headerlink" title="聊点题外话"></a>聊点题外话</h4><p>顺便记录一下刷ipcc(运营商文件)的过程,虽然电信在大浙江已经开始VOLTE的测试了,本人也申请开通了(我是微信关注浙江电信,找人工服务开通的,发短信指令好多回一次没成功过),但一直没地试,加上手上的6SP是12版本,目前好像刷ipcc也不能实现,但还是想更新一下。12.0.1的带的是<code>中国电信33.0</code>,在论坛上已经有34.1了,本着试验精神果断的刷上了(昨晚刷的,体验了一天也没啥感觉233),顺附上网上移来的教程,昨晚刷的过程中也遇到了,就当给自己记录一下吧:</p><ul><li><p>安装iTunes,最好是最新版。苹果官网的链接:<a href="http://www.apple.com/cn/itunes/download/" target="_blank" rel="noopener">http://www.apple.com/cn/itunes/download/</a>如果你32位win系统,就装32位iTunes;64位win系统装64位iTunes;Mac系统自己带了iTunes。</p></li><li><p>需要允许你的iTunes可以加载ipcc文件。<br>本操作在当前电脑只需执行一次就够了,之后一直有效。重新安装或升级iTunes可能需要再来一遍。下面的命令执行完毕后,不会有任何提示。反而出错的话会有提示,一般是iTunes路径不对。</p></li></ul><p>windows32位的用户:首先请打开命令提示符。然后完整复制下方代码(含引号),回车执行。<br><code>"%ProgramFiles%\iTunes\iTunes.exe" /setPrefInt carrier-testing 1</code></p><p>如果提示错误,请换下面一种代码执行。之前iTunes安装到非C盘的话,自己改盘符。</p><p><code>"C:\Program Files\iTunes\iTunes.exe" /setPrefInt carrier-testing 1</code></p><p>windows 64位的用户:<br>首先请打开命令提示符。然后完整复制下方代码(含引号),回车执行。如果之前iTunes安装到非C盘的话,自己改盘符<br><code>"C:\Program Files\iTunes\iTunes.exe" /setPrefInt carrier-testing 1</code></p><p>如果提示错误,请换下面一种代码执行。如果之前iTunes安装到非C盘的话,自己改盘符。</p><p><code>"C:\Program Files (x86)\iTunes\iTunes.exe" /setPrefInt carrier-testing 1</code></p><p>MacOS用户:请打开<code>Terminal</code>终端。然后完整复制下方代码,回车执行。</p><p><code>defaults write com.apple.itunes carrier-testing -bool true</code></p><p>如果不行,请换下面一种代码执行。</p><p><code>defaults write com.apple.iTunes carrier-testing -bool YES</code></p><p>第三步:刷入IPCC<br>先打开itunes,连上你的iPhone或者iPad。选择好当前已经连接的设备。<br>然后按住shift键的同时,用鼠标选择“更新”。如图。(Mac用户的话,则需要按住Option键的同时,用鼠标选择“更新”)</p><p><img src="https://cdn.uu126.cn/201811/iosjiangji_03.png" alt="请输入图片描述"></p><p>然后会出现一个对话框,可以右下角选择文件类型为ipcc,如图。(Mac系统不需要手动选文件类型为ipcc),如果没有ipcc可以选择,说明刚才第2步操作有误。请重复第2步。之后选好路径和要刷的ipcc,点击确认就行了。<p><img src="https://cdn.uu126.cn/201811/iosjiangji_04.png" alt="请输入图片描述"></p><p>后面两张图片有点老了(5S的机型,不过现在也差不多的,将就着看吧),附上中国电信34.1的ipcc文件官方下载地址:</p><p><a href="https://updates.cdn-apple.com/2018/carrierbundles/041-00618-20181030-36B3100E-D989-11E8-9C49-1F9D2C4EE937/ChinaTelecom_USIM_cn_iPhone.ipcc" target="_blank" rel="noopener">https://updates.cdn-apple.com/2018/carrierbundles/041-00618-20181030-36B3100E-D989-11E8-9C49-1F9D2C4EE937/ChinaTelecom_USIM_cn_iPhone.ipcc</a></p><p>没事想折腾一下的亲,可以放马去试了,我决不拦着?</p>]]></content>
<categories>
<category> 我的地盘 </category>
</categories>
<tags>
<tag> iphone </tag>
</tags>
</entry>
<entry>
<title>2018年的第一场雪</title>
<link href="/post/3001.html"/>
<url>/post/3001.html</url>
<content type="html"><![CDATA[<p>早上起来突然发现窗外都是白白的一片——下雪了!昨晚临睡前还瞟了一眼天气预报说今天是雨夹雪呀,再说了上次报中雪、暴雪结果也只是留下那淡淡的一点白(头皮屑似的),今天竟然……,简直太意外了,这才是下雪该有的本色嘛,2018年的第一场雪非今天莫属了233。</p><a id="more"></a><p>先来几张雪景Look一下吧,虽然不及北国雪景,却也是衢城百姓今天遇到的第一场大雪:</p><p><img src="https://api.uu126.cn/wp-content/uploads/2018/01/qzxj01.jpg" alt=""></p><p><img src="https://api.uu126.cn/wp-content/uploads/2018/01/qzxj02.jpg" alt=""></p><p><img src="https://api.uu126.cn/wp-content/uploads/2018/01/qzxj03.jpg" alt=""></p><p><img src="https://api.uu126.cn/wp-content/uploads/2018/01/qzxj04.jpg" alt=""></p><p><img src="https://api.uu126.cn/wp-content/uploads/2018/01/qzxj05.jpg" alt=""></p><p>还是有点小范的感觉吧,下午再到外面溜溜,雪天的衢城果然有不一样的韵味,这就是我所在的城市,一个浙西小城的雪下风光!</p>]]></content>
<categories>
<category> 我的地盘 </category>
</categories>
<tags>
<tag> 随笔 </tag>
</tags>
</entry>
<entry>
<title>Win10提示威胁服务已经停止,立即重启的解决方法</title>
<link href="/post/2529.html"/>
<url>/post/2529.html</url>
<content type="html"><![CDATA[<p>昨天手动将win10升级到1709,内部版本为16299.125。自带的杀毒软件Windows defender安全中心提示威胁服务已经停止,立即重启。病毒防护也无法启用,如图所示,点击立即重新启动,显示“发生未知错误。”。虽然平常整个电脑管家啥的,但就稳定性还是系统自带的好,加上微软这几年的不断努力,系统自带的杀毒软件也越来越完善了,虽然这些年没有查出什么威胁,只是不能运行,万一哪天遇到了,心里还是怕怕的。</p><a id="more"></a><p><img src="https://api.uu126.cn/usr/uploads/2018/01/2779409585.jpg" alt="win10_wx01.jpg"><br><img src="https://api.uu126.cn/usr/uploads/2018/01/2825320544.jpg" alt="win10_wx02.jpg"></p><p>于是找度娘度了一番,发现很多法子都是修改组策略的方法来启动,但我从未更改过相关设置,按提示点进去看了,却发现都是“未配置”状态。另外还有命令提示符的方法,试了无效。无奈之下,之好翻墙请来谷哥来帮忙,终于在微软社区找到了个解决办法:</p><blockquote><p><code>Windows+r</code>,输入:<code>regedit</code>,定位路径:<code>HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender</code>,查看是否存在<code>DisableAntiSpyware</code>这个键值,若有请删除。</p></blockquote><p>按步骤修改好注册表,并重启,果然解决了,看来关键时候还是要找谷哥帮忙呀。</p><p><img src="https://api.uu126.cn/usr/uploads/2018/01/2986629762.png" alt="win10_wx03.png"></p>]]></content>
<categories>
<category> 我的地盘 </category>
</categories>
<tags>
<tag> windows </tag>
</tags>
</entry>
<entry>
<title>苹果IOS旧版验证意外开启风波</title>
<link href="/post/2525.html"/>
<url>/post/2525.html</url>
<content type="html"><![CDATA[<p>今天下午三点半左右收到朋友微信说,苹果开放旧版IOS验证了(意味着系统可以降级了),这可是千载难得的好机会,至少打从我用iPhone来还是头一回遇见,心情不是一般的意外,赶紧上<a href="https://ipsw.me/" target="_blank" rel="noopener">https://ipsw.me/</a>瞧了一眼,一瞧果然开放了验证:</p><a id="more"></a><p><img src="https://api.uu126.cn/usr/uploads/2018/01/3722535076.png" alt="iphone6sp_ipsw.png"></p><p>这验证开放的力度不是一般的大,连2016年12月份的10.2都开放了,心想赶紧动手吧,管它什么开放原因呢,早就厌倦了11.2.1了(整的跟安卓似的,如:信号条、狗啃的汉化等),先去网上下载了10.2的固件,同时直接把手中的6SP关机并进入DFU模式,等固件下载好之后就开始Shift+恢复刷机了,看着那进度条跑的(开心呀)到“iPhone从备份中恢复”再到手机黑屏出现白苹果(太开心了),可没多久手机屏幕上就跳出了恢复模式,这不是一脸懵</p><p><img src="https://api.uu126.cn/usr/uploads/2018/01/1364713659.jpg" alt="iphone6sp_hfms.jpg"></p><p>看了一下威锋论坛(今天论坛也是卡的一B,好多人在讨论验证刷机降级的事),看到有几个坛友说刷之前要先退Apple ID再刷(我去),好吧赶紧再手机刷回11.2.1(还好上次下载过这个固件,没删除掉),折腾到这个时间也差不多下午四点左右了,等11.2.1刷好进系统,一路的设置好然后再抹掉所有内容,然后再刷10.2,整个过程又浪费了10分钟左右,期间看了一下论坛,有人在说验证关闭了(我了个去……),再去ipsw.me网站强制刷新看了一下,还显示的,但等我刷机滚动条跑到头时报3194错误(心凉了半截,验证真TMD的关闭了?),抱着大大的侥幸心理又刷了一遍,结果仍旧报错,再试了几次错误依旧,再回头看论坛,越来越多的人在说验证关闭了,再看ipsw.me网站发现能验证的只有11.2以上系统了,“幸福”就这么彻底跟我说Byebye了。</p><p>后来还不死心,还不停的刷论坛,还看到有消息说下午6点至7点可能还会开放一波,于是又满怀期待的等啊等,结果是等到我更博还没有出现,第二波的慌言就这么不攻自破了,心情也糟了(饿到7点钟哪还有什么好心情,赶紧去吃饭了)。</p><p>这次大乌龙事件,让很多幸运儿尝到了甜头,那些二手机贩子们不知道是该乐还是……,相信过不了多久库克老爹会对今天的事件做一个解释吧,总不能又是哪个临时工把贵州的iCloud给……。不过说到最后,还是希望哪一天能够再次开放验证(不过要让我知道哈,要不然我会更加不开心的),让众果粉们再一次刷爆威锋论坛,刷爆苹果的验证服务器,降到自己喜欢的系统版本,库克老爹等你哈……</p>]]></content>
<categories>
<category> 智能终端 </category>
</categories>
<tags>
<tag> iphone </tag>
</tags>
</entry>
<entry>
<title>斐讯K2P多拨后负载均衡IP配置 玩客云</title>
<link href="/post/2522.html"/>
<url>/post/2522.html</url>
<content type="html"><![CDATA[<p>相信最近蛮多人都在折迅雷家的玩客云,虽然每天挖到的链克(以前叫玩客币)越来越少,母鸡(玩客云)越来越多,但还是挡不住众人的兴致,越来越多的“矿民”不断涌入,这其中当然就有我弱弱的身影(个位数的母鸡数量,只能这么称呼自己了)。大约是在12月份初“入道”的吧,那时挂在家里200M的电信宽带一拖二(这里不得不说一下电信宽带,下载速度还尚可,可这上行速度就小的可怜,也就十多兆吧),开始每天还有4个多链克,到现在就只有3个多了,还是多拨的情况下(现在一拖三),随着养鸡人的不断涌入,以后可能还得少下去……。</p><a id="more"></a><p>多拨在电脑端测速可以看到上行有明显提升,下行一样,但对母鸡(玩客云)没有太大作用,唯一的作用是多拨后可以一拖多台,不多拨只能拖一台(拖多了那收益,不敢直视……),但是多拨后出现个状况,那就是在不朽玩客云客户端(作者免费开放的一个监工软件,目前更新很快,很好用,下载地址:<a href="https://github.com/Immortalt/imt-wanke-client/blob/master/README.md" target="_blank" rel="noopener">https://github.com/Immortalt/imt-wanke-client/blob/master/README.md</a>)<br>会发现,多台母鸡分配了同一个外网IP,这还了得,要改!百度了很多,也没找到什么好的,也咨询群里一些大神,加上自己不断测试,发现可以解决这一症状,具体操作为:</p><h4 id="为母鸡(玩客云)在路由器中静态分配IP地址,这里以K2P的潘多拉固件为例:"><a href="#为母鸡(玩客云)在路由器中静态分配IP地址,这里以K2P的潘多拉固件为例:" class="headerlink" title="为母鸡(玩客云)在路由器中静态分配IP地址,这里以K2P的潘多拉固件为例:"></a>为母鸡(玩客云)在路由器中静态分配IP地址,这里以K2P的潘多拉固件为例:</h4><p><img src="https://api.uu126.cn/usr/uploads/2018/01/3630395412.png" alt="K2Pdb00.png"></p><p>找到“网络”-“DHCP/DNS”,再下拉到“静态地址分配”,输入主机名(有多台时不要重名),母鸡(玩客云)的MAC地址,将要分配的IP地址(注意要分配的是不同的IP地址,相同地址会出问题的)。</p><h4 id="启用路由器多拨"><a href="#启用路由器多拨" class="headerlink" title="启用路由器多拨"></a>启用路由器多拨</h4><p>以潘多拉为例,先设置好WAN的协议为PPPOE,然后输入宽带账号和密码再保存,再点击“虚拟WAN”,输入需要多拨的个数,点启用即可</p><h4 id="设置负载均衡,以达到不同母鸡不同外网IP效果"><a href="#设置负载均衡,以达到不同母鸡不同外网IP效果" class="headerlink" title="设置负载均衡,以达到不同母鸡不同外网IP效果"></a>设置负载均衡,以达到不同母鸡不同外网IP效果</h4><ul><li>先点击左侧菜单中的“网络”,再点击“负载均衡”,然后再点击右边的“设置”–“策略”,如下图:</li></ul><p><img src="https://api.uu126.cn/usr/uploads/2018/01/2984377646.png" alt="K2Pdb01.png"></p><ul><li>设置策略,按图所示打开并输入策略名,如有多台设备需要设置的,请输入不同的策略名后点“添加”</li></ul><p><img src="https://api.uu126.cn/usr/uploads/2018/01/3885837336.png" alt="K2Pdb02.png"></p><p>接下在“使用的成员”中选择好要使用的虚拟WAN接口,“备用成员”选“拒绝该流量”,设置好之后点保存</p><p><img src="https://api.uu126.cn/usr/uploads/2018/01/3680034632.png" alt="K2Pdb03.png"></p><ul><li>设置规则,按图所示打开并输入规则名(不能和策略名相同),再点“添加”</li></ul><p><img src="https://api.uu126.cn/usr/uploads/2018/01/2276279002.png" alt="K2Pdb04.png"></p><p>接着在“源地址”输入之前静态分配给母鸡的IP地址,在“使用的策略”选择刚才添加的策略名称后点击保存</p><p><img src="https://api.uu126.cn/usr/uploads/2018/01/2685667239.png" alt="K2Pdb05.png"></p><ul><li>操作完毕之后,在右上角可以看到“未保存的配置 ”,</li></ul><p><img src="https://api.uu126.cn/usr/uploads/2018/01/4192590036.png" alt="K2Pdb06.png"></p><p>点击进去后,再点右下方的“保存&应用”,等保存好之后再重启一下路由器,建议同时断一下母鸡的电,过一会等一切OK(多拨上去),再在监工那里看一下母鸡的外网IP地址,哈哈一机一IP了,且这个IP地址是你在策略和规则中设定的虚拟WAN端口拨通的外网IP地址,至从负载均衡及IP配置结束。</p><p>最后,上几张K2P拆机图,由于K2P是金属上壳(下过是塑料),所以拆机相对于全塑料的K2来讲要更简单一点,这次到手的是A2版本,也就是A1的缩水版(屏蔽罩少了,电源也由12V 2A弱化成12V 1.5A,据说电容还有变化),A2(或A1)采用的是联发科MTK的CPU,相对于采用博通的B1,可刷固件要多一点,想买A2就选银色,B1选金色(一般是这样),A1版本比较难买到了,下面就Show一下斐讯K2P的拆机图:<br><img src="https://api.uu126.cn/usr/uploads/2018/01/1926935247.jpg" alt="K2P01.jpg"><br><img src="https://api.uu126.cn/usr/uploads/2018/01/1301512665.jpg" alt="K2P02.jpg"><br><img src="https://api.uu126.cn/usr/uploads/2018/01/252314053.jpg" alt="K2P03.jpg"></p>]]></content>
<categories>
<category> 我的地盘 </category>
</categories>
<tags>
<tag> 玩客云 </tag>
</tags>
</entry>
<entry>
<title>关于最近的微信小程序——跳一跳游戏</title>
<link href="/post/2511.html"/>
<url>/post/2511.html</url>
<content type="html"><![CDATA[<p>自从上次微信更新以后,新出来的《跳一跳》就跟着火起来了~ ,微信小程序的游戏大家觉得还不错~,由于游戏有周排行榜,可以挑战好友,互动性还不错。挺受大家的青睐!下面分享一些技巧,以及市面上的辅助。</p><p>和谐游戏,拒绝外挂!!!</p><a id="more"></a><p><img src="https://api.uu126.cn/usr/uploads/2018/01/3385036911.jpg" alt="wxtyt2.jpg"></p><p>这次更新还有更人性化的功能,就是你用过的小程序,直接下拉屏幕就可以看到,不用再跑到小程序里去找了,玩起来是不是很方便呀。</p><p><img src="https://api.uu126.cn/usr/uploads/2018/01/1270167550.jpg" alt="wxtyt.jpg"></p><h4 id="原版跳一跳?"><a href="#原版跳一跳?" class="headerlink" title="原版跳一跳?"></a>原版跳一跳?</h4><p>有大佬分享了一个IOS版本跳一跳: Bottle Flip<br><a href="https://itunes.apple.com/us/app/bottle-flip/id1178454068?mt=8" target="_blank" rel="noopener">https://itunes.apple.com/us/app/bottle-flip/id1178454068?mt=8</a></p><p>据说腾讯大佬是抄袭这个。呃,也不奇怪~(腾讯也不是第一次,当然肯定不会是最后一次233)</p><h4 id="实用技巧"><a href="#实用技巧" class="headerlink" title="实用技巧"></a>实用技巧</h4><ul><li><p>跳至盒子中间,+2 分</p></li><li><p>连续跳至盒子中间,会在上次的基础上累加,+2分</p></li><li><p>跳至音乐盒上停留会播放音乐,+30分</p></li><li><p>跳至便利店停留会开门,+15分</p></li><li><p>跳至魔方停留魔方会旋转,+10分</p></li><li><p>跳至井盖上停留会有冲水声音,+5分</p></li></ul><h4 id="辅助技巧"><a href="#辅助技巧" class="headerlink" title="辅助技巧"></a>辅助技巧</h4><p>目前网络上的跳一跳的辅助比较多,大部分实现的原理是:先截屏图片,计算方块之间的距离,方块之间的距离 / 按压屏幕时间,得到一个适合自己的参数!然后就开始玩了!!!</p><ul><li>Python版:</li></ul><p><a href="https://github.com/wangshub/wechat_jump_game" target="_blank" rel="noopener">https://github.com/wangshub/wechat_jump_game</a></p><ul><li>NodeJS版:</li></ul><p><a href="https://github.com/wotermelon/toJump" target="_blank" rel="noopener">https://github.com/wotermelon/toJump</a></p><ul><li>安卓ROOT版:</li></ul><p><a href="https://pan.baidu.com/s/1eSAPEjo" target="_blank" rel="noopener">https://pan.baidu.com/s/1eSAPEjo</a></p><h4 id="直接改分"><a href="#直接改分" class="headerlink" title="直接改分"></a>直接改分</h4><p>今天突然有大佬分享,直接修改分数的接口。不过目前已经GG了。</p><p><a href="https://zhuanlan.zhihu.com/p/32473340" target="_blank" rel="noopener">https://zhuanlan.zhihu.com/p/32473340</a></p>]]></content>
<categories>
<category> 我的地盘 </category>
</categories>
<tags>
<tag> 随笔 </tag>
</tags>
</entry>
<entry>
<title>2018,我来了</title>
<link href="/post/2508.html"/>
<url>/post/2508.html</url>
<content type="html"><![CDATA[<p>2017已经越走越远了,过去的一年,博客经历了很多,从Typecho到Hexo再又到Ghost,现在“好像”又回到了起点(Typecho),更博也从一个月几篇到几月一篇再到现在……,年纪大了却越变越“懒”(生活琐事越来越多或许也算是个理由吧),折腾的心气也是逐渐下降(在期待下一个燃烧点吧233)。这一年不仅博客程序反复变迁,就连托管主机也在变化着,从最早的阿里云到华为云,再到现在的腾讯云,中国的VPS巨头好像都串过门了(玩站以来用过小厂(记不得名字了)、百度BAE、新浪SAE、西部数码、阿里云、华为云、腾讯云等),挺多的吧,国外也用过一两家,如:VULTR,回头看看发现我还是蛮能折腾的,尤其在阿里云,有买有退,这里真的要给阿里云点个赞,希望别把我拉黑哈,保不准小爷哪天又回来了……</p><a id="more"></a><p>之所以这次会搬到马叔(腾讯云)家,并不是我不爱马爸爸(阿里云),只是最近刚好到手了点福利(腾讯云送的2K优惠券,于是就下手了台HongKong的三年主机,马叔V5呀),之前也有关注过马叔家的,不过一直坚守阵营没有动过,一来阿里云的稳定可靠,让我没有挪窝的决心;二来国内备案迁入也是个麻烦事,所以就……,这次情况特殊哈233。言归正传,用了腾讯云3天,目前使用还算是稳定的,希望别像阿里云香港主机那样就好(阿里云国内主机那是没的说,不过香港的主机,之前用过一段时间,三不三会抽风一下,远程连接不上等情况)。</p><p><img src="https://api.uu126.cn/usr/uploads/2018/01/2916618456.jpg?imageView2/2/w/1239/q/75/format/webp" alt="img_2018.jpg"></p><p>2018年,代表着新的开始,不出意外的等方面,不会再挪窝了,博客程序按目前状态估计也不会去折腾了(当然不能保证长久了……),得空上来啰嗦一下,再空了哪里修修补补糊改一下,网站、博客这点事目前看来也就这样了。2018年,还有很多愿望希望可以实现,比如:早点增驾成功,早点解决人生几大事,当然还要多赚钱(压力一直就山大,努力、努力……),有机会的话去一些没去过的地方游玩一下等等。<br>最后借此祝福我身边所有的朋友2018年心想事成、事事顺心、身体健康(来点俗的233)</p>]]></content>
<categories>
<category> 我的地盘 </category>
</categories>
<tags>
<tag> 随笔 </tag>
</tags>
</entry>
<entry>
<title>Centos7上搭建Lnmp+Ghost 1.x博客</title>
<link href="/post/2504.html"/>
<url>/post/2504.html</url>
<content type="html"><![CDATA[<p>上次写过<a href="https://blog.uu126.cn/debian-8-8da-jian-lnmp-ghost-1-x-jiao-cheng/" target="_blank" rel="noopener">《Debian 8.X搭建Lnmp+ Ghost 1.x 教程》</a> ,这不将主机从香港搬回到大杭州后,域名又倒腾回之前的uu126.cn(当然加了个前缀blog),加上前不久刚好在<a href="http://blog.imzhengfei.com/centos-7-an-zhuang-pei-zhi-ghost-1-x/" target="_blank" rel="noopener">海月博客</a> ,顺手也尝试了一下Centos,结果一切搭建顺利,又可以让我啰嗦一下了。</p><a id="more"></a><ol><li>Lnmp的搭建就不细说了,可以参照我之前的博文(点击:<a href="https://blog.uu126.cn/debian-8-8da-jian-lnmp-ghost-1-x-jiao-cheng/" target="_blank" rel="noopener">传送门</a> ),这里还是推荐使用Oneinstack,相对功能多一点。搭建好以后,使用PHPmyadmin创建所需的博客数据库用户名、数据库(用这个创建较方便),另外也可以直接配置好站点的Nginx文件和SSL,这里就不在啰嗦了,有问题的亲,可以留言。</li><li>安装 Node.js<ul><li>方法一:</li></ul></li></ol><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">curl -sL https://deb.nodesource.com/setup_6.x | bash - </span><br><span class="line">apt-get install nodejs</span><br></pre></td></tr></table></figure><ul><li>方法二(推荐使用):</li></ul><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">国外下载地址:</span><br><span class="line">wget https://nodejs.org/download/release/v6.9.5/node-v6.9.5.tar.gz</span><br><span class="line">国内下载地址:</span><br><span class="line">wget https://npm.taobao.org/mirrors/node/v6.9.5/node-v6.9.5.tar.gz</span><br><span class="line">tar zxvf node-v6.9.5.tar.gz</span><br><span class="line">cd node-v6.9.5</span><br><span class="line">./configure </span><br><span class="line">make && make install</span><br></pre></td></tr></table></figure><p>安装好之后可以使用<code>node -v</code>查看,能看到版本号一般就OK了。<br>3. 配置 Yarn<br> 可选,使用 yarn 代替 npm,更加快速,安全,稳定。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo</span><br><span class="line">yum -y install yarn</span><br></pre></td></tr></table></figure><p>同样安装之后可以使用<code>yarn -v</code>查看,看到版本号就行。</p><ul><li><p>查看 npm 全局生成可执行文件软链的路径:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm -g bin</span><br></pre></td></tr></table></figure><blockquote><p>/usr/bin</p></blockquote></li><li><p>查看 yarn 全局生成可执行文件软链的路径:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">yarn global bin</span><br></pre></td></tr></table></figure><blockquote><p>/usr/local/bin</p></blockquote></li></ul><p>修改 yarn 全局生成可执行文件软链的路径和 npm 保持一致:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">yarn config set prefix /usr</span><br></pre></td></tr></table></figure><blockquote><p>yarn config v1.2.1<br>success Set “prefix” to “/usr”.<br>Done in 0.03s.</p></blockquote><p>再次查看 yarn 全局生成可执行文件软链的路径:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">yarn global bin</span><br></pre></td></tr></table></figure><blockquote><p>/usr/bin</p></blockquote><ol start="4"><li><p>安装 Ghost-CLI<br>使用 yarn 全局安装 ghost-cli:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">yarn global add ghost-cli</span><br></pre></td></tr></table></figure><p>查看安装的 ghost-cli 版本:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ghost -v</span><br></pre></td></tr></table></figure><blockquote><p>Ghost-CLI version: 1.1.3</p></blockquote></li><li><p>安装Ghost1.X<br>创建网站目录:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">mkdir -p /home/wwwroot/blog.uu126.cn</span><br></pre></td></tr></table></figure><p>进入到网站目录:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">cd /home/wwwroot/blog.uu126.cn</span><br></pre></td></tr></table></figure><p>在当前目录免配置安装 ghost:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ghost install --no-setup</span><br></pre></td></tr></table></figure></li></ol><blockquote><p>✔ Checking system Node.js version<br>✔ Checking current folder permissions<br>System checks failed with message: ‘Linux version is not Ubuntu 16’<br>Some features of Ghost-CLI may not work without additional configuration.<br>For local installs we recommend using ghost install local instead.<br>? Continue anyway?</p></blockquote><p>输入<code>y</code>,回车:</p><blockquote><p>? Continue anyway? Yes<br>✔ Checking operating system<br>✔ Checking MySQL is installed<br>✔ Checking for latest Ghost version<br>✔ Setting up install directory<br>✔ Downloading and installing Ghost v1.16.0<br>✔ Finishing install process</p></blockquote><ol start="6"><li>配置Ghost1.x<ul><li>使用 ghost-ci 配置 ghost:<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ghost config</span><br></pre></td></tr></table></figure><blockquote><p>? Enter your blog URL: (<a href="http://localhost:2368" target="_blank" rel="noopener">http://localhost:2368</a>)</p></blockquote></li></ul></li></ol><p>输入自己网站完整访问路径<code>http://blog.uu126.cn</code>回车:</p><blockquote><p>? Enter your blog URL: <a href="http://blog.imzhengfei.com" target="_blank" rel="noopener">http://blog.imzhengfei.com</a><br>? Enter your MySQL hostname: (localhost)</p></blockquote><p>输入 MySQL 主机地址,如果在本机直接回车:</p><blockquote><p>? Enter your MySQL hostname: localhost<br>? Enter your MySQL username:</p></blockquote><p>输入上面创建的 MySQL 用户名,密码,数据库名称:</p><blockquote><p>? Enter your MySQL username: ghost<br>? Enter your MySQL password: [hidden]<br>? Enter your Ghost database name: ghost</p></blockquote><ul><li>初始化数据库</li></ul><p>使用 ghost-ci 初始化数据库:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ghost setup migrate</span><br></pre></td></tr></table></figure><blockquote><p>✔ Running database migrations</p></blockquote><ul><li>配置系统用户</li></ul><p>使用 ghost-ci 添加 ghost 用户来运行 ghost:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ghost setup linux-user</span><br></pre></td></tr></table></figure><blockquote><p>Running sudo command: useradd –system –user-group ghost<br>Running sudo command: chown -R ghost:ghost /home/wwwroot/blog.imzhengfei.com/content<br>✔ Setting up “ghost” system user</p></blockquote><ul><li>配置系统服务</li></ul><p>使用 ghost-ci 创建系统服务:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ghost setup systemd</span><br></pre></td></tr></table></figure><blockquote><p>Running sudo command: ln -sf >/home/wwwroot/blog.uu126.cn/system/files/ghost_undefined.service >/lib/systemd/system/ghost_undefined.service<br>Running sudo command: systemctl daemon-reload<br>✔ Setting up Systemd</p></blockquote><ol start="7"><li>测试访问博客<ul><li>使用 ghost-ci 启动当前网站:<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ghost start</span><br></pre></td></tr></table></figure></li></ul></li></ol><blockquote><p>✔ Validating config<br>Running sudo command: systemctl start ghost_undefined<br>✔ Starting Ghost<br>Running sudo command: systemctl enable ghost_undefined –quiet<br>✔ Starting Ghost<br>You can access your blog at <a href="http://blog.uu126.cn" target="_blank" rel="noopener">http://blog.uu126.cn</a><br>Ghost uses direct mail by default<br>To set up an alternative email method read our docs at <a href="https://docs.ghost.org/docs/mail-config" target="_blank" rel="noopener">https://docs.ghost.org/docs/mail-config</a></p></blockquote><ul><li>尝试访问自己的博客。</li></ul><p>注册管理员账户<strong>( domain 是自己的博客域名)</strong>:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">http://<domain>/ghost</span><br></pre></td></tr></table></figure>]]></content>
<categories>
<category> 网站建设 </category>
</categories>
<tags>
<tag> Ghost </tag>
</tags>
</entry>
<entry>
<title>再见,我的长假</title>
<link href="/post/2503.html"/>
<url>/post/2503.html</url>
<content type="html"><![CDATA[<p>时间过的可真是快呀,转眼前我的国庆中秋长假就“say byebye”了(没办法,俺们不像大伙富裕,有8天长假,咱单位只有6天,悲催呀……)。节后第一天上班还真有点不适应(貌似自从上个月请假以来,都大半个月没有上班了),当然咱们的适应力还是OK的,往那办公桌前一坐,感觉就回来的差不多了233</p><a id="more"></a><p>由于大部分同事还在休息(错开轮休的),所以今天上班倒是很少人,偌大的一个办公室只有俺们一个人,也算是清静吧,唯一美中不足的是:财务让我统计其它固定资产(这事都是我请假前的了,竟然还能到现在,有点郁闷……),于是乎开始“昏天暗地”般统计(差点没睡着……),上班总是有那么多的烦心事,不上班却又要开始烦更多的事,所以说人呀!总是那么的矛盾!</p><p>其实截止到现在,也还折腾了两件事情,一是手贱把小米5的系统由稳定版升级到了MIUI9开发版,本来还想Hold住等MIUI9出稳定版的,可结果还是没…………。</p><p><a href="https://cdn.uu126.cn/201710/miui9.jpg" target="_blank" rel="noopener"><img src="https://cdn.uu126.cn/201710/miui9.jpg" alt="miui9"></a></p><p>升级了之后才发现,其实也没有小米吹的那么神,至少安装同样数量的应用和使用,剩余内存也都差不多,2G左右徘徊(俺的小米5是尊享版,4+128),至于打开应用的速度没啥感觉,耗电也差不多,就是默认主题换了换,然后一些功能上精简了下,真的没感觉有多大的性能提升(再用几天,不爽就滚回稳定版,反正BL锁不解就是了)。</p><p>第二件事还是本博客,博客目前使用的是Ghost1.11.1版本,由于初次安装时数据库使用的是SQLite3(当时看烧饼博客,图方便……),现在想倒腾到Mysql时,却意外频频,老是报故障(主要是想用备份宝备份数据库,但是它不支持SQLite3,只支持Mysql、SQL server、Oracle这三种数据库),试了好几回都成功过,最后一次成功了(另建了一个博客目录,重新安装)但一重启主机就启动不了Ghost了,郁闷了(看看时间不早了,明天还得上班的份上,下次有空再折腾吧)</p>]]></content>
<categories>
<category> 我的地盘 </category>
</categories>
<tags>
<tag> 随笔 </tag>
</tags>
</entry>
<entry>
<title>Ghost博客时间汉化方案</title>
<link href="/post/2502.html"/>
<url>/post/2502.html</url>
<content type="html"><![CDATA[<p>本站目前使用的Ghost主题是<code>Kaldorei</code>,感觉小蘿蔔丁做的主题还是非常不错的,而且这个主题目前已经支持Ghost1.X版本了(貌似我也是刚晓的,因为本站的Ghost版本已由<code>Ghsot0.7.4汉化版</code>升级回<code>Ghost1.6.2</code>,没有升到最新的<code>1.11.1</code>是因为在阿里云做的快照是 <code>1.6.2</code>,没升级而已),目前测试了一下,还没发现问题,归档当然是OK的了!就是由于是Ghost英文版的,所以显示的博文时间也是英文,这不按照小蘿蔔丁给的办法也汉化了,具体的看小蘿蔔丁原文:</p><a id="more"></a><blockquote><p>使用Ghost搭建博客已经有两年多了。就连自己开源的主题Kaldorei也已经一年零7个月,到今天为止ghost-theme-kaldorei已经获得了100个star。刚刚破百。感谢这100位coder的支持。ghost 从我开始用的的0.7.x版本已经升到了1.x版本。期待已久的ghost也已经发布了1.x正式版。最近看下稳定版本在1.8.4。发展迅猛。不过到现在貌似也没有看到文档中有关日期的国际化相关API。<br>如何让博客的日期汉化<br>那么只能自己想办法修改了。分析下博客中使用到日期的模版。阅读官方文档得知这里谈到的日期ghost提供的日期格式化助手<code>date.js</code>。而这个助手使用的是<code>moment.js</code>。这就好办了。前端同学对<code>moment.js</code>并不陌生。它是支持国际化的。我们找到date助手的代码,修改它就好了。</p></blockquote><p>路径:</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">/ghost/core/server/helpers/date.js</span><br></pre></td></tr></table></figure><p>打开这个文件,修改如下:</p><p>####< 1.x版本(如果用的是Ghost0.7.4汉化版,可以不用修改)</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">// <span class="comment"># Date Helper</span></span><br><span class="line">// Usage: `{{date format=<span class="string">"DD MM, YYYY"</span>}}`, `{{date updated_at format=<span class="string">"DD MM, YYYY"</span>}}`</span><br><span class="line">// Formats a date using moment.js. Formats published_at by default but will also take a date as a parameter</span><br><span class="line">var moment = require(<span class="string">'moment'</span>), </span><br><span class="line"> date;</span><br><span class="line"></span><br><span class="line">moment.locale(<span class="string">'zh-CN'</span>); // 日期汉化</span><br></pre></td></tr></table></figure><p>####>= 1.x版本</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">// <span class="comment"># Date Helper</span></span><br><span class="line">// Usage: `{{date format=<span class="string">"DD MM, YYYY"</span>}}`, `{{date updated_at format=<span class="string">"DD MM, YYYY"</span>}}`</span><br><span class="line">//</span><br><span class="line">// Formats a date using moment-timezone.js. Formats published_at by default but will also take a date as a parameter</span><br><span class="line"></span><br><span class="line">var proxy = require(<span class="string">'./proxy'</span>), </span><br><span class="line"> moment = require(<span class="string">'moment-timezone'</span>),</span><br><span class="line"> SafeString = proxy.SafeString;</span><br><span class="line"></span><br><span class="line">moment.locale(<span class="string">'zh-CN'</span>); // 日期汉化</span><br></pre></td></tr></table></figure><p>保存之后,重启博客就会看到日期已经汉化了。</p>]]></content>
<categories>
<category> 网站建设 </category>
</categories>
<tags>
<tag> Ghost </tag>
</tags>
</entry>
<entry>
<title>2017年的中秋节</title>
<link href="/post/2501.html"/>
<url>/post/2501.html</url>
<content type="html"><![CDATA[<p>今年的中秋节与往年略不同,因前段时间个人身体原因,导致中秋节还得跑去医院复查(主要还是国庆中秋放假,医生也要休息嘛,复查也得“逮”他在的时候嘛233)。按照女票的建议,一早就空腹去了(还好我听了,要不然第二天还得再跑一趟),到了医院直接找老廖,结果他竟然在我后面等电梯,见面后我把最近在家静养时出现的状况作了简短的汇报,随即老廖安排我去挂号,并嘱咐挂完后等一会直接把钱付掉,就去抽血化验就可以了,不用再去找他了,一有结果他会电联我(这是有多么不想再看见我呀233)。</p><a id="more"></a><p>不得不说这医院负责挂号的大姨们,好像我欠钱似的,一个个一副要吃人样子(据朋友说这医院的都这样,习惯就好了),好吧匆匆挂完号并略等会付完钱就直奔4楼检验科抽血了。可能是节假日的缘故吧,很快就轮到我了,医生麻利的给我抽了3管血(好心疼呀),压着止血棉不紧不慢的离开了医院回家喽(坐等老廖结果了,希望OK)。</p><p>回家的路上出了点小状况,由于那条路我骑的很少,依稀记得自己没骑错的,结果一个转弯没多久看见了警察蜀黍,顿时明白自己骑错道了,老老实实按照蜀黍的引导到了边上,蜀黍按惯例进行了一番教育,随后掏出那准备已久的罚单,我也只好麻利的签单了(好在只是罚10块大洋),一脸苦逼回到了家里,草草的把中饭吃了(空腹一早上,又连续放血,早就饿的不行了),心想这中秋节过的,早知道就打滴滴了,可惜……</p><p><a href="https://oft4n5tq6.qnssl.com/image/a/2f/fe488def6cb930fd023e3adae5f61.jpg" target="_blank" rel="noopener"><img src="https://oft4n5tq6.qnssl.com/image/a/2f/fe488def6cb930fd023e3adae5f61.jpg" alt=""></a></p><p>小郁了一下午,正以为今年中秋节就这么郁过去了,女票发微信来了,几句一聊马上就把我这老宅呼出去了(没办法,定力有些时候还是有所欠缺的),由于下起了毛毛雨,路上有点小堵(幸好咋骑的是小毛驴),过了好一会才和女票会师,原本女票想吃烤红薯的,结果两人把整条坊门街都逛过了,硬是没找到(不知道是不是下雨的原因),于是决定去一哲吃,按旨意麻溜的把女票送到了一哲,点了很多女票喜欢吃的一哲卷、章鱼小丸子等,当然还有我喜欢吃的主食拉面……</p><p><a href="https://oft4n5tq6.qnssl.com/image/0/5e/cbc44078b1ae7a82d204cd5144331.jpg" target="_blank" rel="noopener"><img src="https://oft4n5tq6.qnssl.com/image/0/5e/cbc44078b1ae7a82d204cd5144331.jpg" alt=""></a></p><p>2017年我的中秋节就在两人共进晚餐中渡过了,当然辛苦的非女票莫属了,陪完我过完中秋,还得回去陪父母,在这里我要给女票点一个大大的赞,人生有如此贤惠女票,又有何求呀(没醉哦233)。今年的中秋节没能回家陪伴老爹,有点遗憾(老爸应该能谅解我吧,嘿嘿),希望未来的生活都能和想象的那般,也希望所有身边的朋友都能健康如意,事事顺心!(算是我中秋的祝福吧)</p>]]></content>
<categories>
<category> 我的地盘 </category>
</categories>
<tags>
<tag> 随笔 </tag>
</tags>
</entry>
<entry>
<title>Ghost博客使用fancybox的正确姿势</title>
<link href="/post/2500.html"/>
<url>/post/2500.html</url>
<content type="html"><![CDATA[<p>在Ghost博客后台,使用Markdown编辑器。</p><p><code>Ctrl + Shift + I</code>,图片快捷键,生成代码:<code>![](https://)</code></p><p><code>Ctrl + K</code>,链接快捷键,生成代码:<code>[](https://)</code></p><p>正确格式</p><a id="more"></a><p>fancybox实现后实际上是个图片链接,So,把图片放入链接里。</p><p>格式:<code>[![](https://)](https://)</code></p><p>例如:<code>[![风景 - 1](http://xlbd.me/content/images/2016/05/vies1.jpg)](http://xlbd.me/content/images/2016/05/vies1.jpg)</code></p><p><a href="http://xlbd.me/content/images/2016/05/vies1.jpg" target="_blank" rel="noopener"><img src="http://xlbd.me/content/images/2016/05/vies1.jpg" alt="风景 - 1"></a></p><p><a href="http://xlbd.me/content/images/2016/05/view2.jpg" target="_blank" rel="noopener"><img src="http://xlbd.me/content/images/2016/05/view2.jpg" alt="风景 - 2"></a></p><p><a href="http://xlbd.me/content/images/2016/05/view3.jpg" target="_blank" rel="noopener"><img src="http://xlbd.me/content/images/2016/05/view3.jpg" alt="风景 - 3"></a></p><p>方式可能不一定适用于所有Ghost主题,反正本站目前在用的主题是这样子的。</p><p>本博文转载自:小蘿蔔丁 <a href="http://xlbd.me/how-to-use-fancybox-in-ghost-blog/" target="_blank" rel="noopener">http://xlbd.me/how-to-use-fancybox-in-ghost-blog/</a></p>]]></content>
<categories>
<category> 网站建设 </category>
</categories>
<tags>
<tag> Ghost </tag>
</tags>
</entry>
<entry>
<title>一键检测Linux VPS服务器配置、IO、国内节点下载测速</title>
<link href="/post/2499.html"/>
<url>/post/2499.html</url>
<content type="html"><![CDATA[<p>刚逛了一下老左博客,发现左哥又更文了《一键检测Linux VPS/服务器配置、IO、国内节点下载测速》,闲来无事,我也按照其提供的检测脚本对本站(阿里云香港主机)和另一台主机(华为云上海主机)分别进行了测试,两台都是1核1G40G的主机,直观上配置除了CPU不一样(阿里云是E5-2682 V4,华为云是E5-2680 V3,主频都是2.5GHz),其它的没怎么看出来,不过两者的IO差别还是有点的,具体见后文章。</p><a id="more"></a><p>左哥的原文:</p><blockquote><p>继老左在前面有分享过oldking博主作者提供改良版的国内电信、移动、联通节点测速脚本(一键测试Linux VPS、服务器国内节点速度参数)之后,我们可以对国内、国外VPS主机采用一些小的工具文件进行简单的参数和速度的测试。这里这个兄台又将teddysun的一键检测IO、配置信息等问题检测脚本改良,丰富配置信息的展现、IO速度、以及下载速度检测点也是国内节点。<br>这里老左也简单的整理出来,对于我简单的测试手中的Linux VPS、服务器等信息还是有一点点参考比较价值用途的。</p></blockquote><p>相比之前的脚本,这次提供的最大区别就是检测节点都是国内的,比较适合国内的朋友使用。本次测试的是晚上,估计相比白天结果要差一些,具体的如下:</p><ul><li>官方测试脚本(推荐使用这个,脚本更新快):</li></ul><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">wget https://raw.githubusercontent.com/oooldking/script/master/superbench.sh</span><br><span class="line">chmod +x superbench.sh</span><br><span class="line">./superbench.sh</span><br></pre></td></tr></table></figure><ul><li>备用测试脚本:</li></ul><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">wget http://soft.laozuo.org/scripts/superbench.sh</span><br><span class="line">chmod +x superbench.sh</span><br><span class="line">./superbench.sh</span><br></pre></td></tr></table></figure><ul><li>阿里云(香港主机)测试结果:</li></ul><p><a href="https://oft4n5tq6.qnssl.com/image/9/ec/fec7b1fe6fe32d1882f99e7103633.png" target="_blank" rel="noopener"><img src="https://oft4n5tq6.qnssl.com/image/9/ec/fec7b1fe6fe32d1882f99e7103633.png" alt="阿里云(香港主机)"></a></p><ul><li>华为云(上海主机)测试结果:</li></ul><p><a href="https://oft4n5tq6.qnssl.com/image/d/4a/d182dbc231a82f26e5259968a7c1a.png" target="_blank" rel="noopener"><img src="https://oft4n5tq6.qnssl.com/image/d/4a/d182dbc231a82f26e5259968a7c1a.png" alt="华为云(上海主机)"></a></p><p>可以明显的看出两者还是有点差距的,从测试结果中也可以看出teddysun提供的丰富一些,可以测试到架构、IO分三个等级测试、以及测速下载节点是用的随机国内节点。有需要的亲,可以下载个试试,权当对自己的主机来个小体检吧233。</p>]]></content>
<categories>
<category> 网站建设 </category>
</categories>
<tags>
<tag> vps </tag>
</tags>
</entry>
<entry>
<title>『推荐』支付宝新的推广活动,人人都能赚赏金!</title>
<link href="/post/2496.html"/>
<url>/post/2496.html</url>
<content type="html"><![CDATA[<p>支付宝和微信为了实现无现金城市,扩张自己市场占有率,可算是下了血本了。不过目前来说支付宝的干货还是比较多的,微信相对而言略少一点儿。但是微信的日活数比起支付宝明显要多很多。支付宝在不断的努力中…..今天再为大家介绍一个支付宝的推广活动!!请仔细阅读以下内容吧!!!</p><a id="more"></a><ul><li>领取地址<br>扫码领取奖励金!!!! 金额最高99 元!!!! 每天可扫一次!!!!</li></ul><p><img src="https://api.uu126.cn/usr/uploads/2018/01/1561919340.png" alt="zfbhb.png"></p><ul><li><p>更新:<br>2017年12月12日19:03:28 更新:支付宝从12月1日开始变更了活动规则了,里面有重点内容,已经高亮!<br>2017年12月10日17:52:22 更新:疯狂的一天。今天扫码红包金额都很大!有人互刷红包有风险!可能造成无法领取高额红包。<br>2017年12月7日11:48:02 更新:谢谢评论区网友提醒,之前的红包二维码竟然失效了!你以为只是更新了个二维码么?<br>2017年11月1日10:00:35 更新:最近支付宝用户可以免费领取赏金海报。<br>2017年10月13日15:02:44 更新:根据支付宝最新的消息,10月13日开始推广获取的钱直接进支付宝余额,不再是红包了。</p></li><li><p>推荐赚赏金<br>支付宝最新的推广活动!! 人人都可参与哦<del>如何参加活动呢???<br>使用支付宝扫码上面的二维码,领取奖励金。然后点击手机右上角【赚赏金】即可参与啦</del></p></li></ul><p><img src="https://oft4n5tq6.qnssl.com/image/5/c4/81b476a41a18521d1f5c2437d1874.jpg#mirages-width=532&mirages-height=841&mirages-cdn-type=1" alt=""></p><p><img src="https://oft4n5tq6.qnssl.com/image/b/31/51653b3af6499a9886364ca3c0761.jpg#mirages-width=533&mirages-height=846&mirages-cdn-type=1" alt=""></p><ul><li>活动时间</li></ul><p>活动开始时间:2017年9月4日</p><ul><li>活动规则</li></ul><p>发出邀请的用户(简称邀请者),每邀请一个好友,该好友领取到支付宝红包,且在门店使用支付宝付款满2元后,则视为邀请成功。邀请者可获得一个奖励红包,奖励红包面额根据被邀请的对象不同,金额不一样。如果邀请的是一个支付宝新用户(没有注册过支付宝或没有使用支付宝APP登录过)可以获得6元奖励红包/个;如果邀请的是到店付款新用户(从未在门店使用过支付宝支付)可以奖励3元/个;如果邀请的是其他类型用户奖励0.1元/个;<br>活动周期内,邀请者可根据邀请成功的好友数累积奖励红包,最多可获得9999个奖励红包;<br>被邀请的用户,进入活动页面,如果是支付宝新用户(没有注册过支付宝或没有使用支付宝APP登录过)可以领取一个6元新人红包;如果未在门店使用过支付宝支付,可以领取一个3元新人红包;其他情况的支付宝用户可以领取0.1-99元随机面额红包;<br>若同一天内,同一用户被多人邀请,则按照该用户最后点击的邀请并领取红包链接为准,该用户完成了上述任务后,发出该邀请的邀请者可以获得奖励红包;<br>活动周期内,被邀请者每天可领取一个红包。邀请好友红包的总数900万个,先到先得。</p><ul><li>红包规则</li></ul><p>红包仅限在中国大陆地区使用。在门店使用支付宝付款时抵扣,不可提现,如红包有效期已过且发生退款,红包金额不退;<br>红包可以一次性抵扣使用,多个红包可以叠加使用,一次最多可叠加抵扣10个红包;一次性抵扣单个红包时需实际支付金额大于红包面额;多个红包叠加使用时,如果红包加和总金额高于实际支付金额,红包可以被拆分使用;<br>被邀请者获得的红包有效期为3天,邀请者获得的奖励红包有效期为30天,从获得红包之日算起,超时未使用则自动过期(请在红包详情页面关注红包具体有效期信息),红包过期不补发;<br>红包更多使用规则详见领取的红包详情页。<br>其他说明<br>同一支付宝账号、手机号、身份证、手机终端,符合以上任一条件的,均视为同一用户。因支付宝账号非实名导致用户无法参与活动的,视同用户自动放弃活动资格;<br>门店使用支付宝付款的定义范围,仅限用户使用支付宝手机客户端(限9.0及以上版本)的付钱码被扫,或者扫一扫收钱码进行支付才能参与,个人转账、支付宝境外交易除外;<br>如用户出现违规行为(如虚假交易、作弊、刷信等),支付宝将撤销活动参与资格。<br>如您张贴本活动的宣传海报,请遵守当地城市环境保护法规;如您未遵守法规导致被投诉的,支付宝将撤销活动参与资格。</p><ul><li>马甲说明</li></ul><p>这个活动不错,目前来说一线城市可能推广不了多少了。如果大佬们在二线三线城市,可以折腾一下哦~ 应该有不错的收益<del>针对小商家可以采用这个推广方式!!前几年百度钱包砸钱推广,好多地推的人赚了不少呢!! 动起来吧</del></p>]]></content>
<categories>
<category> 我的地盘 </category>
</categories>
<tags>
<tag> 活动 </tag>
</tags>
</entry>
<entry>
<title>2017年的国庆第一天</title>
<link href="/post/2495.html"/>
<url>/post/2495.html</url>
<content type="html"><![CDATA[<p>由于前段时间自身的原因,错过了安排,以至于今年的国庆只能在“加里敦”,像以往休息日一样,国庆第一天本想先睡个懒觉的,结果8点不到就没俊哥电话吵醒了(真想冲过去揍一顿233),接着就开始“白日失眠”了,怎么翻覆都不能入睡,索性起床洗漱、烧早饭、吃早饭、洗碗(似乎最近在家静养都是这么一个节奏……)。</p><a id="more"></a><p>接着就是照例与习大大电视“沟通”,另一边翻翻录手机微信、支付宝收集能量等等,开始一个无聊的一天。实在闲着坐不住,还是起床打扫一下卫生吧,怎么说今天也是祖国妈妈生日,咱也不能太邋遢了,好好清扫一番,结果扫出了一部手机——当年的机皇:诺基亚N73,这手机算是早些年二手淘来的,要知道当年N73流行的时候,咱也只能远远的遥望,就如现在看iPhone X一般心情,总想着哪天能入手一部把玩一番(结果嘛,就有了这台N73)。由于多年未开机,电池里的电早已Over,为了见证是否还会有奇迹,又翻了好一会,找到了一个输出小圆孔的诺基亚原装充电器,赶紧接上手机,刚开始还没反应,充了一会再打开时,一会就出现了那经典的握手开机画面(心里美美的,古董又要焕发“青春”了)。不知道是不是长时间没充电了,充电到完成花了一个小时(感觉当年的机子充电不是挺快的嘛,反正我也忘了……)。好在电池待机时间还蛮长的,截止到我写博文时还是电量满格,当然这中间我还装过SIM卡,打过几个电话,机皇还是很NB的,虽然没有现在智能机功能多,但一般的电话、短信还是够用的,感觉通话质量还比手上的小米5(尊享版)来的好一些……。趁这几天在家再体验一下当年期盼的机皇,开始那犯二的情结。</p><p><img src="https://oft4n5tq6.qnssl.com/image/1/77/742237edeebe03686b1ca1e5e4473.jpg" alt=""></p><p>下午本想趁天气热(今天貌似是最近这段时间以来最热的一天)困个午觉,后接到女票的电话,赶紧不顾炎热冲到女票那。开始了半个下午的“司机”模式,带着女票完成了各种采购之后,回到家休息了一会,便又开始我的“大厨”生活,花了一个小时为自己烧了两菜一蒸的丰盛晚餐(都开始佩服我自己了,活生生的把自己越养越胖,然后天天嘴巴上喊着要减肥……)。</p><p>国庆的第一天,就这么不经意间过来了,没有在高速上堵堵的,也没有去看到处的人头,更没有折磨自己到处爬,就这么在“加里敦”过去了,似乎觉得也挺开心(至少没有不开心过),热闹中找安静吧233。啰嗦到此也该结束了(嫌我啰嗦也没办法,因为这是在我的地盘上,得听我的233)。文至最后,祝福祖国母亲节日快乐,若没有你的强大,哪有今天这么盛世,哪能让我一天这么悠闲的渡过。也祝愿所有我身边的朋友节日愉快,缺伴的赶紧约我哈!</p>]]></content>
<categories>
<category> 我的地盘 </category>
</categories>
<tags>
<tag> 随笔 </tag>
</tags>
</entry>
<entry>
<title>重启Ghost 0.7.4中文版</title>
<link href="/post/2494.html"/>
<url>/post/2494.html</url>
<content type="html"><![CDATA[<p>本人入道Ghost比较晚,当时用的就是王赛童鞋的Ghost0.7.4中文版,特别喜欢那默认主题,也认真用过一段时间,后来由于折腾的原因又转回Typecho了。要不是这次博客更换域名,估计也不会再用Ghost博客程序了,出于那时的体验,加上对Ghost1.X版本的憧憬,这次回归时并没有使用0.7.4中文版,而是直接按照Ghost官网教程搭建了新版的Ghost博客。</p><a id="more"></a><p>新版的Ghost博客主题样式有了很大的改变(貌似完全两样233),由于目前王童鞋这边还没出Ghost1.X版本的中文版,所以用英文版的博客程序,使用当然是不会有影响的,就是文章显示等感觉有点……,毕竟英文版的东西要显示中文,总感觉少了那点样式。经过一段时间的使用及考虑,还是想回归0.7.4中文版(目前王童鞋出的最高中文版本了),反正那些功能也够用了,等以后王童鞋出了新版的中文版(汉化)了,再换嘛。</p><p>博客依旧可以通过实验室功能进行导出或导入,但是Ghost1.X版本导出的内容,在0.7.4版本上导入会出现导入失败提示(好大之前的备份还在),当然0.7.4版本导出的在Ghost1.X版本上导入是不成问题(就是没有摘要),评论系统就用Deserts博主提供的Valine评论系统,基于国内后端云服务提供商 LeanCloud 提供的存储服务,所以在速度上肯定要比Disuse快,虽然可以自己架设Php Api的方式实现免翻墙,但感觉速度上还是有点慢,可能是挂载Php Api的主机太慢的缘故吧。</p><p>没大问题的话,估计短时间内不会再去折腾了,安安心心的码点字比较好,毕竟这段时间由于个人原因休息了好长一段时间,这段时间经历了很多,得到了很多的人照顾,在此由衷的感谢你们,感谢有你!</p>]]></content>
<categories>
<category> 网站建设 </category>
</categories>
<tags>
<tag> Ghost </tag>
</tags>
</entry>
<entry>
<title>懵逼!Chrome 的插件 User-Agent Switcher 是个木马</title>
<link href="/post/2493.html"/>
<url>/post/2493.html</url>
<content type="html"><![CDATA[<p><img src="https://cdn.uu126.cn/201709/user-agent-switcher-fore-google-chrome1.jpg" alt="user-agent-switcher-fore-google-chrome1"></p><a id="more"></a><p>Chrome 商店搜索 User-Agent Switcher,排第一的这个插件(45 万用户),是一个木马…<br><a href="https://chrome.google.com/webstore/detail/user-agent-switcher-for-g/ffhkkpnppgnfaobgihpdblnhmmbodake" target="_blank" rel="noopener">官方地址</a><br>无法访问?<br>这里有一个压缩包:链接: <a href="https://pan.baidu.com/s/1nvBRemH" target="_blank" rel="noopener">https://pan.baidu.com/s/1nvBRemH</a> 密码: 4inq</p><p><img src="https://cdn.uu126.cn/201709/user-agent-switcher-fore-google-chrome.jpg" alt="user-agent-switcher-fore-google-chrome"></p><p>为了绕过 chrome 的审核策略,他把恶意代码隐藏在了<code>promo.jpg</code>里,<code>background.js</code>的第 80 行,从这个图片里解密出恶意代码并执行</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br></pre></td><td class="code"><pre><span class="line">t.prototype.Vh = function(t, e) {</span><br><span class="line"> if ("" === '../promo.jpg') return "";</span><br><span class="line"> void 0 === t && (t = '../promo.jpg'), t.length && (t = r.Wk(t)), e = e || {};</span><br><span class="line"> var n = this.ET,</span><br><span class="line"> i = e.mp || n.mp,</span><br><span class="line"> o = e.Tv || n.Tv,</span><br><span class="line"> h = e.At || n.At,</span><br><span class="line"> a = r.Yb(Math.pow(2, i)),</span><br><span class="line"> f = (e.WC || n.WC, e.TY || n.TY),</span><br><span class="line"> u = document.createElement("canvas"),</span><br><span class="line"> p = u.getContext("2d");</span><br><span class="line"> if (u.style.display = "none", u.width = e.width || t.width, u.height = e.width || t.height, 0 === u.width || 0 === u.height) return "";</span><br><span class="line"> e.height && e.width ? p.drawImage(t, 0, 0, e.width, e.height) : p.drawImage(t, 0, 0);</span><br><span class="line"> var c = p.getImageData(0, 0, u.width, u.height),</span><br><span class="line"> d = c.data,</span><br><span class="line"> g = [];</span><br><span class="line"> if (c.data.every(function(t) {</span><br><span class="line"> return 0 === t</span><br><span class="line"> })) return "";</span><br><span class="line"> var m, s;</span><br><span class="line"> if (1 === o)</span><br><span class="line"> for (m = 3, s = !1; !s && m < d.length && !s; m += 4) s = f(d, m, o), s || g.push(d[m] - (255 - a + 1));</span><br><span class="line"> var v = "",</span><br><span class="line"> w = 0,</span><br><span class="line"> y = 0,</span><br><span class="line"> l = Math.pow(2, h) - 1;</span><br><span class="line"> for (m = 0; m < g.length; m += 1) w += g[m] << y, y += i, y >= h && (v += String.fromCharCode(w & l), y %= h, w = g[m] >> i - y);</span><br><span class="line"> return v.length < 13 ? "" : (0 !== w && (v += String.fromCharCode(w & l)), v)</span><br><span class="line"> }</span><br></pre></td></tr></table></figure><p>会把你打开的每个 tab 的 url 等信息加密发送到 <a href="https://uaswitcher.org/logic/page/data" target="_blank" rel="noopener">https://uaswitcher.org/logic/page/data</a><br>另外还会从 <a href="http://api.data-monitor.info/api/bhrule?sub=116" target="_blank" rel="noopener">http://api.data-monitor.info/api/bhrule?sub=116</a> 获取推广链接的规则,打开符合规则的网站时,会在页面插入广告甚至恶意代码.<br>根据 threatbook 上的信息( <a href="https://x.threatbook.cn/domain/api.data-monitor.info" target="_blank" rel="noopener">https://x.threatbook.cn/domain/api.data-monitor.info</a> ),我估计下面的几个插件都是这个作者的作品..</p><p><a href="https://chrome.google.com/webstore/detail/nenhancer/ijanohecbcpdgnpiabdfehfjgcapepbm" target="_blank" rel="noopener">https://chrome.google.com/webstore/detail/nenhancer/ijanohecbcpdgnpiabdfehfjgcapepbm</a></p><p><a href="https://chrome.google.com/webstore/detail/allow-copy/abidndjnodakeaicodfpgcnlkpppapah" target="_blank" rel="noopener">https://chrome.google.com/webstore/detail/allow-copy/abidndjnodakeaicodfpgcnlkpppapah</a></p><p><a href="https://chrome.google.com/webstore/detail/%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C-%D0%BC%D1%83%D0%B7%D1%8B%D0%BA%D1%83-%D0%B2%D0%BA%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D0%B5/hanjiajgnonaobdlklncdjdmpbomlhoa" target="_blank" rel="noopener">https://chrome.google.com/webstore/detail/%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C-%D0%BC%D1%83%D0%B7%D1%8B%D0%BA%D1%83-%D0%B2%D0%BA%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D0%B5/hanjiajgnonaobdlklncdjdmpbomlhoa</a></p><p><a href="https://chrome.google.com/webstore/detail/aliexpress-radar/pfjibkklgpfcfdlhijfglamdnkjnpdeg" target="_blank" rel="noopener">https://chrome.google.com/webstore/detail/aliexpress-radar/pfjibkklgpfcfdlhijfglamdnkjnpdeg</a></p><p> 有在用这个扩展的亲们,赶紧起床删了吧!</p><p>本文转载自:<a href="https://www.v2ex.com/t/389340" target="_blank" rel="noopener">https://www.v2ex.com/t/389340</a></p>]]></content>
<categories>
<category> 我的地盘 </category>
</categories>
<tags>
<tag> 随笔 </tag>
</tags>
</entry>
<entry>
<title>Ghost1.X博客使用记一</title>
<link href="/post/2491.html"/>
<url>/post/2491.html</url>
<content type="html"><![CDATA[<p>之前用过中文版(应该叫汉化版)0.74,挺好的,很多功能都给你内置好了,比如图片存储直接可以通过修改Ghost目录下的config.js中的代码实现,就像我用七牛,只要把七牛的密钥、空间名等输入即可,可到了Ghost1.X之后,没要稍微复杂点了,加上目前还没出现汉化版(要幸苦王赛童鞋了,抓紧搞……),只能通过类似于插件的办法安装。Ghost1.X跟以往的版本一样,依旧没有评论系统,这点可真没办法跟Wordpress或Typecho等相比,可就是这样还是有很多人‘摩拜’它,还有很多很多可能都没法相比,但我还是选择了你—— Ghost。</p><a id="more"></a><ul><li><p>使用七牛等作为默认存储<br><a href="https://docs.ghost.org/docs/using-a-custom-storage-module" target="_blank" rel="noopener">官网</a>有说明,还列举了很多第三方存储、如亚马逊、又拍云、七牛、阿里云OSS等等,这里以七牛为例说明:<br>安装方法有两种,分别为NPM和Git,具体如下:</p><ol><li>NPM方法安装<br>创建目录:<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">mkdir content/adapters/storage</span><br><span class="line">cd [Ghost博客目录]/content/adapters/storage</span><br></pre></td></tr></table></figure>安装Qiniu存储模块<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm install ghost-qn-store</span><br></pre></td></tr></table></figure>将模块复制到正确的位置<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">cp -vR node_modules/ghost-qn-store content/adapters/storage/qn-store</span><br></pre></td></tr></table></figure></li><li>Git方法安装<br>创建目录:<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">mkdir content/adapters/storage</span><br><span class="line">cd [Ghost博客目录]/content/adapters/storage</span><br></pre></td></tr></table></figure>Git下载<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git clone https://github.com/Minwe/qn-store.git</span><br></pre></td></tr></table></figure>安装依赖关系<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">cd qn-store</span><br><span class="line">npm install</span><br></pre></td></tr></table></figure>任取一种办法安装,具体的可见<a href="https://github.com/Minwe/qn-store" target="_blank" rel="noopener">官网</a>,安装好之后,就可以编辑Ghost目录下的<code>config.production.json</code>,并将如下代码删除(操作之前,建议先备份一份:<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">"process": "local",</span><br><span class="line">"paths": {</span><br><span class="line"> "contentPath": "/var/www/ghost/content"</span><br><span class="line">}</span><br></pre></td></tr></table></figure>并插入以下代码:<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">"storage": {</span><br><span class="line"> "active": "qn-store",</span><br><span class="line"> "qn-store": {</span><br><span class="line"> "accessKey": "12345678",</span><br><span class="line"> "secretKey": "12345678",</span><br><span class="line"> "bucket": "bucketname",</span><br><span class="line"> "origin": "https://cdn.qnsl.cn",</span><br><span class="line"> "fileKey": {</span><br><span class="line"> "safeString": true,</span><br><span class="line"> "prefix": "YYYYMM/"</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> }</span><br></pre></td></tr></table></figure>记得改成自己的哈,要不然报错别找我哈。</li></ol></li><li><p>增加评论系统<br>前面说了Ghost自身不带评论系统,这东西没了,总感觉缺少点,还是先给它增加个。本来想用Disqus的,老牌的国外评论系统了,一般不太会倒吧,用的是fooleap提供的<code>disqus-php-api</code>,这个需要使用一台支持PHP的主机(还要在GFW以外的),之前在测试时也用过,说实话,挺好的,使用方便,如果有需要的,可以去<a href="https://github.com/fooleap/disqus-php-api" target="_blank" rel="noopener">Github</a>上看看,大神更新很快的。后来在Deserts家看到还一款评论系统也很出色—— Valine评论,先看一下它的特点:<br>Valine 的特点:</p><ol><li>无后端实现</li><li>高速,使用国内后端云服务提供商 LeanCloud 提供的存储服务</li><li>开源,自定义程度高</li><li>支持邮件通知</li><li>支持验证码</li><li>支持 Markdown<br>没办法,我又再一次倒戈了,并且Deserts还对其进行了优化适配(原开发者是基于Hexo的),且增加了后台、Akismet 的垃圾评论等等,参照了<a href="https://panjunwen.com/diy-a-comment-system/" target="_blank" rel="noopener">Deserts的教程</a>,赶紧给自己换了,博客目前用的就是这款。</li></ol></li></ul><p>Ghost1.X还有很多功能等着我去发觉(对于我自己来讲吧),就比如:标签、归档等,还需要抽空去折腾折腾。</p>]]></content>
<categories>
<category> 网站建设 </category>
</categories>
<tags>
<tag> Ghost </tag>
</tags>
</entry>
<entry>
<title>Vultr已正式支持支付宝咯</title>
<link href="/post/2492.html"/>
<url>/post/2492.html</url>
<content type="html"><![CDATA[<p>相信很多在用Vultr家VPS的站长们,都知道早在月初官方就有意支持支付宝了,只不过那时想用需要发工单才可以(苦逼……),估计官方也意识到了我们国人的重要性,加上老马家的支付宝的名声……(这纯粹属于个人揣测哈),不管怎么说,现在不用再提交工单了,可以在后台直接使用了。</p><a id="more"></a><p><img src="https://cdn.uu126.cn/201709/vultr02.png" alt="vultr02"></p><p>这里需要注意的是,目前支付宝只支持10美元以上的充值,低于10美元,会报错哦:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Invalid amount - minimum deposit is $10.00</span><br></pre></td></tr></table></figure><p>这里以10美元为例,当你点击提交后会跳到支付宝支付扫码界面:</p><p><img src="https://cdn.uu126.cn/201709/vultr03.png" alt="vultr03"></p><p>看到了吧,10刀=人民币66.26元,比当前的汇率65.56稍贵一点,这点俺就不作说明了,都懂吧233<br>目前,Vultr有支持15个数据中心,虽然有日本亚洲机房,但是线路上并不是很好,如果是用来建站用途的,建议选择西雅图或者是洛杉矶。而且月费2.5美元方案的并不是大部分机房有货,俺大概看了一下,纽约和迈阿密是有货的,其他好像都没有。之前可以投机申请的,现在也失效,所以如果手上还有2.5刀机房的,删除等要注意哦,删除了就没了233<br>最后说一句,也是最重要的,要买Vultr请点击<a href="https://www.vultr.com/?ref=6826238" target="_blank" rel="noopener">优惠链接</a></p>]]></content>
<categories>
<category> 网站建设 </category>
</categories>
<tags>
<tag> vultr </tag>
</tags>
</entry>
<entry>
<title>Debian 8.X搭建Lnmp+ Ghost 1.x 教程</title>
<link href="/post/2490.html"/>
<url>/post/2490.html</url>
<content type="html"><![CDATA[<p>其实类似的教程挺多的,尤其是Ghost 1.X版本之前的,真的不要太多,写这个教程也只是自己参照官网教程和烧饼博客之后,对自己的搭建经历作一个小小的回顾。因为本人还要折腾点别的小玩意,所以不仅要将Ghost博客搭建起来,还要将PHP环境等也一同搭建,便于日后的各种折腾。好了,废话不多说,开始啰嗦之旅吧。</p><a id="more"></a><ul><li>首先搭建Lnmp,可用的环境包有很多,比如军哥的Lnmp,还有最近比较火的OneinStack等等,个人比较喜欢OneinStack,觉得功能上比前者要丰富。具体的搭建步骤,请参考<a href="https://oneinstack.com/install/" target="_blank" rel="noopener">官网</a>,一路配置下来估计也要半个小时左右,成功率100%(反正我折腾了这么多次,从来没有失败过),搭建好之后,建议先做个快照!<br>2017-8-19补充:还是把Oneinstack的搭建步骤照抄一下吧,给看的亲们省点时间233<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">yum -y install wget screen curl python #for CentOS/Redhat</span><br><span class="line"># apt-get -y install wget screen curl python #for Debian/Ubuntu</span><br><span class="line">wget http://aliyun-oss.linuxeye.com/oneinstack-full.tar.gz #阿里云经典网络下载</span><br><span class="line">wget http://mirrors.linuxeye.com/oneinstack-full.tar.gz #包含源码,国内外均可下载</span><br><span class="line">wget http://mirrors.linuxeye.com/oneinstack.tar.gz #不包含源码,建议仅国外主机下载</span><br><span class="line">tar xzf oneinstack-full.tar.gz</span><br><span class="line">cd oneinstack #如果需要修改目录(安装、数据存储、Nginx日志),请修改options.conf文件</span><br><span class="line">screen -S oneinstack #如果网路出现中断,可以执行命令`screen -R oneinstack`重新连接安装窗口</span><br><span class="line">./install.sh #注:请勿sh install.sh或者bash install.sh这样执行</span><br></pre></td></tr></table></figure></li></ul><p><img src="https://cdn.uu126.cn/201708/install_oneinstack.png" alt="install_oneinstack"></p><ul><li>开始搭建Ghost(过程可参照官网或烧饼博客)<ol><li>更新系统并安装必要软件<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">apt-get update </span><br><span class="line">apt-get upgrade</span><br><span class="line">apt-get -t stretch-backports update </span><br><span class="line">apt-get -t stretch-backports upgrade</span><br></pre></td></tr></table></figure></li><li>安装 Node.js 6.x LTS<br>方法一:<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">curl -sL https://deb.nodesource.com/setup_6.x | bash - </span><br><span class="line">apt-get install nodejs</span><br></pre></td></tr></table></figure>方法二:<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">国外下载地址:</span><br><span class="line">wget https://nodejs.org/download/release/v6.9.5/node-v6.9.5.tar.gz</span><br><span class="line">国内下载地址:</span><br><span class="line">wget https://npm.taobao.org/mirrors/node/v6.9.5/node-v6.9.5.tar.gz</span><br><span class="line">tar zxvf node-v6.9.5.tar.gz</span><br><span class="line">cd node-v6.9.5</span><br><span class="line">./configure </span><br><span class="line">make && make install</span><br></pre></td></tr></table></figure></li></ol></li></ul><blockquote><p>2017-10-22补充,最新版的Ghost已经不支持Node V6.5版本了,所以嘛……得更新233</p></blockquote><p>推荐使用方法二,成功率高,如果使用方法一没有成功的话,还可以再使用方法二,成功与否,可以使用<br><code>node -v</code>,如果能显示版本就说明Node.js搭建成功了<br>4. 配置Nginx(因为前面已搭建好Lnmp,所以这里直接配置站点文件即可)<br> 先配置站点文件<br> <figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vi /usr/local/nginx/conf/vhost/ghost.conf</span><br></pre></td></tr></table></figure><br> 然后写入以下内容:<br> <figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"> server { </span><br><span class="line"> listen 80;</span><br><span class="line"> listen 443;</span><br><span class="line"> server_name 1984n.win; #记得改成自己的域名</span><br><span class="line"> ssl on;</span><br><span class="line"> ssl_certificate /usr/local/nginx/conf/1984.crt; #SSL证书路径</span><br><span class="line"> ssl_certificate_key /usr/local/nginx/conf/1984.key; #SSL证书路径</span><br><span class="line"></span><br><span class="line"> location / {</span><br><span class="line"> proxy_set_header X-Real-IP $remote_addr;</span><br><span class="line"> proxy_set_header Host $http_host;</span><br><span class="line"> proxy_pass http://127.0.0.1:2368;</span><br><span class="line"> }</span><br><span class="line">}</span><br></pre></td></tr></table></figure><br> 保存好之后,记得重启一下Nginx。<br>5. 添加 ghost 运行用户(按照官方的说明,需要另建一个账户,名称随便,这里以<code>ghost</code>作为用户名来介绍。首先使用<code>adduser</code>而不是<code>useradd</code>命令添加用户,后者只能添加一个简单的无密码无执行权限的用户,前者是后者的加强版命令</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">adduser ghost</span><br></pre></td></tr></table></figure><p>然后系统会提示你输入两次密码,其他的一律回车即可。接着给予<code>ghost</code>用户<code>sudo</code>权限,这样这货就可以执行好多操作了。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">usermod -aG sudo ghost</span><br></pre></td></tr></table></figure><ol start="6"><li>安装 Ghost-CLI 和 Ghost 1.x<br>Ghost 从 1.0 开始,已经不需要其他第三方的软件来保持后台运行、更新、安装等操作,因为他们出了个命令行软件<code>Ghost-CLI</code>有了这货,我们再也不需要安装<code>pm2</code>来保持后台运行,也不需要用<code>ghost-upgrade</code>来升级,因为他基本已经全部带了以前的功能。<br>首先我们需要切换到<code>ghost</code>这个用户<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">su - ghost</span><br></pre></td></tr></table></figure>输入密码回车,然后直接用 npm 安装<code>Ghost-CLI</code><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo npm i -g ghost-cli</span><br></pre></td></tr></table></figure>假设你的博客要放在<code>/var/www/ghost</code>目录,那么我们就创建一个并赋予权限<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">sudo mkdir /var/www/ghost</span><br><span class="line">sudo chown ghost:ghost /var/www/ghost</span><br></pre></td></tr></table></figure>进入这个目录就可以开始安装 Ghost 了<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">cd /var/www/ghost</span><br><span class="line">ghost install</span><br></pre></td></tr></table></figure>按照提示输入即可,如果要使用<code>sqlite3</code>数据库的,可以将<code>ghost install</code>改为:<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ghost install local --db=sqlite3</span><br></pre></td></tr></table></figure>然后修改<code>/var/www/ghost/config.development.json</code>文件,修改自己的域名即可,保存好之后,再使用命令:<code>ghost stop && ghost estart</code>命令强行关闭再启动(注意不是重启),看是否正确,正确的输出信息是类似这样的:<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">ghost@sb-blog:/var/www/ghost$ ghost start</span><br><span class="line">✔ Validating config</span><br><span class="line">✔ Starting Ghost</span><br><span class="line">You can access your blog at https://1984n.win/</span><br><span class="line"></span><br><span class="line">Ghost uses direct mail by default</span><br><span class="line">To set up an alternative email method read our docs at https://docs.ghost.org/docs/mail-config</span><br></pre></td></tr></table></figure>没问题以后,就可以把这个文件改成正式环境的文件了:<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">mv config.development.json config.production.json</span><br></pre></td></tr></table></figure>然后再使用命令:<code>ghost stop && ghost estart</code>命令强行关闭再启动。</li></ol><h4 id="注意"><a href="#注意" class="headerlink" title="注意:"></a>注意:</h4><p>另外千万不要在 root 用户下执行 ghost 相关命令,否则 <code>/var/www/ghost/.ghostpid</code>这个文件的权限就变成<code>root</code>用户的了,导致后续会遇到<code>Message: 'EACCES: permission denied, open '/var/www/ghost/.ghostpid''</code></p><p>一切正常的话,就可以开始折腾Ghost了。</p><p>本文中搭建Ghost的部分步骤来自烧饼博客:<a href="https://sb.sb/debian-ubuntu-install-upgrade-ghost/" target="_blank" rel="noopener">https://sb.sb/debian-ubuntu-install-upgrade-ghost/</a> ,还有Ghost官网教程:<a href="https://docs.ghost.org/docs/install" target="_blank" rel="noopener">https://docs.ghost.org/docs/install</a> ,写完看电影咯。</p><p>2017-8-19补充:话说现在新版的Ghost编辑器还是蛮好用的,连小工具都有了,这在以前的0.7.4版本可是没有的,这也极大方便像我这种非代码控,点点即可上传图片、链接等等。</p><p><img src="https://cdn.uu126.cn/201708/ghost_blog02.jpg" alt="ghost_blog02"></p>]]></content>
<categories>
<category> 网站建设 </category>
</categories>
<tags>
<tag> Ghost </tag>
</tags>
</entry>
<entry>
<title>信用卡黑话</title>
<link href="/post/2488.html"/>
<url>/post/2488.html</url>
<content type="html"><![CDATA[<p>“天王盖地虎!”<br>“宝塔镇河妖!”<br><img src="https://cdn.uu126.cn/image/0/35/3a78b1a64418d15cdd43b1a7ecd85.jpg" alt="天王盖地虎"><br>黑话:一种特殊的语言讯号,江湖中人彼此联系的一种特殊手段。<br>在信用卡圈子,也有自己的专有黑话,比如,薅羊毛、火鸡……,有些我也是刚听说过,捞过来瞧瞧吧</p><a id="more"></a><p>信用卡黑话</p><p><strong>【砖】</strong>:在银行里,一般是一万块钱绑成一捆,一捆一捆的钱形似砖头,型如红砖,所以把一万块钱叫做1砖。</p><p><strong>【大砖头】</strong>:十万块钱,去银行柜台存取大额现金的都见过银行都是 100 张粉红毛爷爷用纸条捆好,十捆由专用的机器用塑料封条固封,所以 1w 是一砖头,10w 是一个大砖头。</p><p><img src="https://cdn.uu126.cn/image/3/8f/246fed4993866b46b60ea7c16fe54.jpg" alt="大砖头"></p><p><strong>【搬砖】</strong>:一般指拿着现金到银行存钱,特指存钱到银行以办理贵宾借记卡或者申请信用卡的行为。</p><p><strong>【地摊】</strong>:指在商场、企业或者小区门口等人流量比较大的公共场所摆设的办理信用卡的银行摊位。</p><p><strong>【羊毛】</strong>:积分或利润,对从银行获得的好处的统称。</p><p><strong>【薅(hāo)羊毛】</strong>:从银行得到收益的行为,搜集各种优惠信息,花更少的钱办更多的事,常常这么做的人被称为羊毛党。(参见当年春晚上赵本山宋丹丹崔永元的小品『昨天今天明天』)</p><p><strong>【腿毛】</strong>:跑腿薅羊毛,通过跑腿去ATM取现来赚取积分。</p><p><img src="https://cdn.uu126.cn/image/3/a6/56996685df2d8a5914cb63ebf9f56.jpg" alt="薅羊毛"></p><p><strong>【纯白户】</strong>:没有任何信用卡账户、银行贷款及个人征信记录,就是说一次都没申请过信用卡和贷款,个人征信报告是空白的。</p><p><strong>【白户】</strong>:有申请信用卡或贷款记录,但是信用卡申请失败,时间达半年以上。</p><p><strong>【黑户】</strong>:指持卡人在申请信用卡时提交了虚假信息,用卡过程中恶意透支、逾期不还、非法套现等,会被银行上报征信,这些污点将在征信记录中保留5年。</p><p>纯白户和白户共同点是都没有银行信用记录的客户群体,这个群体在办理贷款时,难免会卡壳遇阻,究其原因,为了把控风险,部分银行受众点锁定在有信用记录且良好的人群身上。</p><p><img src="https://cdn.uu126.cn/image/8/94/17a73985c229c871ae6ab2aabbcb3.jpg" alt="白户"></p><p><strong>【保护费】</strong>:有些人不规范用卡,可能会被银行提醒,然后刷卡后做些分期给银行些手续费。</p><p><strong>【裸申】</strong>:申请信用卡的时候不需要资料证明资产、征信状况等,多是银行邀请办卡,是身份背景的一种象征。</p><p><strong>【入“党”】</strong>:指被降额,信用卡被降到非常低的额度,如1元、5元等。</p><p><strong>【1元党】</strong>:信用卡的可用额度只有1元的持卡人被称作1元党。常见的还有“废行”8元党,农行的“500党”,这些额度非常低的卡也常常被称为“买菜卡”。</p><p><strong>【火鸡】</strong>:货币基金,简称货基。</p><p><strong>【W 】</strong>:万,如额度5w即为5万。</p><p><strong>【K】</strong>: 千,如额度3k即为3千,20k即为2万。</p><p><strong>【桂圆】</strong>:最早是对漂亮的柜员MM的爱称,后来泛指所有的柜员。</p>]]></content>
<categories>
<category> 我的地盘 </category>
</categories>
<tags>
<tag> 随笔 </tag>
</tags>
</entry>
<entry>
<title>Ghost实现归档 标签云 搜索</title>
<link href="/post/2487.html"/>
<url>/post/2487.html</url>
<content type="html"><![CDATA[<p>前面说过,Ghost本身并不自带类似文章归档、标签云,搜索等(后台不知道会不会改进),虽然官方没有给出,但这也不能阻止民间高手们,通过API就能实现上述这些功能。</p><a id="more"></a><h4 id="归档"><a href="#归档" class="headerlink" title="归档"></a>归档</h4><ul><li><p>首先得在后台的<code>实验功能</code>中启用<code>API</code>,如图:<br><img src="https://cdn.uu126.cn/image/a/63/912947500d1432b9e4c07155674de.jpg" alt=""></p></li><li><p>新建自定义页面:</p></li></ul><p> 1.创建一个静态页面:在ghost后台新建页面,发布为 独立页面 ,标题为Archives,网址可以设置为<code>域名/archives-post</code></p><p> 2.接着创建一个自定义页面模板:该模板是第一步创建的静态页面的模板,创建一个page-url.hbs模板,如果第一步设置的页面网址为<code>域名/archives-post</code>,那么模板即为<code>page-archives-post.hbs</code>。将该模板上传至主题根目录下即可,此时访问域名/archives-post,即会调用自定义的page-archives-post.hbs这个模板。</p><ul><li>在page-archives.hbs中调用Ghost API即可:<figure class="highlight php"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br></pre></td><td class="code"><pre><span class="line">!< <span class="keyword">default</span>&</span><br><span class="line"></span><br><span class="line"><main class="content" role="main"> </span><br><span class="line"><article class="archives"></article> </span><br><span class="line"></main></span><br><span class="line"></span><br><span class="line"><script src=<span class="string">"//cdn.bootcss.com/jquery/3.1.0/jquery.min.js"</span>></script> </span><br><span class="line"><script src=<span class="string">"//cdn.bootcss.com/moment.js/2.14.1/moment.min.js"</span>></script> </span><br><span class="line"><script type = <span class="string">"text/javascript"</span>> </span><br><span class="line"><span class="comment">/**</span></span><br><span class="line"><span class="comment"> * 调用ghost API,完成文章归档功能</span></span><br><span class="line"><span class="comment"> * 所需组件:jQuery、moment.js</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@ldsun</span>.com</span></span><br><span class="line"><span class="comment"> */</span></span><br><span class="line">jQuery(document).ready(<span class="function"><span class="keyword">function</span><span class="params">()</span> &#123</span>; </span><br><span class="line"> <span class="comment">//获取所有文章数据,按照发表时间排列</span></span><br><span class="line"> $.get(ghost.url.api(<span class="string">'posts'</span>, &<span class="comment">#123;</span></span><br><span class="line"> limit: <span class="string">'all'</span>,</span><br><span class="line"> order: <span class="string">"published_at desc"</span></span><br><span class="line"> &<span class="comment">#125;)).done(function(data) &#123;</span></span><br><span class="line"> <span class="keyword">var</span> posts = data.posts;</span><br><span class="line"> <span class="keyword">var</span> count = posts.length;</span><br><span class="line"> <span class="keyword">for</span> (<span class="keyword">var</span> i = <span class="number">0</span>; i < count; i++) &<span class="comment">#123;</span></span><br><span class="line"> <span class="comment">//调用comentjs对时间戳进行操作</span></span><br><span class="line"> <span class="comment">//由于ghost默认是CST时区,所以日期会有出入,这里消除时区差,如果不需要,把下面第二行后面8小时改为-00:00!!!</span></span><br><span class="line"> <span class="keyword">var</span> time = moment(posts[i].published_at).utcOffset(<span class="string">"-08:00"</span>);</span><br><span class="line"> <span class="keyword">var</span> year = time.get(<span class="string">'y'</span>);</span><br><span class="line"> <span class="keyword">var</span> month = time.get(<span class="string">'M'</span>)+<span class="number">1</span>;</span><br><span class="line"> <span class="keyword">var</span> date = time.get(<span class="string">'D'</span>);</span><br><span class="line"> <span class="keyword">if</span>( date<<span class="number">10</span> ) date = <span class="string">"0"</span>+date;</span><br><span class="line"> <span class="keyword">var</span> title = posts[i].title;</span><br><span class="line"> <span class="keyword">var</span> url = <span class="string">"@blog.url&"</span>+posts[i].url;</span><br><span class="line"> <span class="comment">//首篇文章与其余文章分步操作</span></span><br><span class="line"> <span class="keyword">if</span> (i > <span class="number">0</span>) &<span class="comment">#123;</span></span><br><span class="line"> <span class="keyword">var</span> pre_month = moment(posts[i - <span class="number">1</span>].published_at).utcOffset(<span class="string">"-08:00"</span>).get(<span class="string">'month'</span>)+<span class="number">1</span>;</span><br><span class="line"> <span class="comment">//如果当前文章的发表月份与前篇文章发表月份相同,则在该月份ul下插入该文章,这里消除时区差,如果不需要,把下面第二行后面8小时改为-00:00!!!</span></span><br><span class="line"> <span class="keyword">if</span> (month == pre_month) &<span class="comment">#123;</span></span><br><span class="line"> <span class="keyword">var</span> html = <span class="string">"<li><time>"</span>+date+<span class="string">"日</time><a href='"</span>+url+<span class="string">"'>"</span>+title+<span class="string">"</a></li>"</span>;</span><br><span class="line"> $(html).appendTo(<span class="string">".archives .list-"</span>+year+<span class="string">"-"</span>+month);</span><br><span class="line"> &<span class="comment">#125;</span></span><br><span class="line"> <span class="comment">//当月份不同时,插入新的月份</span></span><br><span class="line"> <span class="keyword">else</span>&<span class="comment">#123;</span></span><br><span class="line"> <span class="keyword">var</span> html = <span class="string">"<div class='item'><h3><i class='fa fa-calendar fa-fw' aria-hidden='true'></i> "</span>+year+<span class="string">"-"</span>+month+<span class="string">"</h3><ul class='archives-list list-"</span>+year+<span class="string">"-"</span>+month+<span class="string">"'><li><time>"</span>+date+<span class="string">"日</time><a href='"</span>+url+<span class="string">"'>"</span>+title+<span class="string">"</a></li></ul></div>"</span>;</span><br><span class="line"> $(html).appendTo(<span class="string">'.archives'</span>);</span><br><span class="line"> &<span class="comment">#125;</span></span><br><span class="line"> &<span class="comment">#125;else&#123;</span></span><br><span class="line"> <span class="keyword">var</span> html = <span class="string">"<div class='item'><h3><i class='fa fa-calendar fa-fw' aria-hidden='true'></i> "</span>+year+<span class="string">"-"</span>+month+<span class="string">"</h3><ul class='archives-list list-"</span>+year+<span class="string">"-"</span>+month+<span class="string">"'><li><time>"</span>+date+<span class="string">"日</time><a href='"</span>+url+<span class="string">"'>"</span>+title+<span class="string">"</a></li></ul></div>"</span>;</span><br><span class="line"> $(html).appendTo(<span class="string">'.archives'</span>);</span><br><span class="line"> &<span class="comment">#125;</span></span><br><span class="line"> &<span class="comment">#125;</span></span><br><span class="line"> &<span class="comment">#125;).fail(function(err) &#123;</span></span><br><span class="line"> console.log(err);</span><br><span class="line"> &<span class="comment">#125;);</span></span><br><span class="line">&<span class="comment">#125;); </span></span><br><span class="line"></script></span><br></pre></td></tr></table></figure>相应的CSS代码如下:<figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br></pre></td><td class="code"><pre><span class="line"><span class="selector-class">.archives</span> <span class="selector-class">.item</span> &<span class="selector-id">#123</span>;</span><br><span class="line"></span><br><span class="line">&<span class="selector-id">#125</span>;</span><br><span class="line"><span class="selector-class">.archives</span> <span class="selector-tag">h3</span> &<span class="selector-id">#123</span>;</span><br><span class="line"> <span class="selector-tag">font-size</span>: 17<span class="selector-tag">px</span>;</span><br><span class="line"> <span class="selector-tag">font-weight</span>: <span class="selector-tag">bold</span>;</span><br><span class="line"> <span class="selector-tag">margin</span>: 0 0 15<span class="selector-tag">px</span> 0;</span><br><span class="line">&<span class="selector-id">#125</span>;</span><br><span class="line"><span class="selector-class">.archives-list</span> &<span class="selector-id">#123</span>;</span><br><span class="line"> <span class="selector-tag">list-style</span>: <span class="selector-tag">none</span>;</span><br><span class="line"> <span class="selector-tag">font-size</span>: 16<span class="selector-tag">px</span>;</span><br><span class="line"> <span class="selector-tag">line-height</span>: 20<span class="selector-tag">px</span>;</span><br><span class="line"> <span class="selector-tag">padding-left</span>: 25<span class="selector-tag">px</span>;</span><br><span class="line">&<span class="selector-id">#125</span>;</span><br><span class="line"><span class="selector-class">.archives-list</span> <span class="selector-tag">li</span> &<span class="selector-id">#123</span>;</span><br><span class="line"> <span class="selector-tag">padding</span>: 3<span class="selector-tag">px</span> 0;</span><br><span class="line"> <span class="selector-tag">overflow</span>: <span class="selector-tag">hidden</span>;</span><br><span class="line">&<span class="selector-id">#125</span>;</span><br><span class="line"><span class="selector-class">.archives-list</span> <span class="selector-tag">time</span> &<span class="selector-id">#123</span>;</span><br><span class="line"> <span class="selector-tag">margin-right</span>: 5<span class="selector-tag">px</span>;</span><br><span class="line"> <span class="selector-tag">color</span>: <span class="selector-id">#999</span>;</span><br><span class="line"> <span class="selector-tag">display</span>: <span class="selector-tag">inline-block</span>;</span><br><span class="line"> <span class="selector-tag">width</span>: 35<span class="selector-tag">px</span>;</span><br><span class="line"> <span class="selector-tag">font-family</span>: <span class="selector-tag">monospace</span>;</span><br><span class="line">&<span class="selector-id">#125</span>;</span><br><span class="line"><span class="selector-class">.archives-list</span> <span class="selector-tag">a</span> &<span class="selector-id">#123</span>;</span><br><span class="line"> <span class="selector-tag">text-decoration</span>: <span class="selector-tag">none</span>;</span><br><span class="line">&<span class="selector-id">#125</span>;</span><br></pre></td></tr></table></figure></li></ul><h4 id="标签云"><a href="#标签云" class="headerlink" title="标签云"></a>标签云</h4><ul><li>介绍一下<code>tag_cloud</code></li></ul><p>这是中文版中增加的一个 handlebars 助手(helper),根据标签所关联的文章数量进行逆排序,也就是关联文章多的先输出;支持一个 limit 参数,用于限定输出的标签数量:all 表示输出所有标签;数字(例如 10)指定输出个数。调用方式如下:</p><figure class="highlight php"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">//输出所有标签</span></span><br><span class="line">tag_cloud limit=<span class="string">"all"</span>&</span><br><span class="line"></span><br><span class="line">或者</span><br><span class="line"></span><br><span class="line"><span class="comment">//输出前20个标签(标签按照对应的文章数量逆排序)</span></span><br><span class="line">tag_cloud limit=<span class="number">20</span>&</span><br></pre></td></tr></table></figure><ul><li>使用方法</li></ul><p>在需要输出“标签云”的地方调用<code>tag_cloud</code>助手即可。我们以 casper 默认主题为例。打开<code>index.hbs</code>文件,在<code></header></code>标签后面添加<code>tag_cloud limit=10&</code>,保存此文件、重启 Ghost、打开首页,看看是否输出了一堆标签。我是直接放在归档里的,具体放哪又或是新增页面就看各自喜好了,相应的css代码如下:</p><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><span class="line"><span class="selector-class">.tag-cloud</span> &<span class="selector-id">#123</span>;</span><br><span class="line"> <span class="selector-tag">padding-left</span>: 25<span class="selector-tag">px</span>;</span><br><span class="line">&<span class="selector-id">#125</span>;</span><br><span class="line"><span class="selector-class">.tag-cloud</span> &<span class="selector-id">#123</span>;</span><br><span class="line"> <span class="selector-tag">padding-left</span>: 1<span class="selector-class">.725rem</span>;</span><br><span class="line">&<span class="selector-id">#125</span>;</span><br><span class="line"><span class="selector-class">.tag-cloud</span> <span class="selector-tag">a</span><span class="selector-pseudo">:hover</span> &<span class="selector-id">#123</span>;</span><br><span class="line"> <span class="selector-tag">background</span>: <span class="selector-id">#eee</span>;</span><br><span class="line"> <span class="selector-tag">color</span>: <span class="selector-id">#4A4A4A</span>;</span><br><span class="line">&<span class="selector-id">#125</span>;</span><br><span class="line"><span class="selector-class">.tag-cloud</span> <span class="selector-tag">a</span> &<span class="selector-id">#123</span>;</span><br><span class="line"> <span class="selector-tag">position</span>: <span class="selector-tag">relative</span>;</span><br><span class="line"> <span class="selector-tag">display</span>: <span class="selector-tag">inline-block</span>;</span><br><span class="line"> <span class="selector-tag">padding</span>: <span class="selector-class">.725rem</span>;</span><br><span class="line"> <span class="selector-tag">font-style</span>: <span class="selector-tag">normal</span>;</span><br><span class="line"> <span class="selector-tag">line-height</span>: 1<span class="selector-class">.125rem</span>;</span><br><span class="line"> <span class="selector-tag">border-radius</span>: <span class="selector-class">.3rem</span>;</span><br><span class="line"> <span class="selector-tag">text-decoration</span>: <span class="selector-tag">none</span>;</span><br><span class="line"> <span class="selector-tag">font-size</span>: 16<span class="selector-tag">px</span>;</span><br><span class="line"> <span class="selector-tag">margin-bottom</span>: 3<span class="selector-tag">px</span>;</span><br><span class="line">&<span class="selector-id">#125</span>;</span><br></pre></td></tr></table></figure><h4 id="搜索"><a href="#搜索" class="headerlink" title="搜索"></a>搜索</h4><p>使用<code>jQuery.gsearch.js</code>插件实现Ghost博客的搜索,gsearch是一款为Ghost量身打造的搜索插件,使Ghost轻松具有搜索功能。效果类似于SwifType,通过Ghost的RSS实现搜索功能,您可以点击右上角搜索图标体验效果。</p><ul><li><p><a href="https://github.com/itobee/gsearch/archive/master.zip" target="_blank" rel="noopener">下载</a>最新版的gsearch,将<code>dist</code>文件夹下的<code>libs</code>和<code>partials</code>文件夹复制到当前主题的根目录下(如果遇到同名文件夹,覆盖即可),并在当前主题的<code>default.hbs</code>文件中添加如下代码:</p><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta"><!DOCTYPE <span class="meta-keyword">html</span>></span> </span><br><span class="line"><span class="tag"><<span class="name">html</span> <span class="attr">lang</span>=<span class="string">"zh-cn"</span>></span> </span><br><span class="line"><span class="tag"><<span class="name">head</span>></span> </span><br><span class="line"> ……</span><br><span class="line"> <span class="comment"><!-- CSS --></span></span><br><span class="line"> <span class="tag"><<span class="name">link</span> <span class="attr">rel</span>=<span class="string">"stylesheet"</span> <span class="attr">type</span>=<span class="string">"text/css"</span> <span class="attr">href</span>=<span class="string">"/libs/remodal/remodal.min.css"</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">link</span> <span class="attr">rel</span>=<span class="string">"stylesheet"</span> <span class="attr">type</span>=<span class="string">"text/css"</span> <span class="attr">href</span>=<span class="string">"/libs/gsearch/css/jquery.gsearch.min.css"</span>></span></span><br><span class="line"> ……</span><br><span class="line"><span class="tag"></<span class="name">head</span>></span></span><br><span class="line"></span><br><span class="line"><span class="tag"><<span class="name">body</span>></span> </span><br><span class="line"> ……</span><br><span class="line"></span><br><span class="line"> <span class="comment"><!-- gsearch模板 --></span></span><br><span class="line"> > "gsearch"&</span><br><span class="line"></span><br><span class="line"> <span class="comment"><!-- JS --></span></span><br><span class="line"> <span class="tag"><<span class="name">script</span> <span class="attr">type</span>=<span class="string">"text/javascript"</span> <span class="attr">src</span>=<span class="string">"//cdn.staticfile.org/jquery/1.12.4/jquery.min.js"</span>></span><span class="tag"></<span class="name">script</span>></span> <span class="comment"><!-- 如果主题中未引入jQuery,请引入jQuery --></span></span><br><span class="line"> <span class="tag"><<span class="name">script</span> <span class="attr">type</span>=<span class="string">"text/javascript"</span> <span class="attr">src</span>=<span class="string">"/libs/remodal/remodal.min.js"</span>></span><span class="tag"></<span class="name">script</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">script</span> <span class="attr">type</span>=<span class="string">"text/javascript"</span> <span class="attr">src</span>=<span class="string">"/libs/gsearch/js/jquery.gsearch.min.js"</span>></span><span class="tag"></<span class="name">script</span>></span></span><br><span class="line"><span class="tag"></<span class="name">body</span>></span> </span><br><span class="line"><span class="tag"></<span class="name">html</span>></span></span><br></pre></td></tr></table></figure></li><li><p>接下来,我们再通过如下代码调用插件即可使用:</p><figure class="highlight"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><script> </span><br><span class="line">$(document).one(<span class="string">'opening'</span>, <span class="string">'.remodal'</span>, function () &<span class="comment">#123;</span></span><br><span class="line"> $(<span class="string">'#search'</span>).gsearch();</span><br><span class="line">&<span class="comment">#125;);</span></span><br><span class="line"></script></span><br></pre></td></tr></table></figure><p>这段代码我是直接丢在后台的<code>插入代码</code>里<br>注:以上示例使用了<code>remodal</code>弹层插件显示搜索信息,可以用其他插件代替,但是需要注意一点:请勿对同一元素重复调用插件。示例中使用jQuery的<code>.one()</code>方法来委托事件。<br>关于搜索功能等信息,可详见原作者<a href="http://www.tobee.me/gsearch/" target="_blank" rel="noopener">博客</a></p></li></ul><p>实现了这三个功能,暂时可以让我消停一下了,要知道菜鸟要实现这些功能可也是花了好久功夫的,这个过程还是挺享受的,这不现地又得找点可以折腾的东西来……</p>]]></content>
<categories>
<category> 网站建设 </category>
</categories>
<tags>
<tag> Ghost </tag>
</tags>
</entry>
<entry>
<title>似乎又开始折腾了</title>
<link href="/post/2486.html"/>
<url>/post/2486.html</url>
<content type="html"><![CDATA[<p>本来消停了一段时间(有点打脸的感觉),用着Typecho写写小博客还挺happy的,本以为就这么“安定”下去了,哪知搬回到阿里云后,事就多了,先是文章、后台打不开(首页可以打开),后来修改<code>php.ini</code>,将<code>cgi.fix_pathinfo</code>的值由0改为1解决了,本以为这么结束了就OK了,谁想过了几天,突然发现评论不会回复邮件了,原先在华为云时都调试好的,咋的就……</p><a id="more"></a><p>于是乎把插件、PHP环境、系统等都调试、更换过,NN的还是不行,碍于技术有限,加上又想折腾Ghost了,所以干脆扔掉直接装Ghost做博客程序了。常来逛的朋友估计知道,本博中间也有换过Ghost,对自带主题等也有做过一些魔改,当然也有备份过,所以重新上手时也挺快的,按照这个教程:<a href="https://segmentfault.com/a/1190000006245224" target="_blank" rel="noopener">在CentOS7.2上安装Ghost</a>,<br>SSL证书用的是AlphaSSL的泛域名证书,评论用的是Disqus(用过畅言等,都感觉不爽),目前已折腾的基本完善了。<br>一路折腾过来,主要问题还是在归档、标签、搜索上,Ghost不像Typecho、Wordpress等,它呀的好多本身都没有,好在0.74中文版可以在后台的<code>实验功能</code>里,将<code>开放API</code>打勾,再用网上的代码就可以了,这个折腾了我好长时间,很多博主都没说,结果弄的我头都大了。</p><p><img src="https://cdn.uu126.cn/image/a/63/912947500d1432b9e4c07155674de.jpg" alt=""></p><p>换了一个博客程序,百度等收录肯定得从头再来了,以前用Wordpress或Typecho时都用伪静态,所以文章路径结尾都是.html,现在用Ghost后,直接一个目录形式,之前度娘等收录的肯定就打不开了,怎么河蟹过来,目前还没找到办法,有解的请不吝赐教(哈哈)<br>新的博客、新的开始,Ghost还有很多需要去熟悉,比如那精简的文章编辑,Markdown这种标签式的语法还真得好好去熟悉一下,像Typecho也是支持Mackdown的,但至少还有些工具可以直接去点击,Ghost就简洁多的去了,慢慢熟悉吧,暂时应该不会换了………………</p>]]></content>
<categories>
<category> 网站建设 </category>
</categories>
<tags>
<tag> Ghost </tag>
</tags>
</entry>
<entry>
<title>使用disqus-php-api搭建评论系统</title>
<link href="/post/2485.html"/>
<url>/post/2485.html</url>
<content type="html"><![CDATA[<p>众所周知的原因,国内已经访问不了Disqus评论了,暂时也无解,除非哪天GFW解除了这个限制(估计这个可能性……?),加上现在使用Ghost博客,其自身也没有带评论系统,以前还有多说可以使用,倒是用的挺好的,后来多说关闭之后,其它的诸如:畅言、友言、网易云跟贴(这个8月1日也要关闭了)等,感觉体验都不太好,或是太臃肿、或是有广告,反正用了几天就不想再用了。无奈之下,只好使用Disqus——这个老牌评论系统了。</p><a id="more"></a><p>Disqus至少目前来看不会那么快翻船(这点真佩服老外),但是碍于现状,只能翻墙使用(经常爬梯子也累呀),后来听说有大神出了神器<code>disqus-php-api</code>,按他的理念是(原文摘抄):</p><blockquote><p>我想起了一种方法,想要实现不翻墙即可访问 Disqus API,可以找一个服务器,客户端数据把发送到这个服务器,它接过手后顺便使用 cURL 发给 Disqus,根据 Disqus 返回的内容,服务器可直接返回给客户端,也可以将其简单处理一下再返回,感觉这也是反向代理。</p></blockquote><p><img src="https://cdn.uu126.cn/image/5/9f/0adebb87536f0945f5b59fe11438b.jpg" alt="Disqus"></p><p>既然有神器了,那就赶紧用吧,具体步骤如下:</p><ul><li><p>首先翻墙上Disqus官网申请,申请好之后在设置中输入用户名并记牢,然后再获取Disqus的部署代码,代码里还有后面需要内容,具体的申请等步骤可以问度娘,这里就不发散了</p></li><li><p>然后下载Disqus-php-api,下载地址:<br><a href="https://github.com/fooleap/disqus-php-api" target="_blank" rel="noopener">https://github.com/fooleap/disqus-php-api</a><br>,接着编辑<code>api</code>目录中的<code>config.php</code>,按照大神的说明填好,这里提醒一下一定要填在引号里面,要不然填错了,就不行了,我之前就发生过这样的问题,一直没发留意,结果还以为是主机故障,来来回回装了好几次系统和PHP环境,还是仔细点好。</p></li><li><p>填好之后,记得在Ghost主题目录,像我在用的是默认主题,那就在<code>default.hbs</code>添加实例代码(Github上有的,改成自己的就行,另外因为是JS代码,前后记得加<code><script></code>和<code></script></code>,另外一个JS、CSS文件可以直接放在主题目录下,调用一下就可以了。</p></li><li><p>上传<code>disqus-php-api</code>到你们国外空间上,需要注意的是<code>api</code>目录下的所有文件直接扔在根目录下就可以了,我之前放在<code>api</code>发现竟然找不到,按F12检查时,报404或“No input……”,不出什么问题的话,博客刷新一下就可以看到Disqus的评论框了。</p></li></ul><p>感觉大神这个还是挺好的,使用也方便,也简洁,而且还可以设置成根据成根据用户访问IP(国内or国外)显示精简or完整评论,必须得赞一个。不过目前使用看来,有些文章会需要提交<code>Thread</code>,点了提交也没反应,但是翻墙访问倒是正常,而且只有有评论了,国内再打开时评论也可以了,这点问题不知道大神能不能把它也给Kill了,期待吧。</p><p>更新一下,关于前面说要提交<code>Thread</code>的事,向大神请教了一下,发现我提交不了是因为<code>主要是因为 slug 不能包含 / 字符</code><br><img src="https://cdn.uu126.cn/image/c/33/dbec01565fd37ccfd17cc55636fba.jpg" alt="Disqus2"></p><p>一般都在<code>slug</code>后面,去掉<code>/</code>之后再点提交就可以了,当然也可以评论了。</p>]]></content>
<categories>
<category> 网站建设 </category>
</categories>
<tags>
<tag> 随笔 </tag>
</tags>
</entry>
<entry>
<title>Typecho搬家后文章、后台无法打开的解决方案</title>
<link href="/post/2484.html"/>
<url>/post/2484.html</url>
<content type="html"><![CDATA[<p>说来都觉得自己有那么点无聊,当初从阿里云转到华为云,然后现在又转回去——折腾啊!搬回到阿里云,顺手把OSS也挂载了当硬盘使,这样下次再折腾就不用老是先备份下载了。老样子还是使用Oneinstack家的一键包搭建的LNMP环境(本来还想再折腾一下Ghost的,不过想想还是算了),配置好站点,然后接着导入数据库,再把博客相关文件上传到配好的目录,本以为大功造成时,结果……</p><a id="more"></a><p>不管是访问后台,还是文章,都报<code>Access denied</code>,好郁闷呀!找了度娘,没看到什么好的答案,结果在Segmentfault上找到了方法,那就是修改<code>php.ini</code>,将<code>cgi.fix_pathinfo</code>的值由<code>0</code>改为<code>1</code>,怎么找这个文件?可以在<code>phpinfo.php</code>里看到具体的路径。修改好之后,重启PHP和nginx即可或者也可以直接重启服务器。</p><p>问题解决,可以正常使用了</p>]]></content>
<categories>
<category> 网站建设 </category>
</categories>
<tags>
<tag> typecho </tag>
</tags>
</entry>
<entry>
<title>Typecho后台增加极验证</title>
<link href="/post/2480.html"/>
<url>/post/2480.html</url>
<content type="html"><![CDATA[<p>得空逛了一下Typecho社区,看见有后台登录验证插件,那就赶紧给自己的后台武装一下吧,省的一天到晚的裸奔(多少总会提升一点安全性吧@(你懂的))。注册的步骤咱就不说了(不知道网址?百度搜索<code>极验证</code>),插件之前用的是摸鱼的(下载地址:<a href="https://www.moyu.win/archives/28.html" target="_blank" rel="noopener">https://www.moyu.win/archives/28.html</a>),可是我从头到尾试了好几遍也没成功过,老是显示启用中,考虑到他也是修改前者的,那我就去找前者看看吧。</p><a id="more"></a><ol><li>先下载插件(链接: <a href="http://pan.baidu.com/s/1pLx52tX" target="_blank" rel="noopener">http://pan.baidu.com/s/1pLx52tX</a> 密码: i7u5),我修改了Plugin.php,把其中一个JS文件的路径由http改为https(不改过的话,像我这种使用https 的站点会提示安全风险)</li><li>开始魔改代码了</li></ol><ul><li><p>增加/admin/geetest-code.php文件,用来返回极验服务响应数据:</p><figure class="highlight php"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta"><?php</span></span><br><span class="line"><span class="keyword">if</span> (!defined(<span class="string">'__DIR__'</span>)) {</span><br><span class="line"> define(<span class="string">'__DIR__'</span>, dirname(<span class="keyword">__FILE__</span>));</span><br><span class="line">}</span><br><span class="line">define(<span class="string">'__TYPECHO_ADMIN__'</span>, <span class="keyword">true</span>);</span><br><span class="line"><span class="comment">/** 载入配置文件 */</span></span><br><span class="line"><span class="keyword">if</span> (!defined(<span class="string">'__TYPECHO_ROOT_DIR__'</span>) && !@<span class="keyword">include_once</span> <span class="keyword">__DIR__</span> . <span class="string">'/../config.inc.php'</span>) {</span><br><span class="line"> file_exists(<span class="keyword">__DIR__</span> . <span class="string">'/../install.php'</span>) ? header(<span class="string">'Location: ../install.php'</span>) : <span class="keyword">print</span>(<span class="string">'Missing Config File'</span>);</span><br><span class="line"> <span class="keyword">exit</span>;</span><br><span class="line">}</span><br><span class="line"><span class="comment">/** 初始化组件 */</span></span><br><span class="line">Typecho_Widget::widget(<span class="string">'Widget_Init'</span>);</span><br><span class="line"><span class="comment">/** 如果插件已启用, 则输出极验服务器响应数据 */</span></span><br><span class="line"><span class="keyword">if</span> (!<span class="keyword">empty</span>(Helper::options()->plugins[<span class="string">'activated'</span>][<span class="string">'Geetest'</span>])) {</span><br><span class="line"> Typecho_Plugin::factory(<span class="string">'gt'</span>)->server();</span><br><span class="line">}</span><br></pre></td></tr></table></figure></li><li><p>把插件嵌入到登录页面(放到密码框和提交按钮代码中间)login.php:</p><figure class="highlight php"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta"><?php</span></span><br><span class="line"><span class="keyword">include</span> <span class="string">'common.php'</span>;</span><br><span class="line"><span class="keyword">if</span> ($user->hasLogin()) {</span><br><span class="line"> $response->redirect($options->adminUrl);</span><br><span class="line">}</span><br><span class="line">$rememberName = htmlspecialchars(Typecho_Cookie::get(<span class="string">'__typecho_remember_name'</span>));</span><br><span class="line">Typecho_Cookie::delete(<span class="string">'__typecho_remember_name'</span>);</span><br><span class="line">$bodyClass = <span class="string">'body-100'</span>;</span><br><span class="line"><span class="keyword">include</span> <span class="string">'header.php'</span>;</span><br><span class="line"><span class="meta">?></span></span><br><span class="line"></span><br><span class="line"><div class="typecho-login-wrap"></span><br><span class="line"> <div class="typecho-login"></span><br><span class="line"> <h1><a href="http://typecho.org" class="i-logo">Typecho</a></h1></span><br><span class="line"> <form action=<span class="string">"<?php $options->loginAction(); ?>"</span> method=<span class="string">"post"</span> name=<span class="string">"login"</span> role=<span class="string">"form"</span>></span><br><span class="line"> <p></span><br><span class="line"> <label for="name" class="sr-only"><?php _e('用户名'); ?></label></span><br><span class="line"> <input type="text" id="name" name="name" value="<?php echo $rememberName; ?>" placeholder="<?php _e('用户名'); ?>" class="text-l w-100" autofocus /></span><br><span class="line"> </p></span><br><span class="line"> <p></span><br><span class="line"> <label for="password" class="sr-only"><?php _e('密码'); ?></label></span><br><span class="line"> <input type="password" id="password" name="password" class="text-l w-100" placeholder="<?php _e('密码'); ?>" /></span><br><span class="line"> </p></span><br><span class="line"> <span class="meta"><?php</span> Typecho_Plugin::factory(<span class="string">'gt'</span>)->render(); <span class="meta">?></span></span><br><span class="line"> <p class="submit"></span><br><span class="line"> <button type="submit" class="btn btn-l w-100 primary"><?php _e('登录'); ?></button></span><br><span class="line"> <input type=<span class="string">"hidden"</span> name=<span class="string">"referer"</span> value=<span class="string">"<?php echo htmlspecialchars($request->get('referer')); ?>"</span> /></span><br><span class="line"> </p></span><br><span class="line"> <p></span><br><span class="line"> <label for="remember"><input type="checkbox" name="remember" class="checkbox" value="1" id="remember" /> <?php _e('下次自动登录'); ?></label></span><br><span class="line"> </p></span><br><span class="line"> </form></span><br><span class="line"> </span><br><span class="line"> <p class="more-link"></span><br><span class="line"> <a href=<span class="string">"<?php $options->siteUrl(); ?>"</span>><span class="meta"><?php</span> _e(<span class="string">'返回首页'</span>); <span class="meta">?></span></a></span><br><span class="line"> <span class="meta"><?php</span> <span class="keyword">if</span>($options->allowRegister): <span class="meta">?></span></span><br><span class="line"> &bull;</span><br><span class="line"> <a href=<span class="string">"<?php $options->registerUrl(); ?>"</span>><span class="meta"><?php</span> _e(<span class="string">'用户注册'</span>); <span class="meta">?></span></a></span><br><span class="line"> <span class="meta"><?php</span> <span class="keyword">endif</span>; <span class="meta">?></span></span><br><span class="line"> </p></span><br><span class="line"> </div></span><br><span class="line"></div></span><br><span class="line"><span class="meta"><?php</span> </span><br><span class="line"><span class="keyword">include</span> <span class="string">'common-js.php'</span>;</span><br><span class="line"><span class="comment">/** 如果插件已启用, 则输出极验服务器响应数据 */</span></span><br><span class="line">$geePluginEnable = !<span class="keyword">empty</span>(Helper::options()->plugins[<span class="string">'activated'</span>][<span class="string">'Geetest'</span>]) ? <span class="keyword">true</span> : <span class="keyword">false</span>;</span><br><span class="line"><span class="meta">?></span></span><br><span class="line"><script></span><br><span class="line">$(document).ready(<span class="function"><span class="keyword">function</span> <span class="params">()</span> </span>{</span><br><span class="line"> $(<span class="string">'#name'</span>).focus();</span><br><span class="line"> <span class="meta"><?php</span> <span class="keyword">if</span>($geePluginEnable):<span class="meta">?></span></span><br><span class="line"> <span class="comment">//极客验证码验证</span></span><br><span class="line"> (<span class="function"><span class="keyword">function</span><span class="params">()</span></span>{</span><br><span class="line"> <span class="keyword">var</span> handler = <span class="function"><span class="keyword">function</span> <span class="params">(captchaObj)</span> </span>{</span><br><span class="line"> <span class="comment">// 将验证码加到id为captcha的元素里</span></span><br><span class="line"> captchaObj.appendTo(<span class="string">"#captcha"</span>);</span><br><span class="line"> };</span><br><span class="line"> $.ajax({</span><br><span class="line"> <span class="comment">// 获取id,challenge,success(是否启用failback)</span></span><br><span class="line"> url: <span class="string">"geetest-code.php?rand="</span>+Math.random()*<span class="number">100</span>,</span><br><span class="line"> type: <span class="string">"get"</span>,</span><br><span class="line"> dataType: <span class="string">"json"</span>, <span class="comment">// 使用jsonp格式</span></span><br><span class="line"> success: <span class="function"><span class="keyword">function</span> <span class="params">(data)</span> </span>{</span><br><span class="line"> <span class="comment">// 使用initGeetest接口</span></span><br><span class="line"> <span class="comment">// 参数1:配置参数,与创建Geetest实例时接受的参数一致</span></span><br><span class="line"> <span class="comment">// 参数2:回调,回调的第一个参数验证码对象,之后可以使用它做appendTo之类的事件</span></span><br><span class="line"> initGeetest({</span><br><span class="line"> gt: data.gt,</span><br><span class="line"> challenge: data.challenge,</span><br><span class="line"> product: type, <span class="comment">// 产品形式float-浮动式 embed-嵌入式</span></span><br><span class="line"> offline: !data.success <span class="comment">//支持本地验证</span></span><br><span class="line"> }, handler);</span><br><span class="line"> }</span><br><span class="line"> });</span><br><span class="line"> })();</span><br><span class="line"> <span class="meta"><?php</span> <span class="keyword">endif</span>;<span class="meta">?></span></span><br><span class="line">});</span><br><span class="line"></script></span><br><span class="line"><span class="meta"><?php</span></span><br><span class="line"><span class="keyword">include</span> <span class="string">'footer.php'</span>;</span><br><span class="line"><span class="meta">?></span></span><br></pre></td></tr></table></figure></li><li><p>处理后端登录验证逻辑/var/Widget/Login.php:</p><figure class="highlight php"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta"><?php</span></span><br><span class="line"><span class="keyword">if</span> (!defined(<span class="string">'__TYPECHO_ROOT_DIR__'</span>)) <span class="keyword">exit</span>;</span><br><span class="line"><span class="comment">/**</span></span><br><span class="line"><span class="comment"> * 登录组件</span></span><br><span class="line"><span class="comment"> *</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@category</span> typecho</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@package</span> Widget</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@copyright</span> Copyright (c) 2008 Typecho team (http://www.typecho.org)</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@license</span> GNU General Public License 2.0</span></span><br><span class="line"><span class="comment"> */</span></span><br><span class="line"><span class="class"><span class="keyword">class</span> <span class="title">Widget_Login</span> <span class="keyword">extends</span> <span class="title">Widget_Abstract_Users</span> <span class="keyword">implements</span> <span class="title">Widget_Interface_Do</span></span></span><br><span class="line"><span class="class"></span>{</span><br><span class="line"> <span class="comment">/**</span></span><br><span class="line"><span class="comment"> * 初始化函数</span></span><br><span class="line"><span class="comment"> *</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@access</span> public</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@return</span> void</span></span><br><span class="line"><span class="comment"> */</span></span><br><span class="line"> <span class="keyword">public</span> <span class="function"><span class="keyword">function</span> <span class="title">action</span><span class="params">()</span></span></span><br><span class="line"><span class="function"> </span>{</span><br><span class="line"> <span class="comment">// protect</span></span><br><span class="line"> <span class="keyword">$this</span>->security->protect();</span><br><span class="line"> <span class="comment">/** 如果已经登录 */</span></span><br><span class="line"> <span class="keyword">if</span> (<span class="keyword">$this</span>->user->hasLogin()) {</span><br><span class="line"> <span class="comment">/** 直接返回 */</span></span><br><span class="line"> <span class="keyword">$this</span>->response->redirect(<span class="keyword">$this</span>->options->index);</span><br><span class="line"> }</span><br><span class="line"> <span class="comment">/** 初始化验证类 */</span></span><br><span class="line"> $validator = <span class="keyword">new</span> Typecho_Validate();</span><br><span class="line"> $validator->addRule(<span class="string">'name'</span>, <span class="string">'required'</span>, _t(<span class="string">'请输入用户名'</span>));</span><br><span class="line"> $validator->addRule(<span class="string">'password'</span>, <span class="string">'required'</span>, _t(<span class="string">'请输入密码'</span>));</span><br><span class="line"> <span class="comment">/** 截获验证异常 */</span></span><br><span class="line"> <span class="keyword">if</span> ($error = $validator->run(<span class="keyword">$this</span>->request->from(<span class="string">'name'</span>, <span class="string">'password'</span>))) {</span><br><span class="line"> Typecho_Cookie::set(<span class="string">'__typecho_remember_name'</span>, <span class="keyword">$this</span>->request->name);</span><br><span class="line"> <span class="comment">/** 设置提示信息 */</span></span><br><span class="line"> <span class="keyword">$this</span>->widget(<span class="string">'Widget_Notice'</span>)->set($error);</span><br><span class="line"> <span class="keyword">$this</span>->response->goBack();</span><br><span class="line"> }</span><br><span class="line"> <span class="comment">/** 极客验证码校验 **/</span></span><br><span class="line"> <span class="keyword">$this</span>->verifyGeeTest();</span><br><span class="line"> <span class="comment">/** 开始验证用户 **/</span></span><br><span class="line"> $valid = <span class="keyword">$this</span>->user->login(<span class="keyword">$this</span>->request->name, <span class="keyword">$this</span>->request->password,</span><br><span class="line"> <span class="keyword">false</span>, <span class="number">1</span> == <span class="keyword">$this</span>->request->remember ? <span class="keyword">$this</span>->options->gmtTime + <span class="keyword">$this</span>->options->timezone + <span class="number">30</span>*<span class="number">24</span>*<span class="number">3600</span> : <span class="number">0</span>);</span><br><span class="line"> <span class="comment">/** 比对密码 */</span></span><br><span class="line"> <span class="keyword">if</span> (!$valid) {</span><br><span class="line"> <span class="comment">/** 防止穷举,休眠3秒 */</span></span><br><span class="line"> sleep(<span class="number">3</span>);</span><br><span class="line"> <span class="keyword">$this</span>->pluginHandle()->loginFail(<span class="keyword">$this</span>->user, <span class="keyword">$this</span>->request->name,</span><br><span class="line"> <span class="keyword">$this</span>->request->password, <span class="number">1</span> == <span class="keyword">$this</span>->request->remember);</span><br><span class="line"> Typecho_Cookie::set(<span class="string">'__typecho_remember_name'</span>, <span class="keyword">$this</span>->request->name);</span><br><span class="line"> <span class="keyword">$this</span>->widget(<span class="string">'Widget_Notice'</span>)->set(_t(<span class="string">'用户名或密码无效'</span>), <span class="string">'error'</span>);</span><br><span class="line"> <span class="keyword">$this</span>->response->goBack(<span class="string">'?referer='</span> . urlencode(<span class="keyword">$this</span>->request->referer));</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">$this</span>->pluginHandle()->loginSucceed(<span class="keyword">$this</span>->user, <span class="keyword">$this</span>->request->name,</span><br><span class="line"> <span class="keyword">$this</span>->request->password, <span class="number">1</span> == <span class="keyword">$this</span>->request->remember);</span><br><span class="line"> <span class="comment">/** 跳转验证后地址 */</span></span><br><span class="line"> <span class="keyword">if</span> (<span class="keyword">NULL</span> != <span class="keyword">$this</span>->request->referer) {</span><br><span class="line"> <span class="keyword">$this</span>->response->redirect(<span class="keyword">$this</span>->request->referer);</span><br><span class="line"> } <span class="keyword">else</span> <span class="keyword">if</span> (!<span class="keyword">$this</span>->user->pass(<span class="string">'contributor'</span>, <span class="keyword">true</span>)) {</span><br><span class="line"> <span class="comment">/** 不允许普通用户直接跳转后台 */</span></span><br><span class="line"> <span class="keyword">$this</span>->response->redirect(<span class="keyword">$this</span>->options->profileUrl);</span><br><span class="line"> } <span class="keyword">else</span> {</span><br><span class="line"> <span class="keyword">$this</span>->response->redirect(<span class="keyword">$this</span>->options->adminUrl);</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> <span class="comment">/**</span></span><br><span class="line"><span class="comment"> * 开始验证用户行为</span></span><br><span class="line"><span class="comment"> */</span></span><br><span class="line"> <span class="keyword">private</span> <span class="function"><span class="keyword">function</span> <span class="title">verifyGeeTest</span><span class="params">()</span></span></span><br><span class="line"><span class="function"> </span>{</span><br><span class="line"> $status = <span class="keyword">array</span>(</span><br><span class="line"> <span class="string">'empty'</span> => <span class="string">'请进行拼图验证'</span>,</span><br><span class="line"> <span class="string">'failed'</span> => <span class="string">'验证失败'</span>,</span><br><span class="line"> <span class="string">'success'</span> => <span class="string">'验证通过'</span>,</span><br><span class="line"> <span class="string">'down'</span> => <span class="string">'请求超时,请重试'</span>,</span><br><span class="line"> <span class="string">'error'</span> => <span class="string">'服务器异常,请重试'</span></span><br><span class="line"> );</span><br><span class="line"> <span class="comment">/** 如果插件已启用, 则进行验证 */</span></span><br><span class="line"> <span class="keyword">if</span> (!<span class="keyword">empty</span>(Helper::options()->plugins[<span class="string">'activated'</span>][<span class="string">'Geetest'</span>])) {</span><br><span class="line"> $data = <span class="keyword">$this</span>->request->from(<span class="string">'geetest_challenge'</span>, <span class="string">'geetest_validate'</span>, <span class="string">'geetest_seccode'</span>);</span><br><span class="line"> $response = Typecho_Plugin::factory(<span class="string">'gt'</span>)->verify($data);</span><br><span class="line"> <span class="keyword">if</span>($response == <span class="string">'success'</span>) {</span><br><span class="line"> } <span class="keyword">else</span> {</span><br><span class="line"> $error = !<span class="keyword">empty</span>($status[$response]) ? $status[$response] : $status[<span class="string">'error'</span>];</span><br><span class="line"> <span class="keyword">$this</span>->widget(<span class="string">'Widget_Notice'</span>)->set($error);</span><br><span class="line"> <span class="keyword">$this</span>->response->goBack();</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line">}</span><br></pre></td></tr></table></figure></li><li><p>后台控制台-》插件-》极客登录验证码-》启用<br><img src="https://cdn.uu126.cn/usr/uploads/2017/06/2221809380.png" alt="jyz02.png"></p></li><li><p>填写官网申请的极验验证ID和极验验证Key<br><img src="https://cdn.uu126.cn/usr/uploads/2017/06/2935627449.png" alt="jyz03.png"></p></li><li><p>打开后台登录网址,瞧瞧吧<br><img src="https://cdn.uu126.cn/usr/uploads/2017/06/91033285.png" alt="jyz04.png"></p></li></ul><p>大功告成,心里稳当当的@(酷)</p>]]></content>
<categories>
<category> 网站建设 </category>
</categories>
<tags>