很早之前就有了搭建博客的想法, 但现在才得以实现, 正好在搭建博客的过程中也学习了一点点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
从官网下载二进制可执行文件, 然后修改配置文件即可
添加到守护进程
如果希望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, 我还没改呢, 懒得改(逃