首先,我们来到AppBazaar的官网:https://console.huaweicloud.com/appbazaar/home
AppBazaar现有16个项目,含括了工作中常用的服务架构。我们可在这里选择自己感兴趣的项目或者想要了解的项目来进行玩耍,正如官方的宣言:一键部署,构建应用无负担。
那究竟要如何玩耍呢?
首先登录平台,如果没有华为云账号,得先注册账号,实名认证后再继续。
然后点选所需的项目进入购买页面。
然后点击 立即购买
(PS:现在可是免费呢,而且还是终身的,快去体验啦)
点选 用户协议
就可以 提交订单
。
购买成功后,可以前往买家中心
,在此处可查看到所购买的项目,然后就可以去下载对应的文档来进行参考与学习了。
所下载的文档如下图所示,包含了这个项目的上云指导和操作指导。
接下来,就可以去尝试和体验了,心动不如行动!那就让金鱼哥继续来做先锋队。
项目名称:WordPress
官网地址:https://wordpress.org
项目简介:WordPress是一款个人博客系统,也可以把 WordPress当作一个内容管理系统(CMS)来使用,它是使用php语言和MySQL数据库开发的,用户可以在支持 php 和 MySQL数据库的服务器上使用自己的博客。
开发语言:php
应用运行环境:CentOS、Nginx、php、MySQL
涉及云服务:弹性云服务器 ECS或者云耀云服务器HECS
WordPress 博客平台需要部署到服务器上,所以需要购买一台 ECS 再将服务部署上去 。
在华为云官网
按照产品
→计算
→弹性云服务器ECS
路径,进入弹性云服务器 ECS
主页面。
点击立即购买
按钮 ,进入选购 ECS 详细配置 页面 。
在 基础配置
步骤,按如下配置:
计费模式:按需计费
区域:华南-广州(与DevCloud项目所在区域保持一致)
可用区:随机分配
CPU架构:x86计算
规格:S6.small.1(可通过1vCPU,1GB进行搜索过滤,实际项目根据实际情况选择)
镜像:公共镜像CentOS 7.9 64bit(40GB)
系统盘:高I/O
点击下一步:网络配置
按钮
在网络配置页按如下配置对应参数:
网络:vpc-default/subnet-default
安全组:自定义(如果安全组入向规则里没有TCP: 22和TCP:80端口,需要点击新建安全组
按钮,
进入对应安全组,配置入方向规则TCP: 22和TCP:80端口)
创建一个新的安全组或者可使用在用的安全组。
弹性公网IP:现在购买
线路:全动态BGP
公网带宽:按带宽计费
带宽大小:1
释放行为:随实例释放
点击下一步:高级配置
按钮
在高级配置页,按如下进行配置
云服务器名称:默认/自定义
登录凭证:密码
密码:自定义(请牢记,后续部署使用)
其他默认,点击下一步:确认配置
按钮
在确认配置
页,会显示之前步骤配置的ECS参数,购买数量:1,勾选我已阅读并同意《镜像免责声 明》
,点击立即购买
按钮,完成ECS创建。
在ECS列表页,可以看到新创建的ECS。
如果需要长期进行实验和测试,还是购买一台长期的机器来做实验,金鱼哥这边在双十一活动的时候购买了一台HECS的机器,用于后续的测试。因此后续的各种实验和测试都使用这台HECS。
而此前已经进行过实验,因此需要重装系统。点选更多
→重装系统
。
勾选立即关机,输入系统密码后,点击确定
勾选同意协议并点击确定。
状态显示正在重装系统。
当状态显示运行中的时候,就可以进行后面的步骤。
WordPress博客系统需要PHP7.4和MySQL 5.7或者MariaDB 10.3以上的版本来进行运行, 因此本次操作演示决定采用经典架构环境LNMP,L代表Linux,N代表Nginx,M代表MySQL或者MariaDB,P代表PHP。
从官方建议网页中可知,虽然还是可以安装低一点版本的PHP和数据库版本,但官方提示担心各种漏洞而受到威胁,因此还是按着官方建议,安装所要求的版本。此处在参考文档中就不完美了,参考文档是安装PHP7.2的版本,金鱼哥在后续的操作安装肯定会安装7.4的版本来做演示。
WordPress搭建好后,可通过EIP进行访问,整体的应用拓扑如下图所示:
没有特别需求的情况下,可使用yum进行安装,但由于EPEL源(ECS默认配置好)中的版本是1.20,如果想安装更多历史版本或者最新版本,就需要添加nginx的官方源,官网源配置可参考官网地址:https://nginx.org/en/linux_packages.html。
# 参考官网进行源文件编辑。
[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的版本,
执行一下命令进行安装:
yum -y install nginx
出现Complete
表示 Nginx 安装完成。
使用一下命令进行启动并设置开机自启动:
[root@hecs-test ~]# systemctl start nginx
[root@hecs-test ~]# systemctl enable nginx
使用浏览器访问http://弹性IP地址
,若Nginx 安装成功,则会显示如下页面:
参考文档是添加官方安装源,然后直接安装 mysql-community-server
,金鱼哥这里显示另外一种安装方式,因为用官方安装源需要访问国外的网站来进行下载,速度通常都很慢,很感人,因此可以使用国内镜像源来进行下载安装。例如直接去华为的MySQL镜像源进行下载,MySQL5.7版本的地址为:https://repo.huaweicloud.com/mysql/Downloads/MySQL-5.7/
因此可以在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
在安装前,先查找是否安装过相关的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
之后按着以下顺序进行安装:
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
期间出现库的依赖,把对应的库安装上,再进行安装。
[root@hecs-test ~]# yum -y install libaio
[root@hecs-test ~]# rpm -ivh mysql-community-server-5.7.38-1.el7.x86_64.rpm
# 启动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
用该密码登录到服务端后,必须马上修改密码,不然操作查询时会报错。
刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
[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
尝试用新修改的密码进行登录。
设置开机自启动。
[root@hecs-test ~]# systemctl enable mysqld
因没特别的需求,所以此处不演示源码编译安装的方式,而使用yum来进行安装。
而系统所带的源没有PHP高版本,因此需要其他可信源来进行安装,可使用remi源来进行。
[root@hecs-test ~]# yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
[root@hecs-test ~]# yum repolist
可使用命令yum --showduplicate --enablerepo=remi --enablerepo=remi-php74 list php
来查看源中包含PHP各版本相关的软件包。
执行以下命令安装 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
注意:可能会出现由于网络超时而导致中途未能安装的包,等执行完之后,再执行多一次安装命令即可安装上。
安装完成后,若再次执行命令会出现如下的提示:
[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
修改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;
}
}
编辑PHP测试页面。
[root@hecs-test ~]# echo "" > /usr/share/nginx/html/index.php
编辑了页面后,需要重载服务。
[root@hecs-test ~]# systemctl reload nginx
使用浏览器访问http://弹性IP地址/index.php
,显示如下图页面,说明PHP安装成功。
创建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)
测试所创建用户能否登录:
[root@hecs-test ~]# mysql -uwordpressuser -p
Enter password:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| wordpress |
+--------------------+
2 rows in set (0.00 sec)
至此,WordPress所需要的运行环境已经搭建完毕,接下来可以进行WordPress博客系统安装。
打开WordPress官网的下载页面:https://wordpress.org/download/releases/ ,下载 tag.gz 格式的
软件包至本地。
将下载的WordPress软件包从本地上传至 ECS 中,若有小伙伴不知道如何操作,可参考以下文章:本地Windows 主机使用 WinSCP 上传文件到 Linux 云服务器。
金鱼哥习惯使用Xftp和FileZilla来进行文件上传,其实方法有很多,使用自己最习惯的就好。
对于我们的习惯,肯定想使用中文版,所以也可从官网中文网站进行下载,下载地址:https://cn.wordpress.org/download/
之后就可以直接上传到主机中,此处我们也可以使用wget命令来进行下载(现时官网路径没变,因此url可用,若变了,就需要更为为正确的):
wget https://cn.wordpress.org/latest-zh_CN.tar.gz -O wordpress-6.1.1-zh_CN.tar.gz
tar -xzf wordpress-6.1.1-zh_CN.tar.gz
将解压出来的项目目录移动至nginx页面目录下,并设置目录权限。
[root@hecs-test ~]# mv wordpress /usr/share/nginx/html/
[root@hecs-test ~]# chown -R apache:apache /usr/share/nginx/html/wordpress/
有小伙伴可能会问,为什么是设置apache用户和组的权限呢?
因为php-fpm启动的用户和组默认是apache,这个在配置文件中和运行的进程中可查出。
如果不设置对应的权限,当后面更换主题和插件会有提示:WordPress需要访问你网页服务器的权限。
进入 WordPress 项目目录,将wp-config-sample.php
文件复制名为wp-config.php
的文件用作配置文件,并保留示例配置文件以作备份。
cd /usr/share/nginx/html/wordpress
cp wp-config-sample.php wp-config.php
编辑配置文件,把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', '' );
在浏览器地址栏输入http://弹性IP地址/wordpress
即可跳转至安装页面:
填写对应的表单信息后,即可点击安装WordPress
。
若WordPress安装完成,会如下图所示:
在完成安装界面输入密码选择登录
,或者在浏览器输入http://弹性IP地址/wordpress/wp-admin
进入后台登录界面并输入账号和密码即可登录管理后台。
登录管理台,可在页面见到网站仪表盘
:
点击查看站点
或者在浏览器输入http://弹性IP地址/wordpress
即可查看主页。
可以在管理界面选择想要的主题和插件,可使用在线安装的方式进行安装,也可以在线更新各种插件(PS:前提是设置好此前所说的访问权限,不然会弹出授权界面)。
安装完成后,点击启用
即可使用,并可在已安装插件中查看:
至此,已完成整个WordPress项目的部署。
如果使用的ECS是按需计费,不再使用的时候,避免持续计费,需要进行资源释放操作。(此操作步骤是按需计费的小伙伴才需要进行操作,避免产生不必要的费用。金鱼哥是购买了一年的HECS,因此不必操作。)
回到ECS列表页,按下图进行ECS资源释放。
删除资源需要使用注册的邮箱/手机等方式进行身份验证,按引导操作即可。
此次整个项目的部署,金鱼哥并没有按着从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)提出您的宝贵建议,标题以【云驻计划-定向征文】开头,还有机会赢取额外奖励。