分类
站务

博客域名转出阿里云

本来这个事应该在 7 月份做的,但当时因为一些事情耽搁了,导致后面就干脆忘了这事。

7 月份的时候,收到阿里云的邮件,大概是说 .me 等一些无法备案的域名不让停靠在阿里云了,让转移走。

今天打开阿里云域名管理面板时,偶然间发现有提示,这才想起这事来。

转移过程还是挺顺利的。由于过了转移期限,阿里云把域名转移到了阿里云国际版,于是进入阿里云国际版进行转出操作。这里面有个小插曲,由于没有设置域名持有者信息,导致获取不到转出密码,最后还是通过发工单才知道原因。一切都弄好之后,顺利拿到域名转出密码。

至于新的域名商,我选择的是 NameSilo,因为综合评价还不错。

分类
站务

博客搬家了

今天把博客搬到了阿里云香港,离开了待了一年多的搬瓦工 DC3 机房。搬是搬出去了,心里还挺怀念的。

搬瓦工这台服务器,是 2018 年双十一活动时购买的,性价比极高。刚买完那阵,有一段时间可以迁到 DC8 ,当时的 DC8 是 Zenlayer 机房的 CN2 线路,质量非常好,但是当我知道这个消息时,搬瓦工已经关闭了迁移到 DC8 的入口,无奈在 DC3 待到现在。

不得不感概时间过的很快,现在的 DC8 已经不是当年的 DC8 了,不再是 Zenlayer 机房的 CN2 线路。

DC3 虽然没换线路,但也不是原来的那个质量了。自从购买完一直到去年海缆断之前,都还挺不错,白天延迟稳定在170ms左右,晚上偶尔丢包。

但是从去年海缆断过之后,就再也没好过——白天延迟200ms+,经常丢包,尤其一到晚上网络高峰期,延迟直接飙到300ms左右,疯狂丢包,基本就没法用了。看下图:

2021-01-05 22:05,ping 搬瓦工 DC3 的截图。

即便这样,我也忍耐了半年之久,但是忍无可忍,便无须再忍。无奈之下,被迫逃离了搬瓦工,转到了阿里云。

阿里云这台机器买了有大半个月了,一直没有时间去倒腾。昨天忙完一天的工作,利用晚上的时间把环境搭建好了。系统用的 Debian 10 Buster ,Debian stable 是一个非常稳定的存在,坚如磐石,随便滚动,基本不会出错。

之前一直用的 CentOS ,但是 CentOS 以后往 CentOS Stream 上发展了,从 RHEL 下游变成了 RHEL 上游,处于 Fedora 和 RHEL 中间,滚动发布。既然都是滚动发布,那我还要你做甚,Debian stable 它不香吗?纯社区驱动,自然演进,永远不用担心被企业操控。

好像有点扯远了,回归主题。

今天利用空闲时间,把博客和一个客户的网站迁移到了阿里云香港。用了一年多的美国服务器,突然搬到香港,那体验是非常不一样的,就像多年的老便秘突然通畅了,这感觉简直不要太爽。

最后,来一张阿里云香港的ping截图:

阿里云香港晚高峰(2021-01-05 22:25)的 ping 截图,贼稳?。
分类
站务

给博客加个简单的代码高亮

一直想做这个事情,但又觉得可有可无,就一直拖到现在。这几天事情不多,今天下午突然想起来这事,不如把它实现了。

在 plugins 目录新建文件夹 WuJieHighlight ,然后在 WuJieHighlight 文件夹下新建文件 WuJieHighlight.php ,代码如下:

<?php 
/*
Plugin Name: WuJieHighlight
Plugin URI: https://wujie.me
Description: 自己的代码高亮插件
Version: 1.1
Author: wujie
Author URI: https://wujie.me
License: GPL
*/

function add_my_plugin_stylesheet() {
    wp_register_style('highlight', '//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.4.1/styles/atom-one-light.min.css');
    wp_enqueue_style('highlight');
}
add_action( 'wp_print_styles', 'add_my_plugin_stylesheet' );

function add_my_plugin_script() {
    wp_register_script('highlight','//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.4.1/highlight.min.js');
    wp_enqueue_script('highlight');
}
add_action( 'wp_enqueue_scripts', 'add_my_plugin_script' );

function init_highlighting() { ?>
    <style>
        @import url('https://fonts.googleapis.com/css?family=Fira+Code&display=swap');
        .hljs{ background:transparent; }
        code {
            font-family: 'Fira Code', consolas,'Microsoft YaHei', monospace;
            background: #dcd7ca;
            border-radius: 0.2rem;     
            padding: 0.3rem 0.4rem 0.3rem 0.4rem;
            font-size: 0.8em;
        }
        
        .wp-block-code code, kbd, pre, samp {
            font-family: 'Fira Code', consolas,'Microsoft YaHei', monospace;
            font-size: 0.5em;
            padding: 0.4rem 0.6rem;
            white-space: pre-wrap;
        }     
    </style>
    <script>
        hljs.initHighlightingOnLoad();
    </script>
<?php
}
add_action('wp_head', 'init_highlighting');

保存后,到后台启用该插件即可看到效果。

分类
站务

升级到 WordPress 5.6

WordPress 5.6 发布了,这个版本对我最大的吸引力就是带了一个全新的 2021 主题,收到更新后,第一时间就安装了。

要注意这个主题会自动把文章分类的图像描述文字同步到菜单上,导致菜单显示有点乱,需要在菜单里面把菜单的图像描述文字清空,然后再保存菜单,显示就正常了。

清空菜单的图像描述文字

调整好菜单之后,体验了一下,布局上和 2020 主题差不多,首页文章不再自动显示全部,加了一个“继续阅读”。配色从之前的“屎黄色”变成现成的小清新,感觉还不错。

网站图标顺便也更新了一下,看起来和新主题更和谐了。

WordPress 发布新主题,预示着新的一年又要到来了,不得不感叹时间过的真快。

随着时间的推进,万事万物都在更新,我也要努力让自己有进步有变化才行,先定个小目标,万一实现了呢?

分类
站务

网站被入侵了

这台服务器上面挂了几个客户的网站,前段时间偶然间打开看了下,发现网站首页的头部有PHP的警告信息,于是登录服务器查看,发现每个WordPress网站的模板首页头部都被植入了一行PHP代码,把它删了就好了。经过检擦,发现每个网站下面都有大量的随机字符命名的文件。于是先把这些文件删了,但感觉这也不是办法,删了还是有可能被再次植入,而且也不能保证清除干净。后来,想到VPS有自动备份的功能,于是就把整个服务器还原到了8月31号。还原后所有文件和网站功能都正常,应该这个时候是没有被入侵的。

但是好景不长,过了没几天,进入服务器查看,发现博客网站的根目录下又有不明文件了,分析了下里面的代码和注释,感觉应该是国外的黑客干的,于是整个服务器上的所有网站都屏蔽了来自国外的访问,然后就是一直到现在,好像都没出什么问题。不过有个坏处就是影响google的索引了。

本次出问题的都是WordPress建的站点,自己用Laravel开发的程序没事。可见是WordPress树大招风,研究的人太多了,不过这程序用起来体验是真的不错,可能是用习惯了,很舒服。等下个版本更新后再放开国外访问吧,或许也会永远不放开,没关系,一个小博客而已,上面的其它的网站也很少有面向国外的。

分类
站务

博客PHP版本升级到7.4.3

前两天升级PHP7.4.3遇到Error 139的问题,本来以为是PHP版本的问题,今晚网友“笛声”在博客留言,说他升级成功了,所以,又想折腾一下。

首先,卸载原来使用remi源安装的libzip:

yum remove libzip5-devel-1.5.2-1.el7.remi.x86_64

然后进入php7.4.2代码文件夹,configure一下,报错No package 'libzip' found,说明卸载成功。

接下来,开始使用源码安装libzip-1.2.0,这里参考给我留言的网友“笛声”的博文 https://hqidi.com/154.html

引用一下重点:

yum remove libzip libzip-devel (如果configure libzip1.2.0报zlib版本过旧,还要再把这两个装上)

wget https://hqidi.com/big/libzip-1.2.0.tar.gz

(如果下载失效可以使用wget https://nih.at/libzip/libzip-1.2.0.tar.gz

tar -zxvf libzip-1.2.0.tar.gz

cd libzip-1.2.0

./configure

make && make install

在网上找到的教程到了这一步就直接让你继续在PHP源码目录里面执行configure程序继续配置了,其实你虽然已经安装了libzip1.2,但是PHP的configure程序依然找不到,不知道你安装在哪,你得告诉PHP的configure程序,我安装了libzip 1.2,并且安装在何处。以前是用ldconfig来通告系统所需动态库文件的位置,现在用pkg-config

我刚刚提供的方法安装的libzip默认被安装到了 /usr/local/lib 在这个目录下你能看到libzip.so libzip.so.5 libzip.so.5.0.0 还有一个pkgconfig目录。

所以,真正的解决方法来了,在你configure的会话窗口直接输入如下内容:

export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/"

上面命令的作用就是告诉configure程序,去/usr/local/lib 目录下找库文件,这样他就能找到libzip.so

此时,你继续执行php的configure将会很顺利的看到

Thank you for using PHP.

引用自 https://hqidi.com/154.html,略有修改。

通过卸载remi源的libzip,使用源码编译重装libzip-1.2.0后,再编译PHP7.4.3就完美通过了。

再次感谢热心网友提供的帮助。

分类
站务

博客PHP版本升级到7.4.2

今天看了下PHP版本,最新版本已经到了PHP7.4.3了,由于博客使用的PHP版本还是7.4.1,于是想就升级一下。

下载了7.4.3的代码,编辑后发现报错:

Generating phar.php
/bin/sh: line 1: 18054 Segmentation fault      ` if test -x "/root/php-7.4.3/sapi/cli/php"; then /root/php-7.4.3/build/shtool echo -n -- "/root/php-7.4.3/sapi/cli/php -n"; if test "x" != "x"; then /root/php-7.4.3/build/shtool echo -n -- " -d extension_dir=/root/php-7.4.3/modules"; for i in bz2 zlib phar; do if test -f "/root/php-7.4.3/modules/$i.la"; then . /root/php-7.4.3/modules/$i.la; /root/php-7.4.3/build/shtool echo -n -- " -d extension=$dlname"; fi; done; fi; else /root/php-7.4.3/build/shtool echo -n -- "/root/php-7.4.3/sapi/cli/php"; fi;` -n -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d phar.readonly=0 /root/php-7.4.3/ext/phar/build_precommand.php > ext/phar/phar.php
make: *** [ext/phar/phar.php] Error 139

尝试修改 configure 选项,发现只要去掉–with-zip就可以了,但是去这个,zip 扩展就不能用了。看这个错误,应该是生成 phar 是报的错,于是禁用 phar,增加一个 configure 选项:--disable-phar,再编译就可以通过了。完整 configure 参数如下:

./configure \
--prefix=/usr/local/php/php74 \
--enable-gd \
--with-curl \
--enable-fpm \
--enable-cgi \
--with-openssl \
--enable-mbstring \
--with-pdo-mysql \
--with-zlib \
--with-zip \
--with-mysqli \
--enable-opcache \
--enable-mysqlnd \
--with-libxml \
--with-jpeg \
--with-freetype \
--with-pdo-sqlite \
--with-sqlite3 \
--enable-cli \
--enable-shared \
--enable-exif \
--disable-phar 

但是这样有个问题,禁用phar,可能composer等使用phar的相关的服务就不能用了,所以,我没安装这个版本。于是又下载了7.4.2的版本,这个版本一次性编译通过,升级成功。

至于那个Error 139的问题,猜测可能是代码BUG,那么只好跳过7.4.3这个版本,等下一个版本再看。


2020年3月3日 23:29更新:

经网友“笛声”留言提醒,PHP7.4.3版本没有问题,是我环境的问题。升级PHP7.4.3的过程,参考这里

分类
站务

修改twentytwenty主题的中文显示效果

今天没什么事,把博客主题的文字显示效果做了修改。之前默认的字体和行距是为英文优化的,显示英文很完美,但是显示中文就不怎么好看,字体粗行距小,看起来糊成了一片。

修改样式有三种方式,一种是直接修改主题的样式文件style.css,但这种方式有缺点,在主题更新后,自己所做的修改就被覆盖了,每次更新都要改一次,麻烦了点。好处是在后台编辑器里面也能实现和前台看到的相同的文字效果。

第二种方式是使用“自定义—额外CSS”功能,把自定义样式写进额外CSS里就能实现想要的效果了,而且更新主题无影响。缺点是后台编辑器还是默认字体,无法实现和前台一致的效果。不过这也无所谓,后台只有自己在看,前台阅读体验好就行了。

还有另外一种方式是使用子主题功能,既能做到更新无影响又能实现前后台文字显示效果一致,但我感觉,这个还是有点过于麻烦了,不想折腾,就没有尝试。

分类
站务

域名添加了www

昨天在处理一个网站的SEO问题时,发现带www的和不带www分别被百度收录成不同的网站,于是就开始关注起www的问题。

从昨晚到现在一直在网络上查这个问题,支持no-www的和www的各有人在,但是从实际情况来看,互联网上还是带www的网站点多数,从google的搜索结果就能看出来。

带www的域名有4190000个搜索结果
不带www的域名有1730000个搜索结果

带www的比不带www的多了2倍多,所以,还是顺应主流,把我的博客加上了www,并把裸域做了301跳转到了www的域名。

在查资料的过程中,也了解到了不少关于www的由来和意义。www在我们国内翻译为“万维网”,是World Wide Web的简称。在最开始的时候,用www.example.com来表示这个服务是需要使用World Wide Web客户端(即浏览器)来打开的,ftp.example.com表示这个服务需要使用FTP客户端打开,等等如此用来区分服务类型,后来这个习惯就延续了下来,被人们普遍了解和接受。

看到www开头的,就表示这是一个万维网服务,意味着这个站点是万维网中的一个节点。在万维网中,任何一个网站都不是孤岛,通过链接把这些节点一个个连接起来,形成了一张大“网”——万维网。所以我们在做万维网服务时,能用链接表示的就尽量用链接,把这个“网”连接起来,切不要从其它站点复制粘贴大段重复的文字,这才是www本身的含义。

在网上查www的时候,看到很多人都在说,用裸域在技术上也存在不少问题,关于cookie污染的,关于cname和mx记录冲突的,关于cdn的等等,总之就是,加上www利大于弊。

从我个人主观情感上来说,我更偏向于带www,因为我的域名短,加上www显的域名更饱满,两边也“对称”,让人一看就知道这是个网址。视觉效果对比如下:
https://wujie.me/
https://www.wujie.me/
关于输入便捷性的问题,只要做好301跳转,都不是问题。

在搞清楚了www的问题之后,顺便把网站开启了http2,但在实际使用过程中并没有感受到明显的变化。