基于华为openEuler部署Blog轻量级博客系统【华为根技术】
前言
随着企业数字化转型加速,自主可控的基础设施技术愈发重要。华为openEuler作为一款高性能、安全可靠的开源Linux操作系统,为各类应用提供了坚实的底层支撑。本实践基于openEuler系统,结合Docker容器技术,部署轻量级博客系统Blog。通过本次实践,不仅验证了华为根技术在实际应用中的稳定性与兼容性,也展示了国产化生态的良好发展态势。
一、相关服务介绍
1.1 openEuler系统介绍
- 简介
openEuler
是华为发起并主导的一个开源操作系统项目,它基于Linux内核开发,致力于为企业级应用提供安全、稳定、可靠的操作环境。自2019年正式开源以来,openEuler迅速吸引了全球众多开发者和技术爱好者的关注,并逐渐形成了一个活跃的开源社区。该系统不仅支持多种处理器架构(如x86、ARM等),而且通过持续的技术创新,在性能优化、安全性增强以及容器化支持等方面展现了显著的优势。
- 主要特点
- 开源性:openEuler遵循开源协议,允许任何个人或组织自由获取、使用、修改及分发系统代码,这极大地促进了技术创新与共享。
- 高性能与稳定性:通过对Linux内核进行深度优化,openEuler能够提供出色的运行效率和稳定性,满足企业级应用场景的需求。
- 安全性:提供了包括安全启动、数据加密在内的多重安全保障措施,确保用户数据的安全性。
- 容器化支持:兼容Docker和Kubernetes等容器技术,便于开发者构建、部署和管理容器化应用。
- 丰富的生态系统:拥有庞大的开发者社区和丰富的软件库,为用户提供广泛的软件支持和服务。
1.2 Blog介绍
Blog 项目简介
Blog
是一个轻量级、可自托管的单用户 PHP 博客系统,界面风格类似 Facebook 动态消息流,无需复杂构建流程,开箱即用,支持发布富文本内容、图片、高亮代码和链接,适合个人分享与内容展示。
主要特点
- 无 npm 依赖:完全不依赖 Node.js 环境,避免产生庞大的
node_modules
文件夹。 - 无构建流程:源码即运行代码,无需编译、打包或构建步骤,直接部署即可访问。
- 轻量无冗余:专注于核心功能,结构简洁,资源占用低,运行高效。
- 富文本动态流:支持发布包含文字、图片、链接和代码高亮的社交化动态内容。
- 简单分享机制:可设置内容为公开,让他人以只读方式浏览你的动态更新。
- 易于部署:基于 PHP 开发,只需 Web 服务器支持 PHP 即可快速搭建。
二、本次实践介绍
2.1 本次实践介绍
1.本次实践环境为个人测试环境,生产环境请谨慎;
2.本次实践主要是在openEuler系统下部署Blog轻量级博客。
2.2 本次环境规划
本次环境规划如下所示:
服务器 | HostName | IP地址 | 操作系统 | 内核版本 | 部署项目 | Docker版本 |
---|---|---|---|---|---|---|
VM虚拟机 | openEuler-server | 192.168.3.83 | openEuler 24.03 (LTS) | 6.6.0-28.0.0.34.oe2403.x86_64 | Blog | 26.1.3 |
三、本地环境检查
3.1 检查系统版本
检查当前系统版本,当前系统版本为
openEuler 24.03 (LTS)
。
[root@openEuler-server ~]# cat /etc/os-release
NAME="openEuler"
VERSION="24.03 (LTS)"
ID="openEuler"
VERSION_ID="24.03"
PRETTY_NAME="openEuler 24.03 (LTS)"
ANSI_COLOR="0;31"
3.2 检查内核版本
检查当前内核版本,如下所示:
[root@openEuler-server ~]# uname -r
6.6.0-28.0.0.34.oe2403.x86_64
3.3 检查本地IP
查看本地IP地址,本次实践本地IP设置为
192.168.3.83/24
。
[root@openEuler-server ~]# ifconfig ens18
ens18: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.3.83 netmask 255.255.255.0 broadcast 192.168.3.255
inet6 fe80::be24:11ff:feaa:bfa5 prefixlen 64 scopeid 0x20<link>
ether bc:24:11:aa:bf:a5 txqueuelen 1000 (Ethernet)
RX packets 1267 bytes 134016 (130.8 KiB)
RX errors 0 dropped 64 overruns 0 frame 0
TX packets 321 bytes 36697 (35.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
3.4 检查Docker环境
- 检查Docker版本
[root@openEuler-server ~]# docker -v
Docker version 26.1.3, build b72abbb
四、部署Blog项目
4.1 下载Docker镜像
执行以下命令,拉取Blog的容器镜像。
docker pull m1k1o/blog:latest
4.2 创建部署目录
执行以下命令,创建部署目录。
mkdir -p /data/blog/data && cd /data/blog/
4.3 docker-cli方式部署(可选)
- 如果想要使用docker-cli方式部署,可参考以下命令:
docker run -d \
-p 80:80 \
-e "TZ=Europe/Vienna" \
-e "BLOG_TITLE=Blog" \
-e "BLOG_NAME=Max Musermann" \
-e "BLOG_NICK=admin" \
-e "BLOG_PASS=admin" \
-e "BLOG_LANG=en" \
-v $PWD/data:/var/www/html/data \
m1k1o/blog:latest
4.4 编辑部署文件
本次实践我们使用docker compose方式部署,新建及编辑以下docker-compose.yaml文件。
vim docker-compose.yaml
version: '3'
services:
blog:
image: m1k1o/blog:latest
container_name: blog
restart: unless-stopped
ports:
- "8021:80"
environment:
TZ: Asia/Shanghai
BLOG_TITLE: Blog
BLOG_NAME: Max Musermann
BLOG_NICK: admin
BLOG_PASS: admin
BLOG_LANG: en
volumes:
- ./data:/var/www/html/data
配置类型 | 变量/路径 | 说明 |
---|---|---|
环境变量 | TZ: Asia/Shanghai |
设置容器的时区为亚洲/上海(中国标准时间)。 |
BLOG_TITLE: Blog |
设置博客网站的标题为 “Blog”,通常显示在页面标题或页眉中。 | |
BLOG_NAME: Max Musermann |
设置博客作者或所有者姓名为 “Max Musermann”。 | |
BLOG_NICK: admin |
设置管理员登录的用户名(昵称)为 admin 。 |
|
BLOG_PASS: admin |
设置管理员登录密码为 admin ,注意:使用弱密码存在安全风险,建议修改。 |
|
BLOG_LANG: en |
设置博客的默认语言为英文(en = English)。 | |
卷挂载 | ./data:/var/www/html/data |
将宿主机当前目录下的 data 文件夹挂载到容器内的 /var/www/html/data 路径,用于持久化存储博客数据(如文章、配置、上传文件等),防止容器删除后数据丢失。 |
4.5 部署Blog
执行以下
docker compose up -d
命令,部署Blog应用。
docker compose up -d
4.6 目录授权
- 目录授权
chmod -R 777 /data/blog/
- 重启容器
docker compose restart
4.7 检查容器状态
检查Blog容器状态,确保Blog容器正常启动。
[root@openEuler-server blog]# docker compose ps
WARN[0000] /data/blog/docker-compose.yaml: `version` is obsolete
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
blog m1k1o/blog:latest "docker-php-entrypoi…" blog 24 seconds ago Up 23 seconds 0.0.0.0:8021->80/tcp, :::8021->80/tcp
4.8 检查容器日志
检查容器运行日志,确保Blog服务正常运行。
docker compose logs
五、访问Blog服务
5.1 安全设置
- 关闭selinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
- 停止本地防火墙
systemctl stop firewalld
systemctl disable firewalld
5.2 访问Blog首页
访问地址:http://《服务器IP地址》:8021,将IP替换为自己服务器IP地址,进入到Blog登录页。如果无法访问,则检查服务器防火墙是否设置,云服务器的安全组端口是否放行等。
六、发布内容
6.1 登录Blog
使用部署文件中设置的账号密码,登录Blog。
6.2 发布帖子
在编辑框内,编辑帖子内容和图片等信息,发布即可。
七、总结
本次实践成功在华为openEuler系统上部署并运行了轻量级博客Blog,整体过程流畅,兼容性良好。通过Docker方式部署,极大提升了应用的可移植性与运维效率。系统运行稳定,访问顺畅,充分体现了openEuler在服务器场景下的强大支撑能力。未来可进一步探索更多基于华为根技术的创新应用,助力自主可控技术生态建设。
- 点赞
- 收藏
- 关注作者
评论(0)