服务器搭建过程

很早之前就有了搭建博客的想法, 但现在才得以实现, 正好在搭建博客的过程中也学习了一点点Linux和服务器的配置, 这里就把整个服务器的搭建过程贴出来, 以便以后查阅.

配置数据库

这里使用MariaDB作为数据库

安装MariaDB

sudo apt install mariadb-server
sudo mysql_secure_installation

设置账号密码

UPDATE user SET password=password('密码') WHERE user='root';
UPDATE user SET plugin='mysql_native_password' WHERE user = 'root'; # 默认是unix_socket, 只允许sudo mysql
FLUSH PRIVILEGES;

设置远程访问

# sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
# 将bind-address改为0.0.0.0
GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '密码';
FLUSH PRIVILEGES;

重启服务

sudo systemctl restart mariadb

查看字符集

show variables like "%character%";
show variables like "%collation%";

配置Caddy

本来打算使用Nginx的, 但是被大佬安利了Caddy, 它的优点是支持零配置Https, 但是我使用的是v2版本, 网上资料较少, 最终在自己的摸索下配置了网页服务器和反向代理.

Caddy介绍: https://zhuanlan.zhihu.com/p/144208057

安装Caddy

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo apt-key add -
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee -a /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

Caddy的配置文件有两种, 分别是JSON(v2版本推荐使用)和CaddyFile(继承自v1版本), 这里就采用CaddyFile进行配置啦.

配置文件位于/etc/caddy/Caddyfile

文档: https://caddyserver.com/docs/

我的示例

http://服务器IP地址 {
    respond 404
}
www.dawncraft.cc {
    redir https://dawncraft.cc{uri} permanent
}
dawncraft.cc {
    tls 用于申请证书的邮箱
    encode gzip
    root * 网页所在位置
    file_server
    php_fastcgi unix//run/php/php7.4-fpm.sock # 这里要改成实际的路径, 下面会讲
    @wp-admin {
        path not ^\/wp-admin/*
    }
    rewrite @wp-admin {path}/index.php?{query}
}
git.dawncraft.cc {
    tls 用于申请证书的邮箱
    encode gzip
    reverse_proxy localhost:8080
}
# 单页应用如果使用HTML5 History模式则需配置重写规则
# 例如https://router.vuejs.org/zh/guide/essentials/history-mode.html
# 但是vue-router提供的示例是Caddy1的, 下面是Caddy2的
spa.dawncraft.cc {
    root * 网页所在位置
    file_server
    try_files {path} /
}

重载配置文件

sudo systemctl reload caddy

配置php

安装php

sudo apt install php

修改php_fastcgi

vim /etc/php/7.4/fpm/pool.d/www.conf
# 大约第36行左右listen = /run/php/php7.4-fpm.sock
# 把CaddyFile的php_fastcgi改为unix/加上listen后的内容

修改配置

vim /etc/php/7.4/fpm/php.ini

需要修改超时时间, 最大内存限制, 文件上传限制

重启服务

sudo systemctl restart php7.4-fpm

配置WordPress

安装WordPress

从官网下载WordPress, 解压到网站目录

修改配置

访问站点并填写相关信息初始化站点.

进入WordPress根目录

删除license.txt和readme.html

编辑wp-config.php文件并加入如下设置

define('AUTOSAVE_INTERVAL', 180); // 设置自动保存间隔
define('WP_POST_REVISIONS', false); // 关闭修订功能以节约数据库空间

安装主题

由于博客上有音乐播放器, 因此希望找一个支持pjax的主题, 这里选择了Argon主题
启用主题后可在管理界面导航栏看到Argon主题选项, 根据自己需求调整设置即可

安装插件

安装一些常用的插件, 例如经典编辑器, Simple Local Avatars, Hermit X, 侧栏音乐播放器等

侧栏音乐播放器

本博客使用了后宫学长整合的侧栏音乐播放器插件, 感谢原作者

但是该插件提供的音乐播放器的上一首和下一首按钮无效
经过debug发现是当未启用随机播放时播放器元素的order属性没有值, 改为list即可

另外播放器默认打开歌词显示, 如何不修改代码默认关闭歌词的办法还没有找到
已经在Meting-js的issues中找到了一个解决方案, 那就是使用Object.defineProperty
随便找个script标签把这段js代码塞进去即可:

Object.defineProperty(document.querySelector('meting-js'), 'aplayer', {
    get: function() {
        return window.player;
    },
    set: function(player) {
        window.player = player;
        player.template.lrcButton.classList.add('aplayer-icon-lrc-inactivity');
        player.lrc.hide();
    }
});

如果你懒得自己改也可以直接下载我改好的, 修复了上一首和下一首按钮, 以及默认不显示歌词
点击下载: e-aplayer-wc

配置Gogs

安装Gogs

从官网下载二进制可执行文件, 然后修改配置文件即可

文档: https://gogs.io/docs

添加到守护进程

如果希望Gogs可以随系统运行, 可以将它加入到守护进程中, 官方提供了一个脚本, 具体操作如下:

cp ./gogs/scripts/systemd/gogs.service /etc/systemd/system/gogs.service
sudo vim /etc/systemd/system/gogs.service
# 然后再修改一下gogs的路径即可

修改页面模板

详见https://gogs.io/docs/features/custom_template, 我还没改呢, 懒得改(逃

标题: 服务器搭建过程
作者: QingChenW
链接: https://dawncraft.cc/2021/04/54/
本文遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 许可
禁止商用, 非商业转载请注明作者及来源!
上一篇
下一篇
隐藏