更新了一下服务器环境

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 之外谁在乎呢?🤷‍♂️

文章标签

RKEM 诞生30周年

Tony 提交于 2020-05-27 12:27, 星期三

RKEM

2020年5月27号,是马士基航运基石系统之一 RKEM 诞生30周年纪念日。

在 RKEM 诞生的数十年前,船公司是用照片拍摄布满集装箱标识的地图来记录集装箱的移动,RKEM 的出现数字化了集装箱的流动(equipment flow),为日常工作的开展和集装箱调运提供支持和决策。

一些数字

  1. 微软的🎴纸牌游戏 Microsoft Solitaire 诞生于1990年5月22日。
  2. RKEM 在1990年5月28日上线,第一个记录是来自横滨的一个出口重柜进闸。
  3. 系统设计为可以管理 200000 个集装箱,但到今日为止,有超过 9000000 条记录(45倍于设计指标),任一时刻标记为活跃的集装箱(集装箱/车架/设备)有超过 4000000 个。
  4. 这 4000000 个集装箱中,有 3600000 个在承担运输的任务(in fleet)。
  5. RKEM 每星期会接收 2500000 个 gate move。
  6. RKEM 每星期会更新 500000 次集装箱状态。
  7. 马士基历史最悠久且仍在使用的集装箱是 APMU000009 ,是一个船上储存用的 20尺平板 gear box,诞生于 1990年5月27日。

看到这个柜子的时候真是吓到了,比很多人还要老。😆

RKEM 诞生30周年

RKEM 诞生30周年

“如果地球上最老的集装箱是30岁,那么在31年前,地球上的集装箱跟现在的集装箱,完全换了一拨。”

文章标签

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

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

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

目前你访问 TONYHEAD 通利堂 的时候,只会从 tonyhead.com 上请求 index.php 和一个负责生成二维码的 qr.php ,其他的静态资源例如 .css .js .jpg 都会从又拍云 CDN cdn.tonyhead.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,当访客访问到非静态内容后缀的时候,跳转回源站。

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

文章标签

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

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

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

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

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

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

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

文章标签

宝塔面板安装 MovableType

Tony 提交于 2020-03-06 13:00, 星期五

使用宝塔面板+ PSGI 的组合来运行 MovableType,默认用 Nginx 的组合进行安装,在软件商店里添加 Memcached 来提高性能。

宝塔面板安装 Movabletype

aaPanel应该也能用同样的方法操作。

安装 MovableType 需要的 perl 组件

yum install -y perl-Cache-Memcached perl-Archive-Zip perl-XML* perl-YAML-Syck perl-Crypt-DSA perl-GD perl-Archive-Tar perl-Cache-* perl-Crypt-SSLeay perl-IPC-Run perl-DBI perl-DBD-mysql --skip-broken

安装 PSGI 环境

这里需时较长,网络问题也会经常失败,重复执行直到提示都安装过了就行了。

yum install perl-ExtUtils* perl-Module-Build expat-devel gcc -y
curl -L http://cpanmin.us/ | perl - App::cpanminus

cpanm Plack Task::Plack XMLRPC::Transport::HTTP::Plack Cache::Memcached Cache::File

修改 Nginx 配置,mt 目录下的文件都交给 PSGI 处理

回到 BT 面板,在需要运行 Movabletype 的 网站设置 里面,配置文件,添加以下 URL Rewrite Rule,第一行的 /cgi-bin/mt/ 根据实际情况更改,以下设置为通过 abc.com/cgi-bin/mt/ 来访问 mt.cgi 。

location /cgi-bin/mt/ {
proxy_redirect off;
proxy_set_header    X-Forwarded-Proto $http_x_forwarded_proto;
proxy_set_header    X-Forwarded-Host  $host;
proxy_set_header    Host              $host;
proxy_set_header    X-Real-IP         $remote_addr;
proxy_set_header    X-Forwarded-For   $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:5000;
proxy_read_timeout 1200;
proxy_connect_timeout 1200;
fastcgi_read_timeout 600s;
}

重启一下 Nginx ,没有错误再继续往下做。

同时把 /www/wwwroot/abc.com/cgi-bin/mt/ 目录下的 mt-config.cgi 信息填好。

mt-config.cgi 长这样

PIDFilePath /www/wwwroot/abc.com/cgi-bin/mt/mt.pid
CGIPath    http://abc.com/cgi-bin/mt/

ObjectDriver DBI::mysql
Database mt
DBUser mt
DBPassword 12345678
DBHost 127.0.0.1
MemcachedServers 127.0.0.1:11211

到这里可以测试一下能否跑起来,可以的话,再添加到自启动里面

在 MovableType 的 System 里可以看到目前运行在 PSGI 模式。

宝塔面板安装 Movabletype

cd /www/wwwroot/abc.com/cgi-bin/mt/
starman --pid=/www/wwwroot/abc.com/cgi-bin/mt/mt.pid mt.psgi --workers 5

浏览器 http://abc.com/cgi-bin/mt/mt.cgi 可以成功进入安装界面的话,再把 Starman 加入到自启动里面(Centos 7)。

vi /etc/rc.local

加入以下:

cd /www/wwwroot/abc.com/cgi-bin/mt/ && starman --pid=/www/wwwroot/abc.com/cgi-bin/mt/mt.pid mt.psgi --workers 5

完成。

文章标签