目录

VPS 配置笔记

我在 2023 年 9 月份在推特上读到了腾讯云打折的消息,算了一下,比我目前在用的 Linode 每月 5 美元的 plan 要便宜一些,于是就购买了一年的(只允许买一年,买三份会给你三个一年期的实例),也下定决心在这一期Linode到期前,进行了VPS的迁移。之前的配置笔记有些内容过时了,虽然仍然具有一定的参考价值,但我还是费了一些心思甄别。于是提炼一个新的页面,记录一下当前的VPS配置需要的内容。 — 刘丰 2023/10/11 09:44

服务器描述

第一次购买腾讯云家的服务器,有些东西我不是很熟悉,操作系统就选择了我比较了解的 Debian bookworm。在使用的时候,遇到过多次找不到命令但实际软件包已经安装的情况,比如 nginx。后来发现需要手动制定路径,/sbin/nginx 才能执行,我猜是 /sbin 目录没有被加入到 PATH 里面。之前基本没遇到过这种情况,我猜和 Debian 的策略有关系。

基础设置

腾讯云作为国产服务器厂商,有些默认的配置不需要修改,比如时区。不过为了通用性,我还是记在这里,和之前的笔记没有什么不同。

修改默认编辑器

# update-alternatives --config editor

修改时区

# dpkg-reconfigure tzdata

MySQL

现在已经是 MariaDB 了,而且现在 VPS 的资源也不需要太过精打细算,默认配置还可以承受,我这次也没有进行很多配置文件的调整。InnoDB 用起来。

MySQL 安全设置

安装了 MySQL 后运行一下 sudo mysql_secure_installation,自动清除一些不安全的设置。

MySQL 新建用户

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

MySQL 获取权限

GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';

MySQL 数据库迁移

以迁移 WordPress 数据库(数据库名 wordpress)为例。

MySQL 查看表结构

DESC 表名;

或者

SHOW COLUMNS FROM 表名;

MySQL change password

MySQL Collation check

SHOW TABLE STATUS; 的输出结果中有相关的字段

Nginx 安装配置

近几年 Nginx 越来越流行,Apache 的配置已经忘得差不多了。

原本的配置文件复制粘贴过来继续用,之前上了 MoinMoin、MediaWiki 等一些站点,因此有点复杂,现在削减了不少。

certbot

这个环节遇到最大的问题是 HTTPS 配置。我是使用 certbot 工具来搞定的,它会编辑 Nginx 的站点配置文件,我上次的经验是,先不要加自己的设置,拿一个最小的配置先让 certbot 弄完了,之后再加自己的配置。

因为 Debian 发型版 /sbin/nginx 程序没有在 PATH 里的原因,默认的 certbot 命令执行是不成功的,要加命令行参数指定可执行程序。最终成功的命令是

sudo certbot --nginx --nginx-ctl /sbin/nginx

目录配置

在 Debian 发型版中,Nginx 默认的目录是 /var/www/html。我也不确定标准的做法是怎么样,我这两年搞的是在 HOME 目录里加一个软连接:

ln -s /var/www/html /home/liuf/public_html

目录的权限值得关注,对于 blogwiki 这些平时不需要手动维护的目录,我把权限都设置成了 www-data:www-data。对于一些平时可能会手动维护的静态目录,我设置的权限是 liuf:www-data

PHP

安装 php-fpm 包,这是处理 Nginx 请求的核心包。WordPress 需要一些 PHP 相关的组件包,需要那个,逐个安装即可。比如 php-mbstring