搭建博客思路
说明
本篇文章整理Linux
下搭建博客思路过程与实操。
我刚开始使用的是虚拟主机无脑搭建的博客,后来感觉性能太弱就想着使用本地服务器来改善这个问题,提高体验,
奈何囊中羞涩,只买了一个 onecloud
,体验和自由度缺少舒服了一些,但是折腾精神是一把火,而不会轻易熄灭的!!
哎说都是泪,我只是想给我的所思所想找一个安稳的家。
虚拟主机 | |
---|---|
说明 | 囊中羞涩,使用的都是free版本,付费的版本还不如去买VPS |
好处 | 稳定,免费,适合长时间运行省事 |
缺点 | 时间长了就依赖平台了,上传限制,下载限制,备份不好备份 |
本地服务器 | |
---|---|
说明 | 我是优选考虑本地服务器的 |
好处 | 完全的自主控制,我可以随心所欲,不管是拓展优化还是备份都非常好 |
缺点 | 我并没有公网IP,即便有我也不想使用家宽来搭建博客。同时我希望可以https访问我的博客 |
购买服务器 | |
---|---|
说明 | 怎么说呢,不管是国内的还是国外的,价格我都可以负担的起。但是我喜欢折腾,不是安生的主 |
好处 | 好处当然是稳定+无限制,毕竟是掏钱买服务的,用着确实舒心 |
缺点 | 国内必须备案,不然国内服务无法使用,同时折腾不了 |
现在实操正式开始,时间为:2025-07-18 21:47:17
暂定流程如下:
graph TD
A[开始] --> B[系统更新]
B --> C[安装Nginx]
C --> D[安装数据库]
D --> E[配置数据库]
E --> F[安装PHP]
F --> G[下载WordPress]
G --> H[配置WordPress]
H --> I[配置Nginx站点]
I --> J[设置文件权限]
J --> K[完成安装向导]
K --> L[博客搭建完成]
准备系统
我先开始使用 VMware Workstation Pro 虚拟机来安装一个server服务器系统,为了快速安装使用「 Ubuntu 」。
介绍下有什么好处:
- 可以快速准备好服务器环境,模拟部署,提前练手
- 虚拟机有个功能可以快照,方便使用时间倒流
材料
镜像系统下载
# 阿里云镜像站地址
https://mirrors.aliyun.com/ubuntu-releases/
以下是文件名中各个单词的含义解释:
1. ubuntu: 这是一个基于Debian的Linux操作系统,旨在提供易于使用的桌面和服务器环境。
2. 25.04: 这是Ubuntu的版本号,表示该版本是在2025年4月发布的。Ubuntu的版本号通常由两个数字组成,前一个数字表示年份,后一个数字表示该年的发布顺序。
3. desktop: 指的是桌面版操作系统,通常用于个人计算机,提供图形用户界面(GUI)和用户友好的体验。
4. amd64: 这是指64位的AMD架构,适用于64位的处理器,包括AMD和Intel的处理器。
5. iso: 这是光盘映像文件的扩展名,包含了光盘的完整内容,可以用于刻录光盘或在虚拟机中使用。
6. torrent: 这是一个用于文件共享的协议,通常用于下载大文件。它允许用户通过点对点(P2P)网络下载文件。
7. zsync: 这是一个增量下载工具的文件扩展名,允许用户只下载文件的变化部分,而不是整个文件。
8. list: 这个文件通常包含软件包或文件的列表,可能用于安装或配置。
9. manifest: 这个文件包含有关软件包或映像的元数据,通常包括文件的哈希值和其他信息。
10. live-server: 指的是可以直接从光盘或USB启动的服务器版操作系统,允许用户在不安装的情况下使用操作系统。
11. netboot: 这是指网络启动,允许计算机通过网络加载操作系统,而不是从本地存储设备。
12. wsl: 这是Windows Subsystem for Linux的缩写,允许用户在Windows上运行Linux环境。
13. tar.gz: 这是一个压缩文件格式,通常用于打包和压缩多个文件,便于传输和存储。
各位可以自行选择自己需要的版本下载,不知道选什么就选择最新版本的前一个版本。
Root用户登陆
此步骤是为了更加方便上传下载文件,同时节省来回切换用户和输入密码等繁琐无用操作
安装系统后需要自行初始化root的用户密码,这一步是一切的开始,使用「 sudo passwd root 」,系统会提示你输入当前用户密码再输入两次超级管理密码,设置成功后即可切换 root 用户验证。
编辑 SSH 配置文件:
sudo vim /etc/ssh/sshd_config
# 在文件中找到以下行
#PermitRootLogin prohibit-password
# 改为
PermitRootLogin yes # 允许root远程登陆
PasswordAuthentication yes # 允许root远程密码登陆
# 若找不到可直接复制上面两行添加到底部即可
最后重启SSH ,命令「 sudo systemctl restart ssh 」让其生效。重启系统命令「 reboot 」。
一键换源脚本
此目的是为了更新软件包和为安装PHP和数据库MariaDB做准备。同时SSH过程就不展开讲了,请自行探索。
脚本是开源的,放心使用:
# 好评
bash <(curl -sSL https://linuxmirrors.cn/main.sh)
# 更换Docker镜像源,不需要提一下
bash <(curl -sSL https://linuxmirrors.cn/docker.sh)
好好好,现在准备材料已经差不多了,现在最最最重要的是什么!当然是赶紧备份!备份!备份!
大喊三遍哦,不备份你一定会后悔的!
备份过程,打快照
如图
第一个红色箭头为创建按钮,单击即可唤出和我一样的按钮,三秒搞定备份
第三个为恢复按钮,如图。点击转到即可恢复备份,三秒恢复,非常方便。
备份恢复教程完结,系统准备完毕,已经可以随便浪了~~
安装web服务
Nginx 因其卓越的静态文件处理能力和高效的并发处理机制而闻名。它利用事件驱动架构,即使在面对海量并发请求时也能保持较低的资源消耗,这使 Nginx 成为了处理大流量、高并发WordPress网站的理想选择。同时,Nginx 在反向代理和负载均衡方面也有出色的表现,这对于追求高性能的网站尤为重要。
怎么说呢,还是学习的时候学的这个,不想也没什么时间在投入精力学别的了,一切从简~,搞那么花里胡哨没什么意义,能用就行了!
使用命令:
# 更新软件包列表
sudo apt update && sudo apt upgrade -y
# 安装Nginx
sudo apt install nginx -y
# 检查状态
sudo systemctl status nginx
# 示例
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since ...
# 设置开机自启动
sudo systemctl enable nginx
打开浏览器,访问服务器的IP地址,例如 192.168.31.158,应看到Nginx欢迎页面了。
配置文件:
Nginx配置目录一般位于 /etc/nginx/sites-available ,创建一个WordPress站点的配置文件供博客使用。
sudo vim /etc/nginx/sites-available/wordpress
在文件中粘贴以下配置内容,替换 your_domain.com 为您的实际域名或服务器IP,/var/www/wordpress 为您的WordPress安装目录(稍后会创建):
server {
listen 80;
server_name _;
# 设置最大上传文件大小
root /var/www/wordpress;
index index.php index.html index.htm;
# 设置最大上传文件大小
client_max_body_size 512M;
location / {
try_files uriuri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock; # 根据您的PHP版本调整
fastcgi_param SCRIPT_FILENAME document_rootfastcgi_script_name;
include fastcgi_params;
}
location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff|woff2|ttf|svg|eot|otf|ttc|ttf|ttc)$ {
expires max;
log_not_found off;
}
location ~ /\.ht {
deny all;
}
}
保存并退出文件,英文输入法下点击 Esc 后:wq
,即完成保存。
剩下的先暂时不管,算了,在说下Nginx站点后续操作吧。
创建符号链接以启用站点配置:
sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
若发生流程已经做完,而打开服务器IP地址,没有显示wordpress安装界面,即是端口冲突问题。
把 /etc/nginx/sites-enabled/default
彻底移出 Nginx 配置目录(rm
或 mv
到别处),
然后 nginx -t && systemctl reload nginx
,即可消除与 WordPress 的端口,让 WordPress 正常运行。
讲解:
为什么要用这条命令?
Nginx使用了一种分层配置管理方式:
- sites-available 目录:用于存储所有可能的站点配置文件,无论是启用还是未启用的。这些文件不会直接被Nginx加载。
- sites-enabled 目录:Nginx实际读取的配置文件目录。只有在这个目录中的配置文件(或其符号链接)才会被Nginx加载并用于处理请求。
- 通过符号链接,你可以方便地在 sites-enabled 中启用或禁用站点,而无需移动或复制文件。
就是放到『 /etc/nginx/sites-available 』下不生效,这个只是存放下,放到『 /etc/nginx/sites-enabled/ 』下才是生效的。
安装数据库
数据库我选择 MariaDB ,个人感觉这个更加轻便,消耗资源更小,他是MySQL 的一个分支,主流,请放心使用。
安装教程:
先apt安装『 sudo apt install mariadb-server -y 』,在初始化数据库 『 sudo mysql_secure_installation 』
按提示操作:
- 输入当前 root 密码首次安装为空,直接回车
- 设置 root 密码?输入
Y
- 输入新密码:
awang
(设置强密码并牢记) - 确认密码
- 移除匿名用户?输入
Y
- 禁止 root 远程登录?输入
Y
- 移除测试数据库?输入
Y
- 立即重载权限表?输入
Y
创建博客数据库:
创建一个WordPress数据库,账户密码为awang
# 使用 root 登录 MariaDB
sudo mysql -u root -p
# 输入刚才设置的 root 密码
# 创建 WordPress 数据库
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# 创建用户 'awang' 并设置密码 'awang'
CREATE USER 'awang'@'localhost' IDENTIFIED BY 'awang';
# 授予 awang 用户对 wordpress 数据库的所有权限
GRANT ALL PRIVILEGES ON wordpress.* TO 'awang'@'localhost';
# 刷新权限使更改生效
FLUSH PRIVILEGES;
# 退出 MySQL
EXIT;
这就是创建好了,非常的简单。
补充:
有时我们会使用远程来链接,使用图形化工具管理或者备份数据库,例如软件:Navicat Premium Lite 17
这里就需要我们改下配置了,命令如下:
# 编辑配置文件
sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
# bind-address = 127.0.0.1 找到并注释掉这一行
# 保存后重启服务
sudo systemctl restart mariadb
这样就可以远程访问了。
备份与恢复:
使用 mysqldump 备份,备份到root目录下,
# 格式如下:
mysqldump [选项] 数据库名 [表名] >文件名.sql
# 实例:
sudo mysqldump -u awang -p wordpress > /root/wordpress_backup_$(date +%F).sql
- 系统会提示输入密码:输入
awang
(密码不会显示) - 备份文件将保存为:
/root/wordpress_backup_2023-10-30.sql
(日期自动更新)
特别详细的可以参考这篇文章
备份完成需要验证下:
# 查看备份文件
sudo ls -lh /root/wordpress_*.sql
# 检查文件开头内容
sudo head -n 10 /root/wordpress_*.sql
OK,备份结束!恢复来了!
简单粗暴方法:
# 1. 删除原数据库
sudo mysql -u root -p -e "DROP DATABASE wordpress;"
# 2. 创建新数据库
sudo mysql -u root -p -e "CREATE DATABASE wordpress; GRANT ALL ON wordpress.* TO 'awang'@'localhost';"
# 3. 恢复数据
sudo mysql -u awang -p wordpress < /root/wordpress_backup_2023-10-30.sql
此方法是直接删除原来,创建新数据库导入数据,优点是不会报错。但是要是失败出问题了就完蛋了!
稳妥一点:
创建临时库→校验→切换→清理
# 使用 root 身份登录 MariaDB 并创建临时库
sudo mysql -u root -p -e "
-- 创建临时数据库 wordpress_temp,避免影响正式库
CREATE DATABASE wordpress_temp
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
-- 授权 awang 用户对临时库有所有权限(方便后续测试)
GRANT ALL PRIVILEGES ON wordpress_temp.* TO 'awang'@'localhost';
FLUSH PRIVILEGES;
"
此命令直接复制粘贴即可,无需一条条复制。
校验:
# 切换到普通用户导入临时库
sudo mysqldump --version # 可选,确认 mysqldump 和 mysql 客户端版本
# 导入备份到临时库
mysql -u awang -p wordpress_temp < /root/wordpress_backup_2023-10-30.sql
导入完成后,登录检查表和数据:
# 登录 MariaDB 检查临时库
mysql -u root -p -e "
-- 切换到临时库
USE wordpress_temp;
-- 查看表列表,确保所有表都已导入
SHOW TABLES;
-- 检查行数,例如检查 wp_posts 表
SELECT COUNT(*) AS posts_count FROM wp_posts;
"
切换:
其实就是重命名为博客的数据库名称
sudo mysql -u root -p -e "
-- 重命名正式库为备份库
RENAME DATABASE wordpress TO wordpress_old;
-- 重命名临时库为正式库
RENAME DATABASE wordpress_temp TO wordpress;
"
wordpress改为wordpress_old;临时的改为正式的。
清理:
sudo mysql -u root -p -e "DROP DATABASE wordpress_old;"
此命令直接删除,高风险操作!!
此时安装数据库教程结束,OVER!
安装PHP
本文固定安装版本PHP8.3,接近最新版本,又不是不能用。
# 添加 PHP 官方源
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
# 安装 PHP 8.3 和常用模块(按 WordPress 要求)
sudo apt install -y php8.3 php8.3-fpm php8.3-mysql \
php8.3-curl php8.3-gd php8.3-xml php8.3-mbstring \
php8.3-xmlrpc php8.3-zip php8.3-soap php8.3-intl
使用的是 php8.3-fpm
模式,适用于 Nginx(非 Apache)。↻
扩展:
提高上传2MB限制:
定位配置文件路径『 php8.3 -i | grep “Loaded Configuration File”』,就会显示出路径,一般存在于『 /etc/php/8.3/fpm/php.ini 』。
# 修改配置文件
sudo vim /etc/php/8.3/fpm/php.ini
# 上传文件最大大小
upload_max_filesize = 512M
# 表单提交内容最大值(应大于等于 upload)
post_max_size = 512M
或者直接使用我的成品,这个配置可以这样形容:“装插件飞快、用插件顺畅、后台不再 502/内存溢出,文件上传不再报 exceeds the maximum upload size
。”
修改完毕后请各位同学使用命令 「 sudo systemctl restart php8.3-fpm.service 」重启PHP服务。
安装wordpress
给大家看看我的强迫症流程:
# 1) 下载到 /tmp
cd /tmp
wget -O wordpress.zip https://wordpress.org/latest.zip
# 2) 解压 → /var/www/wordpress
sudo apt install -y unzip
sudo unzip -q wordpress.zip
sudo mv /tmp/wordpress /var/www/wordpress
# 3) 清理压缩包
rm -f /tmp/wordpress.zip
# 4) 权限一次到位
sudo chown -R www-data:www-data /var/www/wordpress
sudo find /var/www/wordpress -type d -exec chmod 755 {} \;
sudo find /var/www/wordpress -type f -exec chmod 644 {} \;
可能是国内到 wordpress.org 抽风
如果 wget
也卡住,可手动把 latest.zip
下载到本地再 scp
进 /tmp
,脚本同样适用~
在重启Nginx和PHP:
sudo systemctl restart php8.3-fpm
sudo nginx -t
sudo systemctl restart nginx
sudo systemctl enable nginx mysql php8.3-fpm
现在打开浏览器打开服务器的IP地址即可正常访问wordpress的服务啦。本教程到此结束
结语
本文章个人一边查资料一边实践慢慢打出来的。本博客也是使用此教程,采用CloudFlare Tunnel内网穿透,这样就可以让我的服务器需要公网IP即可公开出去。
使用SaaS回源的话,Ping博客还是全绿,速度也不是很慢。挺好的。若转载文章请标明来处,互联网精神贡献你我他!