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

前言


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


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

1.1 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 本次环境规划

服务器类别公共镜像选择内网IP地址Docker版本操作系统版本
华为云Flexus云服务器X实例openEuler192.168.0.16926.1.3openEuler 22.03 LTS

四、远程连接华为云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-release
NAME="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 -r
5.10.0-60.109.0.136.oe2203.x86_64

5.3 检查Docker版本

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

[root@flexusx-51a1 ~]# docker -v
Docker 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 ago
TriggeredBy: ● 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 version
Docker Compose version v2.27.0

六、部署emlog系统

6.1 下载emlog镜像

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

docker pull mysql:8.0
docker pull emlog/emlog:pro-php8.1
docker pull nginx:alpine
docker 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.php

14 directories, 37 files

6.4 修改配置文件

  • 进入emlog项目目录
[root@flexusx-51a1 emlog]# ls
admin              config.sample.php  docker-compose.yml  import.sql  index.php  install.php  nginx.conf  robots.txt
auto_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文件,内容如下:
<?php
header("location: ./install.php");
exit;
//MySQL database host
const DB_HOST = 'db';
//MySQL database username
const DB_USER = 'emlog';
//MySQL database user password
const DB_PASSWD = 'emlog';
//Database name
const DB_NAME = 'emlog';
//Database table prefix
const DB_PREFIX = 'emlog_';
//Auth key
const AUTH_KEY = 'emlog-key';
//Cookie name
const 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文件,可以自行修改ports的宿主机映射端口,注意端口冲突即可。

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_network

networks:
  emlog_network:
    external: true
    

  • 相关变量解释:
服务变量名作用示例值
MySQL/MariaDBMYSQL_ROOT_PASSWORDMySQL 根用户的密码12345678
MySQL/MariaDBMYSQL_DATABASE创建的数据库名称emlog
MySQL/MariaDBMYSQL_USER创建的数据库用户名emlog
MySQL/MariaDBMYSQL_PASSWORD创建的数据库用户密码emlog
MariaDBMARIADB_ROOT_PASSWORDMariaDB 根用户的密码12345678
MariaDBMARIADB_DATABASE创建的数据库名称emlog
MariaDBMARIADB_USER创建的数据库用户名emlog
MariaDBMARIADB_PASSWORD创建的数据库用户密码emlog
PHPEMLOG_ENV设置 Emlog 的环境模式develop
PHPEMLOG_DB_HOST数据库服务器的主机名或 IP 地址db
PHPEMLOG_DB_USER数据库用户名emlog
PHPEMLOG_DB_NAME数据库名称emlog
PHPEMLOG_DB_PASSWORD数据库用户的密码emlog

6.7 创建emlog容器

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

[root@flexusx-51a1 emlog]#  docker compose up -d
WARN[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 ps
WARN[0000] /data/emlog/emlog/docker-compose.yml: `version` is obsolete
NAME            IMAGE                    COMMAND                  SERVICE   CREATED              STATUS              PORTS
emlog-redis-1   redis                    "docker-entrypoint.s…"   redis     About a minute ago   Up About a minute   6379/tcp
mysql           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/tcp
nginx           nginx:alpine             "/docker-entrypoint.…"   nginx     About a minute ago   Up About a minute   80/tcp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp
php             emlog/emlog:pro-php8.1   "docker-php-entrypoi…"   php       About a minute ago   Up About a minute   9000/tcp

在这里插入图片描述

七、访问前准备工作

7.1 关闭防火墙

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

systemctl stop firewalld

如果想要开启防火墙,则需要在防火墙上放行cockpit服务。

sudo firewall-cmd --permanent --zone=public --add-service=cockpit
sudo firewall-cmd --reload
  • 关闭selinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

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

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

在这里插入图片描述

八、emlog的初始化安装

8.1 访问emlog初始页

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

在这里插入图片描述

8.2 设置管理员账号

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

在这里插入图片描述

8.3 删除install.php文件

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

在这里插入图片描述

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

[root@flexusx-51a1 emlog]# ls
admin              config.php         content  docker-compose.yml  import.sql  index.php  install.php  nginx.conf  robots.txt
auto_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实例的超值优惠,感受技术与创新的完美融合;从高性能计算到智能监控,每一个细节都彰显出华为云对品质的坚持与追求;加入华为云大家庭,不仅是一次技术升级,更是向未来迈出的坚实一步;让我们携手并进,共创云端新辉煌!


在这里插入图片描述

  • 13
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江湖有缘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值