华为云 Flexus 云服务器 X 实例之 openEuler 系统下部署 emlog 轻量级博客平台

YG科技 后端 最近


前言


随着云计算技术的不断进步,华为云 Flexus 云服务器 X 实例凭借其专为中小企业和开发者定制的柔性算力特性,在众多云服务产品中迅速崛起,以强劲的性能和出色的性价比赢得了广泛的市场认可。这款服务器不仅提供了稳定可靠的服务,还拥有灵活的资源配置选项,极大地满足了不同业务场景的需求。在这样的强大平台上,部署如 Emlog 这般快速稳定的轻量级博客及 CMS 建站系统,将成为打造高效云端内容管理系统的理想选择。通过本文的详尽步骤,读者将能够轻松完成 Emlog 的部署工作。借助华为云 Flexus X 实例的支持,用户不仅可以实现快速部署,还能确保博客平台的高性能运行,从而进一步探索其在实际应用中的无限潜力。


一、Flexus 云服务器 X 实例介绍

1.1 Flexus 云服务器 X 实例简介

· 官网地址:华为云Flexus云服务器X实例

华为云 Flexus 云服务器 X 实例是新一代面向中小企业和开发者的柔性算力云服务器。它能够智能感知业务负载的变化,自动调整资源配置。这款服务器特别适用于中低负载的应用场景,例如电商直播、企业网站建设、开发测试环境、游戏服务器以及音视频服务等。X 实例的设计理念旨在为用户提供更加灵活和高效的计算资源管理方式。通过智能调整,它可以更好地满足不同业务的需求,提高资源利用率。

 

1.2 Flexus 云服务器 X 实例特点

· 提供丰富的公共镜像:Flexus 云服务器 X 实例提供多种公共镜像供用户选择,方便快速部署各种应用和服务。

· 可灵活自定义 vCPU 内存配比:用户可以根据自己的需要灵活调整虚拟 CPU 和内存的配比,以满足不同场景的需求。

· 智能感知业务动态升降配:Flexus 云服务器 X 实例能够智能感知业务的负载情况,并根据需要自动升降配,以满足业务的需求,提高系统的稳定性和性能。

· 负载范围更高:相对于 Flexus 应用服务器 L 实例,Flexus 云服务器 X 实例能够处理更高的负载,适用于更复杂和繁忙的场景。

1.3 Flexus 云服务器 X 实例使用场景

Flexus 云服务器 X 实例针对不同的使用场景展现出其独特的优势:

1. 电商直播:利用 X 实例搭建电商交易平台,可以有效应对电商市场的瞬息万变,从容处理业务压力波动,确保交易过程顺畅无阻。

2. 企业建站:面向博客、论坛和企业门户等应用场景,X 实例帮助企业高效传播价值信息,促进信息共享与交流,支持构建多功能传播和交互平台。

3. 个人开发测试:开发者在开发和测试过程中所需的环境资源可以通过 X 实例便捷获取,不仅提高了搭建效率,而且降低了成本。

4. 游戏服务器:适用于搭建游戏后台服务器,强大的计算能力可以轻松应对大量玩家同时在线的情况,同时支持平滑扩容,快速应对玩家数量增长的需求,以及提供出色的网络加速能力以提升用户体验。

二、emlog 介绍

2.1 emlog 简介

emlog 是一款快速稳定的轻量级博客及 CMS 建站系统,旨在打造一个好用的云端内容管理系统。

2.2 emlog 主要特点

· Markdown 编辑器:内置 Markdown 编辑器,能自动保存,让创作过程更舒适高效。

· 多用户角色:支持多种用户角色,提供用户注册和登录功能,方便读者和作者的互动。

· 多媒体资源管理器:内置多媒体资源管理器,方便上传、管理图片、音频、视频和文件等多种媒体资源。

· 模板主题:应用商店提供多种模板主题,使用户可以轻松打造独具个性的站点。

· 插件生态:拥有强大的插件扩展系统,可以快速扩展站点功能,满足特定需求。

· 强大的 SEO 功能:支持文章 URL 自定义,可以定制站点及分类页的 TDK,有助于提升站点在搜索引擎中的可见性。

· 自定义侧边栏管理:提供灵活的侧边栏组件管理功能,让用户能够自定页面显示的侧边栏内容。

·  自定义页面:支持创建自定义页面,例如留言板、个人介绍等,帮助用户打造更富有个性和功能的站点。

· 标签和分类:文章可以轻松归类和标记,提供更好的信息组织和检索功能。

2.3 emlog 使用场景

· 个人博客:个人博主可以使用 Emlog 来记录日常思考、分享技术心得或是生活点滴,借助其强大的 Markdown 编辑器和多媒体管理功能,轻松创建丰富的内容。

· 企业官网:小型企业或创业公司可以利用 Emlog 快速搭建官方站点,通过自定义页面功能添加公司介绍、产品展示、新闻动态等模块,展示品牌形象。

· 团队协作平台:项目团队可以通过 Emlog 建立内部知识库或对外的技术博客,利用多用户角色管理功能,实现团队成员间的信息共享和协同工作。

· 教育资料库:教育机构或个人教师可以使用 Emlog 构建在线课程平台,发布教学资料、课程大纲及学习指南,同时利用评论系统增进师生交流。

· 个人作品集:设计师、摄影师或其他创意工作者可以运用 Emlog 创建个人作品集网站,通过丰富的模板主题展示作品,吸引潜在客户或雇主。

· 行业资讯门户:针对特定行业的爱好者或专业人士,可以建立垂直领域的资讯门户,发布行业新闻、专业分析和技术趋势,形成专业的交流社区。

三、本次实践介绍

3.1 本次实践简介

1.本次实践为个人测试学习环境,旨在快速部署应用,生产环境请谨慎;2.本次实践环境为云华为云 Flexus 云服务器 X 实例,使用的操作系统为 openEuler 22.03 LTS;3.本次实践在 Docker 环境下部署 emlog 轻量级博客平台。

3.2 本次环境规划

四、远程连接华为云 Flexus 云服务器 X 实例

4.1 购买 Flexus 云服务器 X 实例

进入华为云官网:https://activity.huaweicloud.com/,登录自己的华为云账号,进入华为云首页。

 

· 可参考以下基础配置,进行购买:

1.计费模式:包年/包月,这里选择此模式;2.区域:华北—北京四,可用区:随机即可;3.实例规格:关闭性能模式,选择自定义,4vCPUs | 12GiB;4.镜像:公共镜像,Huawei Cloud EulerOS,版本,Huawei Cloud EulerOS 2.0 Standard 64 bit(10GiB);5.应用加速:这里选择不加速;6.存储:系统盘,通用型 SSD100G;7.网络:选择默认即可;8.安全组:选择默认即可;9.弹性公网 IP:选择“现在购买”,全动态 BGP,带宽 3Mbit/s;10.云服务器名称:可自定义设置,这里选择默认的名称;11.登录凭证:自定义设置密码;12.云备份:暂不购买;其余配置默认即可。

· 确认配置及购买

在确认配置页面,检查 Flexus 云服务器 X 实例的各项配置是否正确。检查完毕后,点击“立即购买”。付款完毕后,华为云 Flexus 云服务器 X 实例购买成功。

 

4.2 查看 Flexus 云服务器 X 实例状态

进入华为云 Flexus 云服务的控制台,选择 Flexus 云服务器 X 实例,可以看到已经正在运行的 Flexus 云服务器 X 实例。

 

4.3 使用 Xshell 远程连接

· 复制 Flexus 云服务器 X 实例的弹性公网 IP 地址

 

· 主要填写 Flexus 云服务器 X 实例的弹性公网 IP 地址,输入其登录用户和密码,连接即可。

 

 

五、检查 Flexus 云服务器 X 实例系统环境

5.1 检查操作系统版本

检查 Flexus 云服务器 X 实例的操作系统版本,本次实践选择的版本为 openEuler 22.03 LTS

[root@flexusx-51a1 ~]# cat /etc/os-releaseNAME="openEuler"VERSION="22.03 LTS"ID="openEuler"VERSION_ID="22.03"PRETTY_NAME="openEuler 22.03 LTS"ANSI_COLOR="0;31"

5.2 检查内核版本

检查当前操作系统的内核版本,当前内核版本为 5.10.0-60.109.0.136.oe2203.x86_64。

[root@flexusx-51a1 ~]# uname -r5.10.0-60.109.0.136.oe2203.x86_64

5.3 检查 Docker 版本

部署该项目需要提前安装 Docker 环境,检查 Docker 版本,当前安装的 Docker 版本为 26.1.3。

[root@flexusx-51a1 ~]# docker -vDocker version 26.1.3, build b72abbb

5.4 检查 Docker 服务状态

检查 Docker 服务状态,确保 Docker 服务正常。

[root@flexusx-51a1 ~]#  systemctl status docker●docker.service - Docker Application Container Engine     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)     Active: active (running) since Wed 2024-09-04 21:23:44 CST; 15min agoTriggeredBy:●docker.socket       Docs: https://docs.docker.com   Main PID: 10018 (dockerd)      Tasks: 10     Memory: 196.3M     CGroup: /system.slice/docker.service             └─10018 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

5.5 检查 Docker compose 版本

检查 docker compose 版本,当前默认安装版本为 v2.29.1。

[root@flexusx-51a1 ~]# docker compose versionDocker Compose version v2.27.0

六、部署 emlog 系统

6.1 下载 emlog 镜像

执行以下命令,下载 emlog 相关镜像。

docker pull mysql:8.0docker pull emlog/emlog:pro-php8.1docker pull nginx:alpinedocker pull redis

 

6.2 创建部署目录

执行以下命令,创建项目部署目录/data/emlog/。

mkdir -p /data/emlog/ && cd /data/emlog/

6.3 拉取项目源码

执行以下命令,拉取 emlog 项目源码。

git clone https://github.com/emlog/emlog.git

 

查看 emlog 项目内容,可以看到内容如下:

[root@flexusx-51a1 emlog]# tree -L 2 ./emlog/./emlog/├──admin│??├──account.php│??├──article.php│??├──article_save.php│??├──auth.php│??├──blogger.php│??├──comment.php│??├──data.php│??├──editor.md│??├──globals.php│??├──index.php│??├──link.php│??├──media.php│??├──navbar.php│??├──page.php│??├──plugin.php│??├──plugin_user.php│??├──setting.php│??├──sort.php│??├──store.php│??├──tag.php│??├──template.php│??├──twitter.php│??├──upgrade.php│??├──user.php│??├──views│??└──widgets.php├──auto_install.json├──config.sample.php├──content│??├──backup│??├──cache│??├──plugins│??├──templates│??└──uploadfile├──docker-compose.yml├──favicon.ico├──import.sql├──include│??├──controller│??├──lib│??├──model│??└──service├──index.php├──init.php├──install.php├──license.txt├──nginx.conf├──README.md├──robots.txt└──rss.php14 directories, 37 files

6.4 修改配置文件

· 进入 emlog 项目目录

[root@flexusx-51a1 emlog]# lsadmin              config.sample.php  docker-compose.yml  import.sql  index.php  install.php  nginx.conf  robots.txtauto_install.json  content            favicon.ico         include     init.php   license.txt  README.md   rss.php

· 复制 config.sample.php 并命名为 config.php

cp config.sample.php config.php

· 修改 config.php 文件,内容如下:

<?phpheader("location: ./install.php");exit;//MySQL database hostconst DB_HOST = 'db';//MySQL database usernameconst DB_USER = 'emlog';//MySQL database user passwordconst DB_PASSWD = 'emlog';//Database nameconst DB_NAME = 'emlog';//Database table prefixconst DB_PREFIX = 'emlog_';//Auth keyconst AUTH_KEY = 'emlog-key';//Cookie nameconst AUTH_COOKIE_NAME = 'emlog-cookie';

6.5 修改权限

由于测试环境下,直接修改 emlog 项目的所有目录及文件为完全权限。如果不修改权限,后面的初始化安装会报错。

chmod -R 777 /data/emlog/

6.6 查看 docker-compose.yml 文件

执行以下命令,创建名为 emlog_network 的 Docker 网络。

docker network create emlog_network

本次使用使用 docker compose 方式部署,emlog 项目中已经为我们提供了 docker-compose.yml 文件。在部署文件中,我们可以自行修改宿主机的映射端口,注意防止端口冲突即可。

vim docker-compose.yml

version: '3'services:  db:    image: mysql:8.0    container_name: mysql    command:      - --default_authentication_plugin=mysql_native_password      - --character-set-server=utf8mb4      - --collation-server=utf8mb4_unicode_ci    volumes:      - ./db_data/mysql:/var/lib/mysql    ports:      - "5506:3306"    restart: always    environment:      MYSQL_ROOT_PASSWORD: 12345678      MYSQL_DATABASE: emlog      MYSQL_USER: emlog      MYSQL_PASSWORD: emlog    networks:      - emlog_network  #  db:  #    image: mariadb:latest  #    container_name: mariadb  #    command:  #      - --default_authentication_plugin=mysql_native_password  #      - --character-set-server=utf8mb4  #      - --collation-server=utf8mb4_unicode_ci  #      - --sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,ONLY_FULL_GROUP_BY  #    volumes:  #      - ./db_data/mariadb:/var/lib/mysql  #    ports:  #      - "5506:3306"  #    restart: always  #    environment:  #      MARIADB_ROOT_PASSWORD: 12345678  #      MARIADB_DATABASE: emlog  #      MARIADB_USER: emlog  #      MARIADB_PASSWORD: emlog  #    networks:  #      - emlog_network  php:    image: emlog/emlog:pro-php8.1    container_name: php    volumes:      - ./:/app/emlog    working_dir: /app/emlog    networks:      - emlog_network    environment:      EMLOG_ENV: develop      EMLOG_DB_HOST: db      EMLOG_DB_USER: emlog      EMLOG_DB_NAME: emlog      EMLOG_DB_PASSWORD: emlog  nginx:    image: nginx:alpine    container_name: nginx    volumes:      - ./:/app/emlog      - ./nginx.conf:/etc/nginx/conf.d/default.conf    ports:      - "8080:8080"    networks:      - emlog_network    depends_on:      - php  redis:    image: redis    networks:      - emlog_networknetworks:  emlog_network:    external: true    

· 相关变量解释:

6.7 创建 emlog 容器

执行以下命令,快速创建 emlog 容器。

[root@flexusx-51a1 emlog]#  docker compose up -dWARN[0000] /data/emlog/emlog/docker-compose.yml: `version` is obsolete[+] Running 4/4 ✔Container php            Started                                                                                                                          0.2s ✔Container emlog-redis-1  Started                                                                                                                          0.2s ✔Container mysql          Started                                                                                                                          0.3s ✔Container nginx          Started                                                                                                                          0.4s

 

6.8 查看 emlog 容器状态

检查 emlog 容器状态,确保 emlog 容器正常启动。

[root@flexusx-51a1 emlog]# docker compose psWARN[0000] /data/emlog/emlog/docker-compose.yml: `version` is obsoleteNAME            IMAGE                    COMMAND                  SERVICE   CREATED              STATUS              PORTSemlog-redis-1   redis                    "docker-entrypoint.s…"   redis     About a minute ago   Up About a minute   6379/tcpmysql           mysql:8.0                "docker-entrypoint.s…"   db        About a minute ago   Up About a minute   33060/tcp, 0.0.0.0:5506->3306/tcp, :::5506->3306/tcpnginx           nginx:alpine             "/docker-entrypoint.…"   nginx     About a minute ago   Up About a minute   80/tcp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcpphp             emlog/emlog:pro-php8.1   "docker-php-entrypoi…"   php       About a minute ago   Up About a minute   9000/tcp

 

七、访问前准备工作

7.1 关闭防火墙

执行以下命令,关闭防火墙。

systemctl stop firewalld && systemctl disable firewalld

执行以下命令,关闭 selinux。

setenforce 0sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

7.2 Flexus 云服务器 X 实例安全组配置

进入 Flexus 云服务器 X 实例控制台,进行安全组规则配置。在安全组入方向规则上,放行 8080 端口。

 

八、emlog 的初始化安装

8.1 访问 emlog 初始页

浏览器访问地址:http://弹性公网 IP 地址:8080,将 IP 替换为自己服务器 IP 地址。浏览器打开后,进入 emlog 初始页。

 

8.2 设置管理员账号

自定义设置管理员登录账号密码和邮箱地址信息,点击“开始安装”即可。

 

8.3 删除 install.php 文件

初始化安装成功后,会提示删除 install.php 文件。

 

根据提示,删除 install.php 文件。

[root@flexusx-51a1 emlog]# lsadmin              config.php         content  docker-compose.yml  import.sql  index.php  install.php  nginx.conf  robots.txtauto_install.json  config.sample.php  db_data  favicon.ico         include     init.php   license.txt  README.md   rss.php[root@flexusx-51a1 emlog]# rm -rf install.php

8.4 访问 emlog 项目

浏览器地址:http://弹性公网 IP 地址:8080,可以访问到 emlog 前台首页。

 

点击右上角登录,进入 emlog 后台管理的登录页面。

 

输入刚才设置的管理员账号和密码,访问 emlog 后台管理页面。

 

 

九、使用 emlog 发布博文

9.1 发布文章

在文章编辑器中,我们使用 markdown 语法编辑博文后,点击立即发布。

 

9.2 查看文章效果

我们回到 emlog 的前台首页,可以看到文章效果。

 

 

十、使用体验与总结

在本次实践中,我们成功地在华为云 Flexus 云服务器 X 实例上部署了 Emlog 系统,整个部署过程及后续使用体验极为顺畅。华为云 Flexus X 实例凭借其卓越的性价比、强大的计算性能、可靠的稳定性和高标准的安全保障,在众多云服务选项中脱颖而出。其网络连接始终保持稳定,操作过程中毫无延迟或卡顿,确保了高效的用户体验。Emlog 系统作为一个轻量级博客平台,在华为云 Flexus X 实例的支持下,展现了其快速稳定的特点,使得内容创作与管理变得更加高效便捷。这种组合无疑为寻求可靠云解决方案的专业人士提供了一个理想的选项,值得每一位开发者和企业尝试。


趁着华为云 828 B2B 企业节的热潮,快来探索 Flexus X 实例的超值优惠,感受技术与创新的完美融合;从高性能计算到智能监控,每一个细节都彰显出华为云对品质的坚持与追求;加入华为云大家庭,不仅是一次技术升级,更是向未来迈出的坚实一步;让我们携手并进,共创云端新辉煌!


 

Apipost 私有化火热进行中

评论