跳转到主要内容

站台日志

更新了一下服务器环境

Tony 提交于 周一, 2020-10-26 - 15:42

CentOS 7 自带的 Perl 太老了,很多 emoji 用不了,索性把系统升级为 CentOS 8。🤞

VestaCP 不支持 CentOS 8,所以又把面板改成了宝塔的开源版本 aapanel。开源版本没有宝塔账号那套东西,目前也没有收费的项目,用起来很爽气。🤸

Drupal 的 rewrite 和 MovableType 的 PSGI 模式需要额外设置一下,有文件管理器操作起来很是方便。🕺

经过若干小时的点点点操作,把网站都搬迁好了,就是目前你看到的这样。🤴

CentOS 7: This is perl 5, version 16, subversion 3 (v5.16.3) 2012年
CentOS 8: This is perl 5, version 26, subversion 3 (v5.26.3) 2018年

🍗好家伙,这次更了个跨 6 年的新,Unicode® 也从 6 升级到了 9,每次 Unicode® 更新都会新增很多字符,但除了 emoji 之外谁在乎呢?🤷‍♂️

文章标签

如何利用又拍云 CDN 给 Drupal 加速

Tony 提交于 周二, 2020-03-24 - 19:21

最近备案了一个仿蓝汛 CDN 的域名,当然是为了享受国内的 CDN 加速服务,例如又拍,七牛,各种 OSS。但我对七牛没什么感觉(单纯是名字不讨喜),各种 OSS 感觉又太重了,不值得为这个功能去记另外一套体系的东西,于是选择又拍云作为 CDN。

目前你访问 TONYHEAD 通利堂 的时候,只会从 tonyhead.com 上请求 index.php 和一个负责生成二维码的 qr.php ,其他的静态资源例如 .css .js .jpg 都会从又拍云 CDN tonyhead.chinacachecdn.com 处加载。这些静态资源其实都储存在 tonyhead.com,只是通过又拍云这个高速的中间人实现最优的内容投递。

访问路径大概是这样:访客  <->  ⚡又拍云 CDN⚡ <-> 源站 tonyhead.com

先在又拍云创建一个 CDN 空间,在 CDN 空间的设置里面:

  • 回源管理 需要添加源站地址如 www.tonyhead.com,端口 80,勾上协议跟随,又拍云会自动寻找位于 443 端口上的 HTTPS 端口。
  • 回源 Host 需要添加源站 www.tonyhead.com 以匹配 Drupal settings.php 里 trusted_host_patterns 的设置。
  • 源站资源迁移 建议勾上并配置一个又拍云云储存空间,当静态资源被第一次访问的时候,静态内容就会保存在这个空间里,访客会直接从又拍云 CDN 拉取这个文件,而不用每次都回源到 tonyhead.com 上。
  • 缓存配置 设置为全局缓存7天。
  • 性能优化成本控制图像处理 我没修改,用的都是默认。
  • HTTPS 可以申请免费的 Let's Encrypt 证书。

边缘规则 很重要要单独拿出来说说,我配置了一条规则,用来防止搜索引擎重复收录源站和又拍云 CDN 镜像站的 HTML 页面(想想看,作为网站主的你发现 www.tonyhead.com 和 cdn.tonyhead.com 的文章页居然是一样的时候是多尴尬的事情)。网上很多教程都是❌错的,或者效果不好(robots.txt 只能蒙搜索引擎,但访客依然有机会把镜像站的 URL 加入收藏夹),请用我这里的设置,原理就是告诉又拍云 CDN,当访客访问到非静态内容后缀的时候,跳转回源站。

简单来说,这个规则实现了这个功能:

  1. 当访客访问 cdn.tonyhead.com/1.jpg 的时候,回源 www.tonyhead.com/1.jpg,并用 cdn.tonyhead.com/1.jpg 推送给访客(加速生效)。
  2. 当访客访问 cdn.tonyhead.com/about.html 的时候,触发边缘规则,浏览器收到 301 重定向跳转回 www.tonyhead.com/about.html(同时防止了镜像收录)。

下图 正则不匹配(不区分大小写) 后的那个 匹配值 截图不完整,贴到这里,可以根据自己的情况增加或删除后缀。   

.(jpeg|jpg|gif|png|css|js|svg|ico|zip|rar|7z|woff2)(.*)$

如何利用又拍云 CDN 给 Drupal 加速

又拍云 CDN 那边就设置好了,接着配置 Drupal ,先下载一个 CDN 插件,这个插件会自动把页面元素的 URL 替换成指定的 CDN 域名 URL。再启用插件,在后台进行配置,把需要加速的静态文件后缀加上,又拍云 CDN 的域名加上,保存即可。

如何利用又拍云 CDN 给 Drupal 加速

清空 Drupal 缓存,打开 F12 看看效果吧。🤓

文章标签

如何使用 Drupal 的视图功能为网站增加内容

Tony 提交于 周一, 2020-03-23 - 18:35

MovableType 从 7.0 版本开始增加了 「Content Type 内容类型」 这一概念,殊不知 Drupal 早于十二年前已经实现。

视图是 Drupal 的另一个核心功能,通过控制可以高度自定义字段的位置来生成内容页或区块,Drupal 比我见到过的任何 CMS 都更加灵活,下面我介绍一下如何给网站添加一个增加情趣的类似豆瓣的「书单」功能,0代码,全部功能通过点点点鼠标即可实现。

我的网站我做主!“脏”数据“脏”结构我乐意!😎

先来看看成果,这是我的书单页 —— 📚 Tony 书单,有个小下拉选项,可以筛选 想读/在读/读过 状态。而每个页面的左边有一个 “在读的书”区块,“筛选了按 最后发表 排序的 1 个状态为 在读 的来自内容类型为 书单 的结果”。

具体操作方法,先建立一个名为 书单 的内容类型,发布选项里面的 发布到首页 可以去掉,因为我不想书单条目进入博客的主信息流里,其他栏位随意。

Drupal 视图

在书单的内容类型下,建立若干个字段,例如 ISBN图书封面阅读状态豆瓣链接,悉随君便,我们稍后要用到这些字段来输出内容。

调整一下字段的位置,方便按自己的逻辑顺序输入内容,弄好后可以尝试创建一本「书」,编辑时后台大概长这样。(封面 那里实现得很脏,不过我乐意,0代码的代价🤣)

Drupal 视图

如法炮制创建了若干本书后,名为「书单」的内容类型就有「内容」了,这时我们再去视图里想办法把这些内容展示出来。

创建一个视图,显示 内容 类型为刚刚创建的 书单 ,生成一个页面 和 生成一个区块 都勾上,因为我们要生成一个展示所有书的页面和一个 在读的书 的小挂件,页面路径,是否生成 RSS 等选项可以稍后修改。

Drupal 视图

下一步,进入视图编辑状态,可以对着下图抄一遍,左上角显示的是目前在编辑 Page 页面 。

Drupal 视图

区块(小挂件)的设置,左上角显示的是目前在编辑 Block 区块。

Drupal 视图

注意的地方是编辑 Page 页面 的话,过滤条件里的设置也会影响到 Block 区块,所以在设置过滤条件的时候,选 (覆盖),就不会“传染”到邻居了。

Drupal 视图

操作都是很直观的,重复上面的话,“筛选了按 最后发表 排序的 1 个状态为 在读 的来自内容类型为 书单 的结果”,前几次用会感觉到迷糊,但成功设置过一次之后,就会觉得打开了新的大门一样。

回头再细细挖掘各个栏位,例如年底时可以通过过滤发布时间为 2020 年的读过的书,生成一个自己的 2020 年书单,没有做不到,只有想不到。😤

嗯就这样,这篇文章的目的就是督促自己看书和安利 Drupal ,遇到什么问题的可以留言共同研究。🤓

文章标签

购入自己姓名的拼音域名

Tony 提交于 周五, 2018-06-01 - 01:17

最近购入了自己姓名的拼音域名,一直觉得12个字符很长没什么意思,所以忽略了,直到被一个待售的微商域名“汤圆坊”所启发…… ✌️

工具依旧用的是 Godaddy Doamin Backorder ,价格便宜,目前成功率是 3/3 ,高达 100% 。

We registered the domain you wanted.
Congratulations! You're now the proud owner of the following domain(s):

TANGYUANFANG.COM

Our Backorder system applied the default terms to the registration. This is a great time to review or make changes to the contact information, registration length, name server settings and more. Plus, now you can attach it to an email account or website.

文章标签

升级到 Drupal8

Tony 提交于 周日, 2017-01-29 - 16:46

先按照这几个步骤把 Nginx 的坑填好,Drupal 官方到现在都没有一个开箱即用的 Drupal 8 for nginx.conf ,连最基本的 clean url 和下载远程文件都得按不同的文章这里修修那里补补才能用上。

再按照这几个步骤把 Memcached 的坑填好,有大神说 Drupal 8 使用 Memcached/Redis 没有太多增益,嗨 ,先搭起来,目前没看到有类似X Autoload之类可以很明显增强性能的模块,SupercachePanels 有冲突,先放一边等更新再说。

最后按照官网的升级步骤做就可以了,再进行 Drupal 著名的点点点配置工作,我点了3天才把待完成列表点完,还有不少模块没有 Drupal 8 的版本而要想另外的方法实现或只能等待,1年前接触 Drupal 7,1年后更新 Drupal 8 ,升级到 Drupal 8 的好处都有啥?对个人用户来说还有 BigPipe数据库转换后还能用上 emoji ,总之,好玩! 😍

相关链接

文章标签

Drupal7在不同环境下的效能

Tony 提交于 周一, 2016-06-13 - 11:11

在升级VPS环境时对比了一下php5,php7和Memcached对Drupal7的效能的影响。

亮点

  • Drupal7对高版本的php有优化,在启用Memcached的情况下,php7比php5减少了15%的查询次数。
  • 启用Memcached就能达到加速200%的效果,实施简单并且非常划算。
  • php7线程占用内存变少,意味着能同时承受更多的访问量。

有图有真相(数值越小越好)

drupal+php7+memcached

测试数据

drupal+php7+memcached

总结

推荐使用php7+apc+apcu+memcached的环境来跑Drupal7,目前还没看到有不兼容的问题出现。

回到顶部

文章标签

AdvAgg + CDN 为 Drupal 加速

Tony 提交于 周六, 2016-05-07 - 13:08

Advanced CSS/JS Aggregation模块能把页面上的CSS和JS数量合并/压缩到指定数量,例如1,来减少HTTP请求数。CDN模块则能把指定格式/指定路径的静态文件改写到指定的域名上(例如改写到一个或多个支持CDN的空间)来进行加速。

效果图,TONYHEAD 通利堂首页的CSS和JS请求数减为1,misc目录下的文件(可以在CDN模块里通过黑白名单设置哪些路径)全部走又拍云上的CDN空间(cdn. tonyhead.com)。

AdvAgg + CDN 为Drupal加速

2016-06-11更新

在另外一个Drupal站实施AdvAgg加速的效果,三个结果分别为:

文章标签

TONYHEAD.COM延展到HTTP/2上并启用 Certificate Transparency 策略

Tony 提交于 周五, 2016-03-18 - 00:02

继上次切换到HTTPS后更进一步延展到HTTP/2以增强性能,并启用 Certificate Transparency 策略以增强防(bi)护(ge)。

TONYHEAD.COM延展到HTTP/2上并启用 Certificate Transparency 策略

TONYHEAD.COM延展到HTTP/2上并启用 Certificate Transparency 策略

TONYHEAD.COM延展到HTTP/2上并启用 Certificate Transparency 策略

在全民从虚拟主机转移到VPS的浪潮中我落后了,CDN我赶上了,HTTPS开始不再落后,HTTP/2和Certificate Transparency应该可以领先一阵子吧。cool

相关链接

文章标签

如何把 MovableType 导入 Drupal

Tony 提交于 周四, 2016-02-04 - 12:22

此文记录了如何把一个MovableType的博客导入Drupal的过程,也可当成是一个WordPress导入Drupal的教程。 大体思路是先把MovalbeType导入WordPress,然后通过Migration from WordPress模块把WordPress导入Drupal。

回到顶部

导入前导入后的文件结构区别

N/A表示在转换过程中会丢失。

  • MovableType ---> WordPress ---> Drupal
  • Entry ---> Post ---> Article
  • Page ---> N/A ---> N/A 注:MovableType导出的文件不带Page的部分
  • Category ---> Category ---> Tags(taxonomy)
  • Tags ---> Category ---> Tags(taxonomy) 注:在MovalbeType导入WordPress过程中后会自动截取文章标题转录入Tags,会有大量Tags生成。
  • Custom Fields ---> N/A ---> N/A
  • Comment ---> Comment ---> Comment
  • Trackback ---> Comment ---> Comment

回到顶部

MovalbeType导入WordPress

  1. 在MT 6后台,选 Tools -> Export Entries -> Export Website,可以得到一个TXT文件。
  2. 把这个TXT文件改名为 mt-export.txt ,上传到WordPress的 wp-content 目录下。
  3. 在WP后台,选 工具 -> 导入 -> Movable Type and TypePad (可能会提示需要安装插件) -> 导入 mt-export.txt
  4. 完成。

回到顶部

WordPress导入Drupal所需要的模块

因为Migration from WordPress支持在线导入WordPress站点,不需要任何数据文件,使得两边导入非常便捷,不用担心导入体积较大的网站时会出现脚本超时的状况。导入过程也伴随一个导入向导,你可以在向导中设置各种导入参数,甚至可以在导入结束后把Drupal倒回原来的状态。

回到顶部

TONYHEAD.COM切换到HTTPS上

Tony 提交于 周五, 2014-08-15 - 14:39

TONYHEAD.COM切换到HTTPS上

响应Google号召,使用 HTTPS 为TONYHEAD 通利堂全站护持。

SSL证书是msg7086友情帮忙签的Comodo Positive SSL,再次感谢。

回到顶部

2014-09-14更新

出于速度考量(又拍云的二级域名需要花费5秒在SSL Negotiation上),只对后台启用HTTPS加密,前台使用HTTP。

回到顶部

MovableType配置

修改 mt-config.cgi 里 CGIPath ,如果只是需求单纯Admin后台部分(mt.cgi)启用HTTPS那么就改成 AdminCGIPath ,因为我的计划是前后台(mt-comment.cgi+mt.cgi)都启用HTTPS,所以我设置的是 CGIPath 。

CGIPath https://www.tonyhead.com/cgi-bin/mt/

回到顶部

Nginx配置

在server括号中加入下列,把所有走80端口的流量都重定向到HTTPS下。

if ($server_port ~ "^80$"){ set $rule_0 1$rule_0; } if ($rule_0 = "1"){ rewrite /(.*) https://www.tonyhead.com/ $1 permanent; break; }

页面元素路径配置

把页面元素的引用路径都改成"//domain/flower.jpg"是一个好习惯,浏览器会根据当前页面是HTTP或是HTTPS来自动适配。

回到顶部

其他发现

  1. 在清理页面混合内容的过程中发现新浪云的 .sinaapp.com 和又拍云的 .upaiyun.com 都能支持HTTPS访问,在此大力推荐。
  2. AdminCGIPath 和 CGIPath 的区别
  3. 为了让手机上的浏览器(包括QQ浏览器和Chrome)完美支持加密访问TONYHEAD(不需要在客户端加入额外证书,避免了感叹号提示),需要在服务器端上做好足够的证书链,为什么需要完整的证书链可以参考这里
  4. TONYHEAD.COM的证书链截图。

回到顶部

文章标签