目录
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 新建用户
MySQL 获取权限
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
MySQL 数据库迁移
以迁移 WordPress 数据库(数据库名 wordpress)为例。
- 导出:在之前的主机上运行下面这个命令导出数据库:
mysqldump -p wordpress > wp-backup.sql
- 导入:新主机终端(普通用户)执行
mysql -p wordpress < wp-backup.sql
MySQL 查看表结构
MySQL change password
- 用 root 登陆 MySQL:
mysql -uroot -p
- 切换数据库:
use mysql;
update user set password=PASSWORD(“NEWPASSWORD”) where User='liufeng';
flush privileges;
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
目录的权限值得关注,对于 blog
、wiki
这些平时不需要手动维护的目录,我把权限都设置成了 www-data:www-data
。对于一些平时可能会手动维护的静态目录,我设置的权限是 liuf:www-data
。
PHP
安装 php-fpm
包,这是处理 Nginx 请求的核心包。WordPress 需要一些 PHP 相关的组件包,需要那个,逐个安装即可。比如 php-mbstring
。