828华为云征文|华为云Flexus云服务器X实例之openEuler系统下部署emlog轻量级博客平台
前言
随着云计算技术的不断进步,
华为云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实例针对不同的使用场景展现出其独特的优势:
-
电商直播:利用X实例搭建电商交易平台,可以有效应对电商市场的瞬息万变,从容处理业务压力波动,确保交易过程顺畅无阻。
-
企业建站:面向博客、论坛和企业门户等应用场景,X实例帮助企业高效传播价值信息,促进信息共享与交流,支持构建多功能传播和交互平台。
-
个人开发测试:开发者在开发和测试过程中所需的环境资源可以通过X实例便捷获取,不仅提高了搭建效率,而且降低了成本。
-
游戏服务器:适用于搭建游戏后台服务器,强大的计算能力可以轻松应对大量玩家同时在线的情况,同时支持平滑扩容,快速应对玩家数量增长的需求,以及提供出色的网络加速能力以提升用户体验。
二、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实例 | openEuler | 192.168.0.169 | 26.1.3 | openEuler 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/MariaDB | MYSQL_ROOT_PASSWORD | MySQL 根用户的密码 | 12345678 |
MySQL/MariaDB | MYSQL_DATABASE | 创建的数据库名称 | emlog |
MySQL/MariaDB | MYSQL_USER | 创建的数据库用户名 | emlog |
MySQL/MariaDB | MYSQL_PASSWORD | 创建的数据库用户密码 | emlog |
MariaDB | MARIADB_ROOT_PASSWORD | MariaDB 根用户的密码 | 12345678 |
MariaDB | MARIADB_DATABASE | 创建的数据库名称 | emlog |
MariaDB | MARIADB_USER | 创建的数据库用户名 | emlog |
MariaDB | MARIADB_PASSWORD | 创建的数据库用户密码 | emlog |
PHP | EMLOG_ENV | 设置 Emlog 的环境模式 | develop |
PHP | EMLOG_DB_HOST | 数据库服务器的主机名或 IP 地址 | db |
PHP | EMLOG_DB_USER | 数据库用户名 | emlog |
PHP | EMLOG_DB_NAME | 数据库名称 | emlog |
PHP | EMLOG_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实例的超值优惠,感受技术与创新的完美融合;从高性能计算到智能监控,每一个细节都彰显出华为云对品质的坚持与追求;加入华为云大家庭,不仅是一次技术升级,更是向未来迈出的坚实一步;让我们携手并进,共创云端新辉煌!