基于华为openEuler部署Blog轻量级博客系统【华为根技术】

举报
江湖有缘 发表于 2025/08/22 16:55:39 2025/08/22
【摘要】 基于华为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在服务器场景下的强大支撑能力。未来可进一步探索更多基于华为根技术的创新应用,助力自主可控技术生态建设。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。