【玩转云耀云服务器HECS】使用HECS搭建WordPress博客平台

举报
金鱼哥 发表于 2023/03/11 07:01:58 2023/03/11
【摘要】 云耀云服务器(Hyper Elastic Cloud Server,HECS)是可以快速搭建简单应用的新一代云服务器,具备独立、完整的操作系统和网络功能,适用于网站搭建、开发环境等低负载应用场景。本文讲解如何使用HECS搭建WordPress博客平台。

一、购买云服务

WordPress 博客平台需要部署到服务器上,所以需要购买一台ECS,再将服务部署上去。例如我们可以去主页购买HECS或者去领取产品试用名额来进行搭建。


1. 购买HECS

华为云官网 按照产品计算云耀云服务器 HECS 路径,即可进入云耀云服务器 HECS主页面。

image-20230310151453749.png

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

image-20230310152555376.png

之后就可以根据具体需求进行选择购买。

image-20230310153138105.png

具体指引和操作可参考官方产品文档:https://support.huaweicloud.com/hecs/index.html

image-20230310153347884.png


2. 产品试用

这段时间在官方开发者试用专区就有HECS的产品试用,感兴趣的小伙伴也可以到产品试用专区进行体验。具体操作如下:

点击此处进入页面后点击“前往开发者试用专区”。

image-20230310152014383.png

②点击热门推荐,选择HECS免费试用。不过由于产品试用火爆,需要尽快领取,若错过时间,需要到下一天的9:30后进行领取,领完即止。

image-20230310151927162.png

③进行产品体验后即可体验产品的试用。


二、项目实战概况

项目名称:WordPress

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

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

开发语言:PHP

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

涉及云服务:云耀云服务器HECS

金鱼哥在去年双十一活动时已经购买了HECS云耀云服务器,因此本文直接在此前购买的HECS上进行实战。


三、搭建LNMP应用运行环境

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

image-20221129153616663.png

从官方建议网页中可知,虽然还是可以安装低一点版本的PHP和数据库版本,但官方提示担心各种漏洞而受到威胁,因此肯定按着官方建议,安装所要求的版本。

image-20221129220645536.png

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

appBazaar


1. 安装Nginx

1.1 配置yum源

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

image-20221129170509715.png

# 参考官网进行源文件编辑。
[root@goldfish ~]# 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@goldfish ~]# 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-20230310173409668.png

执行一下命令进行安装:

yum -y install nginx

image-20230310173517068.png

出现Complete表示 Nginx 安装完成。

image-20230310173549915.png


1.2 启动并进行测试

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

[root@goldfish ~]# systemctl start nginx
[root@goldfish ~]# 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

因此可以在HECS上直接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-20230310175339365.png

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

image-20230310175421971.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-20230310175711435.png

期间若出现库的依赖提示,则需要把对应的库安装上,再进行安装。

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

image-20230310183458965.png


2.2 启动并设置密码

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

# 第一次可通过 grep "password" /var/log/mysqld.log 命令获取MySQL的临时密码。
[root@goldfish ~]# grep "password" /var/log/mysqld.log
2023-03-10T10:37:03.980267Z 1 [Note] A temporary password is generated for root@localhost: dilL<AVtC6g8

image-20230310183732147.png

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

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

[root@goldfish ~]# mysql -uroot -p'dilL<AVtC6g8'

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-20230310184730239.png

设置开机自启动。

[root@goldfish ~]# systemctl enable mysqld

image-20230310184859227.png


3. 安装PHP

3.1 添加源并安装

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

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

image-20230310185303313.png

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

image-20230310190219481.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-20230310190410350.png

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

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

image-20230310190650745.png


3.2 启动php-fpm服务

[root@goldfish ~]# php -v
PHP 7.4.33 (cli) (built: Feb 14 2023 09:31:03) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
[root@goldfish ~]# 
[root@goldfish ~]# systemctl start php-fpm
[root@goldfish ~]# 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@goldfish ~]# 
[root@goldfish ~]# netstat -lntup | grep 9000
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      18871/php-fpm: mast

image-20230310190835206.png


4. 启用PHP支持

4.1 编辑配置文件

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

[root@goldfish ~]# cp -a /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak
[root@goldfish ~]# 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@goldfish ~]# echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/index.php

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

[root@goldfish ~]# systemctl reload nginx

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

image-20230310205640956.png


5. 数据库设置

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

# 使用此前设置的密码“huawei@123”进行登录。
[root@goldfish ~]# mysql -uroot -p
Enter password: 

mysql> create database wordpress;
mysql> grant all privileges on wordpress.* to wordpressuser@'localhost' identified by 'huawei@123' with grant option;
mysql> flush privileges;
mysql> quit

image-20230310210309053.png

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

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

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

image-20230310210536918.png

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


四、安装并配置WordPress

1. 下载并上传软件包

1.1 下载英文版本并上传

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

image-20221129150128842.png

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

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

image-20230310172619004.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-20230310172814980.png


2. 解压软件包

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

image-20230310210821429.png


3. 移动目录并设置权限

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

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

image-20230310210939438.png

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

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

image-20230310211023143.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', '' );
# 可罗列配置文件的配置选项进行查看。
[root@goldfish wordpress]# grep -n "^[a-Z]" wp-config.php 
23:define( 'DB_NAME', 'wordpress' );
26:define( 'DB_USER', 'wordpressuser' );
29:define( 'DB_PASSWORD', 'huawei@123' );
32:define( 'DB_HOST', 'localhost' );
35:define( 'DB_CHARSET', 'utf8' );
38:define( 'DB_COLLATE', '' );
51:define( 'AUTH_KEY',         'put your unique phrase here' );
52:define( 'SECURE_AUTH_KEY',  'put your unique phrase here' );
53:define( 'LOGGED_IN_KEY',    'put your unique phrase here' );
54:define( 'NONCE_KEY',        'put your unique phrase here' );
55:define( 'AUTH_SALT',        'put your unique phrase here' );
56:define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
57:define( 'LOGGED_IN_SALT',   'put your unique phrase here' );
58:define( 'NONCE_SALT',       'put your unique phrase here' );
82:define( 'WP_DEBUG', false );
91:if ( ! defined( 'ABSPATH' ) ) {
96:require_once ABSPATH . 'wp-settings.php';

image-20230310231902283.png


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-20230310215750523.png


8. 插件安装

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

image-20221130224110402.png

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

image-20221130224210127.png


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


五、总结

image-20230310230152426.png

网上众多搭建WordPress的文章中有些地方不完美和不合理,例如在安装PHP版本中,webtatic源并没有7.4的版本,而WordPress6.0或以上的版本,官方已经明确建议使用PHP7.4或以上的版本,那为什么还安装低版本呢?其次,在权限设置那里,有些文章竟然使用了777的权限设置,在生产环境中,这是最忌讳的设置,怎么能随意给777的权限呢?

因此,金鱼哥决定使用华为云的HECS服务器进行实战。希望金鱼哥的分享能帮助到大家,这也是金鱼哥写下这篇文章的原因之一。

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


【玩转“云耀云服务器(HECS)”有奖征文来袭!惊喜大礼包激励等你来拿!】有奖征文第20期正在火热进行中:
https://bbs.huaweicloud.com/blogs/391930

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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