使用ECS搭建WordPress博客平台【开发者专属集市】

举报
金鱼哥 发表于 2022/11/30 23:39:07 2022/11/30
【摘要】 个人开发者的专属集市AppBazaar上线了!AppBazaar是华为云的云服务,现有16个项目,含括了工作中常用的服务架构,可供相关技术人员在这里选择想要去学习和了解的项目,很方便、很直接。本文讲解如何从AppBazaar里选择感兴趣的项目并在ECS搭建WordPress博客平台。

一、AppBazaar官网

首先,我们来到AppBazaar的官网:https://console.huaweicloud.com/appbazaar/home

image-20221120110457554.png

AppBazaar现有16个项目,含括了工作中常用的服务架构。我们可在这里选择自己感兴趣的项目或者想要了解的项目来进行玩耍,正如官方的宣言:一键部署,构建应用无负担

那究竟要如何玩耍呢?


二、选择与购买项目

首先登录平台,如果没有华为云账号,得先注册账号,实名认证后再继续。

然后点选所需的项目进入购买页面。

image-20221129114121950.png

然后点击 立即购买(PS:现在可是免费呢,而且还是终身的,快去体验啦😘)

image-20221129120656853.png

点选 用户协议 就可以 提交订单

image-20221129120908061.png

image-20221129120955667.png

image-20221129121016322.png

购买成功后,可以前往买家中心,在此处可查看到所购买的项目,然后就可以去下载对应的文档来进行参考与学习了。

image-20221129121158647.png

所下载的文档如下图所示,包含了这个项目的上云指导和操作指导。

image-20221129121235359.png

接下来,就可以去尝试和体验了,心动不如行动!那就让金鱼哥继续来做先锋队。


三、项目概况

项目名称:WordPress

官网地址:https://wordpress.org

项目简介:WordPress是一款个人博客系统,也可以把 WordPress当作一个内容管理系统(CMS)来使用,它是使用php语言和MySQL数据库开发的,用户可以在支持 php 和 MySQL数据库的服务器上使用自己的博客。

开发语言:php

应用运行环境:CentOS、Nginx、php、MySQL

涉及云服务:弹性云服务器 ECS或者云耀云服务器HECS


四、购买云服务

WordPress 博客平台需要部署到服务器上,所以需要购买一台 ECS 再将服务部署上去 。

1. 购买ECS

华为云官网 按照产品计算弹性云服务器ECS路径,进入弹性云服务器 ECS主页面。

image-20221129122409951.png

点击立即购买按钮 ,进入选购 ECS 详细配置 页面 。

image-20221129123924015.png

基础配置 步骤,按如下配置:
计费模式:按需计费
区域:华南-广州(与DevCloud项目所在区域保持一致)
可用区:随机分配
CPU架构:x86计算
规格:S6.small.1(可通过1vCPU,1GB进行搜索过滤,实际项目根据实际情况选择)
镜像:公共镜像CentOS 7.9 64bit(40GB)
系统盘:高I/O

image-20221120213649476.png

image-20221120213804844.png

点击下一步:网络配置按钮

在网络配置页按如下配置对应参数:
网络:vpc-default/subnet-default
安全组:自定义(如果安全组入向规则里没有TCP: 22和TCP:80端口,需要点击新建安全组按钮,
进入对应安全组,配置入方向规则TCP: 22和TCP:80端口)

image-20221120220345219.png

创建一个新的安全组或者可使用在用的安全组。

image-20221120221042302.png

image-20221129174126401.png

弹性公网IP:现在购买
线路:全动态BGP
公网带宽:按带宽计费
带宽大小:1
释放行为:随实例释放
点击下一步:高级配置按钮

image-20221120221334267.png

在高级配置页,按如下进行配置
云服务器名称:默认/自定义
登录凭证:密码
密码:自定义(请牢记,后续部署使用)
其他默认,点击下一步:确认配置按钮
image-20221120221617938.png

确认配置页,会显示之前步骤配置的ECS参数,购买数量:1,勾选我已阅读并同意《镜像免责声 明》,点击立即购买按钮,完成ECS创建。

image-20221120221745768.png

在ECS列表页,可以看到新创建的ECS。

image-20221120232043408.png

image-20221120232128206.png


1.1 重置ECS

如果需要长期进行实验和测试,还是购买一台长期的机器来做实验,金鱼哥这边在双十一活动的时候购买了一台HECS的机器,用于后续的测试。因此后续的各种实验和测试都使用这台HECS。

image-20221121214150253.png

而此前已经进行过实验,因此需要重装系统。点选更多重装系统

image-20221129125920154.png

勾选立即关机,输入系统密码后,点击确定

image-20221129130443484.png

勾选同意协议并点击确定。

image-20221129130555707.png

状态显示正在重装系统。

image-20221129130721193.png

当状态显示运行中的时候,就可以进行后面的步骤。

image-20221129130858833.png


五、搭建应用运行环境

WordPress博客系统需要PHP7.4和MySQL 5.7或者MariaDB 10.3以上的版本来进行运行, 因此本次操作演示决定采用经典架构环境LNMP,L代表Linux,N代表Nginx,M代表MySQL或者MariaDB,P代表PHP。

image-20221129153616663.png

从官方建议网页中可知,虽然还是可以安装低一点版本的PHP和数据库版本,但官方提示担心各种漏洞而受到威胁,因此还是按着官方建议,安装所要求的版本。此处在参考文档中就不完美了,参考文档是安装PHP7.2的版本,金鱼哥在后续的操作安装肯定会安装7.4的版本来做演示。

image-20221129220645536.png

WordPress搭建好后,可通过EIP进行访问,整体的应用拓扑如下图所示:

appBazaar


1 安装Nginx

1.1 添加源并安装

没有特别需求的情况下,可使用yum进行安装,但由于EPEL源(ECS默认配置好)中的版本是1.20,如果想安装更多历史版本或者最新版本,就需要添加nginx的官方源,官网源配置可参考官网地址:https://nginx.org/en/linux_packages.html

image-20221129170509715.png

# 参考官网进行源文件编辑。
[root@hecs-test ~]# vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

# 查看配置好的yum源情况。
[root@hecs-test ~]# yum repolist 
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id                    repo name                                            status
base/7/x86_64              CentOS-7 - Base                                      10,072
epel/x86_64                Extra Packages for Enterprise Linux 7 - x86_64       13,746
extras/7/x86_64            CentOS-7 - Extras                                       515
nginx-stable/7/x86_64      nginx stable repo                                       298
updates/7/x86_64           CentOS-7 - Updates                                    4,385
repolist: 29,016

可使用命令 yum --showduplicates list nginx查看源中nginx的版本,

image-20221129171905931.png

执行一下命令进行安装:

yum -y install nginx

image-20221129172352577.png

出现Complete表示 Nginx 安装完成。

image-20221129172526867.png


1.2 启动并测试

使用一下命令进行启动并设置开机自启动:

[root@hecs-test ~]# systemctl start nginx
[root@hecs-test ~]# systemctl enable nginx

使用浏览器访问http://弹性IP地址,若Nginx 安装成功,则会显示如下页面:

image-20221129174245729.png


2. 安装MySQL

2.1 下载并安装

参考文档是添加官方安装源,然后直接安装 mysql-community-server,金鱼哥这里显示另外一种安装方式,因为用官方安装源需要访问国外的网站来进行下载,速度通常都很慢,很感人,因此可以使用国内镜像源来进行下载安装。例如直接去华为的MySQL镜像源进行下载,MySQL5.7版本的地址为:https://repo.huaweicloud.com/mysql/Downloads/MySQL-5.7/

image-20221129205426812.png

因此可以在ECS上直接wget所需要的包,源里最新版本为5.7.38,那此次演示就安装此版本。分别下载以下软件包:

wget https://repo.huaweicloud.com/mysql/Downloads/MySQL-5.7/mysql-community-common-5.7.38-1.el7.x86_64.rpm
wget https://repo.huaweicloud.com/mysql/Downloads/MySQL-5.7/mysql-community-libs-5.7.38-1.el7.x86_64.rpm
wget https://repo.huaweicloud.com/mysql/Downloads/MySQL-5.7/mysql-community-libs-compat-5.7.38-1.el7.x86_64.rpm
wget https://repo.huaweicloud.com/mysql/Downloads/MySQL-5.7/mysql-community-client-5.7.38-1.el7.x86_64.rpm
wget https://repo.huaweicloud.com/mysql/Downloads/MySQL-5.7/mysql-community-server-5.7.38-1.el7.x86_64.rpm

image-20221129210549342.png

在安装前,先查找是否安装过相关的mysql和mariadb的包,有的话,进行卸载。

[root@hecs-test ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
[root@hecs-test ~]# rpm -qa | grep mysql
[root@hecs-test ~]# yum -y remove mariadb-libs

image-20221129211133684.png

之后按着以下顺序进行安装:

rpm -ivh mysql-community-common-5.7.38-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.38-1.el7.x86_64.rpm 
rpm -ivh mysql-community-libs-compat-5.7.38-1.el7.x86_64.rpm 
rpm -ivh mysql-community-client-5.7.38-1.el7.x86_64.rpm 
rpm -ivh mysql-community-server-5.7.38-1.el7.x86_64.rpm

image-20221129211749193.png

期间出现库的依赖,把对应的库安装上,再进行安装。

[root@hecs-test ~]# yum -y install libaio
[root@hecs-test ~]# rpm -ivh mysql-community-server-5.7.38-1.el7.x86_64.rpm

image-20221129212328652.png


2.2 启动并设置密码

# 启动mysql会生成临时密码(注意,别一上来就使用enable,因为很多时候会出现错误导致启动不了)。
[root@hecs-test ~]# systemctl start mysqld 

# 第一次可通过 grep "password" /var/log/mysqld.log 命令获取MySQL的临时密码。
[root@hecs-test ~]# grep "password" /var/log/mysqld.log
2022-11-29T13:39:03.473362Z 1 [Note] A temporary password is generated for root@localhost: lkBtLG!Fw4yo

image-20221129214212930.png

用该密码登录到服务端后,必须马上修改密码,不然操作查询时会报错。

刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。

[root@hecs-test ~]# mysql -uroot -p'lkBtLG!Fw4yo'

mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
mysql> set password for 'root'@'localhost'=password('huawei@123');
mysql> flush privileges;
mysql> quit

image-20221129214533166.png

尝试用新修改的密码进行登录。

image-20221129214803574.png

设置开机自启动。

[root@hecs-test ~]# systemctl enable mysqld

image-20221129214928506.png


3. 安装PHP

3.1 添加源并安装

因没特别的需求,所以此处不演示源码编译安装的方式,而使用yum来进行安装。
而系统所带的源没有PHP高版本,因此需要其他可信源来进行安装,可使用remi源来进行。

[root@hecs-test ~]# yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
[root@hecs-test ~]# yum repolist

image-20221129223403202.png

可使用命令yum --showduplicate --enablerepo=remi --enablerepo=remi-php74 list php来查看源中包含PHP各版本相关的软件包。

image-20221130143829096.png

执行以下命令安装 PHP7.4 和一些所需的 PHP 扩展:

yum -y install --enablerepo=remi --enablerepo=remi-php74 php php-tidy php-common php-devel php-pdo php-mysql* php-gd php-ldap php-mbstring php-mcrypt php-fpm

注意:可能会出现由于网络超时而导致中途未能安装的包,等执行完之后,再执行多一次安装命令即可安装上。

安装完成后,若再次执行命令会出现如下的提示:

image-20221130141602461.png


3.2 启动php-fpm服务

[root@hecs-test ~]# php -v
PHP 7.4.33 (cli) (built: Oct 31 2022 10:36:05) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
[root@hecs-test ~]# 
[root@hecs-test ~]# systemctl start php-fpm
[root@hecs-test ~]# systemctl enable php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
[root@hecs-test ~]# 
[root@hecs-test ~]# netstat -lntup | grep 9000
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      25388/php-fpm: mast 

image-20221130141727142.png


4. 启用PHP支持

4.1 编辑配置文件

修改nginx配置文件,配置启用PHP支持。如果担心修改配置文件出错,可备份一下默认的配置文件。

[root@hecs-test ~]# cp -a /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak
[root@hecs-test ~]# vim /etc/nginx/conf.d/default.conf 
server {
    listen       80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm index.php;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
        root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
        include        fastcgi_params;
    }
}

4.2 测试LNMP的PHP支持

编辑PHP测试页面。

[root@hecs-test ~]# echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/index.php

编辑了页面后,需要重载服务。

[root@hecs-test ~]# systemctl reload nginx

使用浏览器访问http://弹性IP地址/index.php,显示如下图页面,说明PHP安装成功。

image-20221130145232113.png


5. 数据库设置

创建WordPress所用的数据库wordpress和对应的用户wordpressuser,并使用密码huawei@123

[root@hecs-test ~]# mysql -uroot -p
Enter password: 

mysql> create database wordpress;
Query OK, 1 row affected (0.01 sec)

mysql> grant all privileges on wordpress.* to wordpressuser@'localhost' identified by 'huawei@123' with grant option;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

image-20221130171451520.png

测试所创建用户能否登录:

[root@hecs-test ~]# mysql -uwordpressuser -p
Enter password: 

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| wordpress          |
+--------------------+
2 rows in set (0.00 sec)

image-20221130172120831.png

至此,WordPress所需要的运行环境已经搭建完毕,接下来可以进行WordPress博客系统安装。


六、安装并配置WordPress

1. 下载并上传软件包

1.1 下载英文版本并上传

打开WordPress官网的下载页面:https://wordpress.org/download/releases/ ,下载 tag.gz 格式的
软件包至本地。

image-20221129150128842.png

将下载的WordPress软件包从本地上传至 ECS 中,若有小伙伴不知道如何操作,可参考以下文章:本地Windows 主机使用 WinSCP 上传文件到 Linux 云服务器

金鱼哥习惯使用Xftp和FileZilla来进行文件上传,其实方法有很多,使用自己最习惯的就好。

image-20221129152136621.png


1.2 下载中文版本并上传

对于我们的习惯,肯定想使用中文版,所以也可从官网中文网站进行下载,下载地址:https://cn.wordpress.org/download/

image-20221130161506602.png

之后就可以直接上传到主机中,此处我们也可以使用wget命令来进行下载(现时官网路径没变,因此url可用,若变了,就需要更为为正确的):

wget https://cn.wordpress.org/latest-zh_CN.tar.gz -O wordpress-6.1.1-zh_CN.tar.gz

image-20221130163046283.png


2. 解压软件包

tar -xzf wordpress-6.1.1-zh_CN.tar.gz

image-20221130212333748.png


3. 移动目录并设置权限

将解压出来的项目目录移动至nginx页面目录下,并设置目录权限。

[root@hecs-test ~]# mv wordpress /usr/share/nginx/html/
[root@hecs-test ~]# chown -R apache:apache /usr/share/nginx/html/wordpress/

image-20221130215105292.png

有小伙伴可能会问,为什么是设置apache用户和组的权限呢?

因为php-fpm启动的用户和组默认是apache,这个在配置文件中和运行的进程中可查出。

image-20221130220102312.png

如果不设置对应的权限,当后面更换主题和插件会有提示:WordPress需要访问你网页服务器的权限。

image-20221130220501389.png


4. 配置WordPress配置文件

4.1 复制模板文件

进入 WordPress 项目目录,将wp-config-sample.php文件复制名为wp-config.php的文件用作配置文件,并保留示例配置文件以作备份。

cd /usr/share/nginx/html/wordpress
cp wp-config-sample.php wp-config.php

4.2 编辑WordPress的配置文件

编辑配置文件,把DB_NAME(数据库名称)、DB_USER(数据库用户名)、DB_PASSWORD(数据库密码)更改为之前所配置的设置。

vim wp-config.php
// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );

/** Database username */
define( 'DB_USER', 'wordpressuser' );

/** Database password */
define( 'DB_PASSWORD', 'huawei@123' );

/** Database hostname */
define( 'DB_HOST', 'localhost' );

/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );

/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );

5. 安装WordPress

在浏览器地址栏输入http://弹性IP地址/wordpress 即可跳转至安装页面:

image-20221130222052788.png

填写对应的表单信息后,即可点击安装WordPress

image-20221130222910749.png

若WordPress安装完成,会如下图所示:

image-20221130223013574.png


6. 登录管理后台

在完成安装界面输入密码选择登录,或者在浏览器输入http://弹性IP地址/wordpress/wp-admin进入后台登录界面并输入账号和密码即可登录管理后台。

image-20221130223607224.png

登录管理台,可在页面见到网站仪表盘

image-20221130223722239.png


7. 查看主页

点击查看站点或者在浏览器输入http://弹性IP地址/wordpress 即可查看主页。

image-20221130224835080.png

image-20221130225203342.png


8. 插件安装

可以在管理界面选择想要的主题和插件,可使用在线安装的方式进行安装,也可以在线更新各种插件(PS:前提是设置好此前所说的访问权限,不然会弹出授权界面)。

image-20221130224110402.png

安装完成后,点击启用即可使用,并可在已安装插件中查看:

image-20221130224210127.png


至此,已完成整个WordPress项目的部署。


七、资源释放

如果使用的ECS是按需计费,不再使用的时候,避免持续计费,需要进行资源释放操作。(此操作步骤是按需计费的小伙伴才需要进行操作,避免产生不必要的费用。金鱼哥是购买了一年的HECS,因此不必操作。)
回到ECS列表页,按下图进行ECS资源释放。

image-20221120232318846.png

image-20221120232359700.png

删除资源需要使用注册的邮箱/手机等方式进行身份验证,按引导操作即可。


八、总结

203682-20220608192856481-303091862.png

此次整个项目的部署,金鱼哥并没有按着从AppBazaar所下载的指导文档步骤来进行,而是用自己的方式进行安装部署,为什么呢?因为文档中有些地方不完美和不合理,例如在安装PHP版本中,webtatic源并没有7.4的版本,而WordPress6.0或以上的版本,官方已经明确建议使用PHP7.4或以上的版本,那为什么还安装低版本呢?其次,在权限设置那里,指导文档竟然使用了777的权限设置,在生产环境中,这是最忌讳的设置,这么能随意给777的权限呢?

因此,金鱼哥决定重新部署一遍,演示一遍,希望金鱼哥的分享能帮助到大家。这也是金鱼哥写下这篇文章的原因之一。

从这项目的部署使用中,使用了众多操作系统的基础,也安装了众多服务,还搭建了经典架构LNMP,之后还在此架构上搭建对应的应用。这些都是必须要掌握的工作技能,希望看到此文章的小伙伴都能掌握,都有所获。


【购物节已开启,个人开发者的专属集市AppBazaar来啦(所有商品购物节期间免费体验)】有奖征文火热进行中:https://bbs.huaweicloud.com/blogs/381337
此外,在(https://bbs.huaweicloud.com/activity/suggestion.html)提出您的宝贵建议,标题以【云驻计划-定向征文】开头,还有机会赢取额外奖励。

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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