在ECS实例上搭建WordPress博客平台

更新时间:

WordPress是使用PHP语言开发的博客平台,在支持PHP和MySQL数据库的服务器上,您可以用WordPress搭建自己的网站,也可以用作内容管理系统(CMS)。本教程介绍如何在不同操作系统的ECS实例上,手动搭建WordPress网站的方法。

手动搭建WordPress网站

准备工作

为已创建实例搭建WordPress网站,已创建的ECS实例必须满足以下条件:

  • 实例已分配公网IP地址或绑定弹性公网IP(EIP)。具体操作,请参见更换公网IP地址

  • 实例的安全组入方向规则已放行对应端口。具体操作,请参见添加安全组规则

    • Linux:22、80、443端口。

    • Windows:80、3389端口。

    重要

    基于服务器数据安全考虑,本文仅说明部署与测试LNMP环境和WordPress网站所必需放行的端口,您可以根据实际需求,放行其他应用所需的端口号。例如,远程连接MySQL数据库时,需要放行MySQL默认占用的3306端口。

操作步骤

不同的操作系统搭建WordPress的步骤可能不同,请根据您的ECS实例操作系统选择对应的操作。

Alibaba Cloud Linux 3/2、CentOS 7/8

  1. 远程连接ECS实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例

  2. 部署LNMP环境。

    具体操作,请参见手动部署LNMP环境(Alibaba Cloud Linux 3/2、CentOS 7/8)

    重要

    当您使用不同软件版本时,可能需要根据实际情况调整参数配置。关于WordPress对PHP、MySQL版本的要求,请参见WordPress Compatibility

  3. (条件必选)如果您的操作系统为CentOS 8,则需要切换源地址。

    说明

    CentOS 8操作系统版本结束了生命周期(EOL),按照社区规则,CentOS 8的源地址http://mirror.centos.org/centos/8/内容已移除,您在阿里云上继续使用默认配置的CentOS 8的源会发生报错。如果您需要使用CentOS 8系统中的一些安装包,则需要手动切换源地址。具体操作,请参见CentOS 8 EOL如何切换源?

  4. 配置WordPress数据库。

    1. 运行以下命令,进入MySQL数据库。

      说明

      使用root用户登录MySQL,并输入密码。密码为您在搭建环境时为数据库设置的密码。

      mysql -u root -p
    2. 运行以下命令,为WordPress网站创建一个名称为wordpress的数据库。

      create database wordpress;
    3. 运行以下命令,创建一个新用户user管理WordPress库,新用户密码为PASSword123.,以提高数据安全性。

      create user 'user'@'localhost' identified by 'PASSword123.';
      说明
      • 您可以使用show variables like "%password%";命令来查询MySQL服务器中所有与密码相关的系统变量。

      • MySQL在5.7版本后默认安装了密码强度验证插件validate_password。您可以登录MySQL后查看密码强度规则。

    4. 运行以下命令,赋予用户对数据库wordpress的全部权限。

      grant all privileges on wordpress.* to 'user'@'localhost';
    5. 运行以下命令,使配置生效。

      flush privileges;
    6. 运行以下命令,退出MySQL。

      exit;
  5. 下载WordPress,并移动至网站根目录。

    1. 运行以下命令,进入Nginx网站根目录,下载WordPress压缩包。

      说明

      本示例默认安装的是WordPress中文版本。如果您需安装WordPress英文版本,需运行命令wget https://wordpress.org/wordpress-6.4.5.zip,下载WordPress英文版本压缩包。同时您需要注意,后续操作中压缩包的名称必须替换为wordpress-6.4.5.zip

      cd /usr/share/nginx/html
      sudo wget https://cn.wordpress.org/wordpress-6.4.5-zh_CN.zip
    2. (可选)运行以下命令,安装unzip命令。

      sudo yum install unzip -y
    3. 运行以下命令,解压WordPress压缩包。

      sudo unzip wordpress-6.4.5-zh_CN.zip
    4. 运行以下命令,将WordPress安装目录下的wp-config-sample.php文件复制到wp-config.php文件中,并将wp-config-sample.php文件作为备份。

      cd /usr/share/nginx/html/wordpress
      sudo cp wp-config-sample.php wp-config.php
  6. 修改WordPress配置文件。

    1. 运行以下命令,编辑wp-config.php文件。

      sudo vim wp-config.php
    2. i键进入编辑模式。

      根据已配置的WordPress数据库信息,修改MySQL相关配置信息,代码修改如下所示。

      // ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
      /** WordPress数据库的名称 */
      define('DB_NAME', 'wordpress');
      
      /** MySQL数据库用户名 */
      define('DB_USER', 'user');
      
      /** MySQL数据库密码 */
      define('DB_PASSWORD', 'PASSword123.');
      
      /** MySQL主机 */
      define('DB_HOST', 'localhost');
      说明

      WordPress网站的数据信息将通过数据库的user用户保存在名为wordpress的数据库中。

    3. Esc键,输入:wq后按Enter键,保存退出配置文件。

  7. 修改Nginx配置文件。

    Alibaba Cloud Linux 3/2、CentOS 7

    1. 运行以下命令,打开Nginx配置文件。

      sudo vim /etc/nginx/nginx.conf
    2. i键进入编辑模式。

      说明

      本示例中根目录为/usr/share/nginx/html/wordpress

      • server大括号内,将root后的内容替换为WordPress根目录。

      • location ~ .php$大括号内,将root后的内容替换为WordPress根目录。

        nginx配置文件

    3. Esc键,输入:wq后按Enter键,保存退出配置文件。

    4. 运行以下命令,重启Nginx服务。

      sudo systemctl restart nginx

    CentOS 8

    1. 运行以下命令,打开Nginx配置文件。

      sudo vi /etc/nginx/conf.d/default.conf
    2. i键进入编辑模式。

      说明

      本示例中根目录为/usr/share/nginx/html/wordpress

      • location /大括号内,将root后的内容替换为WordPress根目录。nginx

      • location ~ \.php$大括号内,将root后的内容替换为WordPress根目录。nginx

    3. Esc键,输入:wq后按Enter键,保存退出配置文件。

    4. 运行以下命令,重启Nginx服务。

      sudo systemctl restart nginx
  8. 安装并登录WordPress网站。

    1. 在本地物理机上使用浏览器访问http://ECS实例公网IP,进入WordPress安装页面。

    2. 填写网站基本信息,然后单击安装WordPress

      填写信息参数说明:

      • 站点标题:WordPress网站的名称。例如:demowp。

      • 用户名:登录WordPress时所需的用户名,请注意安全性。例如:testwp。

      • 密码:登录WordPress时所需的密码,建议您设置安全性高的密码。例如:Wp.123456。

      • 您的电子邮件:用于接收通知的电子邮件。例如:username@example.com。

    3. 单击登录

    4. 输入在安装WordPress时设置的用户名testwp和密码Wp.123456,然后单击登录

      成功进入您个人的WordPress网站。

Windows Server 2012 R2

  1. 在Windows操作系统的ECS实例上已完成部署Web环境,具体操作,请参见使用云市场镜像部署Web环境

  2. 远程连接部署好Web环境的ECS实例,下载WordPress。

    1. 远程连接ECS实例。

      具体操作,请参见通过密码认证登录Windows实例

    2. 前往WordPress官网下载WordPress安装包

      说明

      本教程下载的版本为5.3.2。阿里云中国内地地域的节点服务器,下载WordPress可能会出现报错429 Too Many Requests。建议您多次尝试,或者通过第三方下载WordPress。

    3. 解压WordPress安装包。

      本教程将安装包解压至C:\wordpress目录下。

  3. 为WordPress网站创建MySQL数据库。

    1. 进入MySQL安装目录下的bin文件夹,先按下Shift键,同时单击鼠标右键,然后选择在此处打开命令窗口(W)

      1

    2. 运行以下命令,打开MySQL数据库。

      mysql -u root -p
    3. 运行以下命令,创建名称为wordpress的数据库。

      create database wordpress;
  4. 配置WordPress。

    1. 在WordPress解压路径C:\wordpress下,找到wp-config-sample.php文件,复制该文件,并将副本文件重命名为wp-config.php

    2. 使用文本编辑器打开wp-config.php文件,修改已创建的MySQL数据库wordpress有关的信息。

      如下图所示:1

    3. 保存wp-config.php文件。

  5. 在服务器管理器中添加WordPress网站。

    1. 在Windows任务栏找到服务器管理器图标并打开。

      服务器管理器

    2. 在服务器管理器顶部菜单栏,单击工具(T) > Internet Information Services (IIS)管理器

      1

    3. 连接列表,单击服务器名称 > 网站

    4. 将已绑定80端口的网站删除,或者修改80端口为其他未被占用的端口号,例如:8080端口。

      1

    5. 在右侧操作区域,单击添加网站...,添加WordPress网站。

      添加信息如下图所示:1

      配置说明:

      • 网站名称(S):自定义网站名称,本教程使用wordpress作为网站名称。

      • 应用程序池(L):DefaultAppPool。

      • 物理路径(P):您WordPress的解压目录,本教程的目录为C:\wordpress

      • 端口(O):80。

  6. 安装并登录WordPress。

    1. 在ECS实例内,使用浏览器访问http://localhost/,将自动跳转至WordPress安装页面。

    2. 填写网站基本信息,然后单击安装WordPress

      填写信息参数说明:

      • 站点标题:WordPress网站的名称。例如:demowp。

      • 用户名:登录WordPress时所需的用户名,请注意安全性。例如:testwp。

      • 密码:登录WordPress时所需的密码,建议您设置安全性高的密码。

      • 您的电子邮件:用于接收通知的电子邮件。例如:example.com。

    3. 单击登录

    4. 输入您在安装WordPress时设置的用户名和密码,然后单击登录

      成功进入您个人的WordPress网站。

快速搭建WordPress网站

说明

本章节内容仅适用于在CentOS 7.x系统的ECS实例上快速搭建WordPress网站。

请参考以下表格以选择不同的WordPress快速部署方式:

搭建方式

实例选择

说明

使用云市场镜像搭建WordPress

新建实例

阿里云云市场提供WordPress镜像,用于快捷搭建WordPress网站,不需要部署Web环境,降低了建站的门槛,适用于刚开始使用阿里云ECS建站的企业或个人用户。更多信息,请参见了解镜像市场

使用计算巢一键部署WordPress

新建实例

计算巢官方提供了WordPress社区版服务,您无需自行配置云主机,即可在计算巢上快速部署WordPress服务,从而方便地基于WordPress简单快捷地搭建自己的网站。更多信息,请参见什么是计算巢服务

使用云市场镜像搭建

准备工作

已创建网络类型为专有网络的安全组,并且在安全组的入方向添加规则,放行80端口及8100端口,如果您使用SSH远程连接Linux实例,还需要放行22端口。具体操作,请参见添加安全组规则

背景信息

本示例中使用的WordPress博客系统镜像基础环境如下:

  • 操作系统版本:CentOS 7.4

  • Nginx版本:1.14

  • PHP版本:7.0

  • MySQL版本:5.7.22

    该镜像提供的MySQL账号信息如下:

    • 用户名:root

    • 密码:mysql57@onesul.com

步骤一:使用WordPress镜像创建ECS实例

  1. 登录ECS管理控制台

  2. 在左侧导航栏,选择实例与镜像 > 实例

  3. 在页面左侧顶部,选择目标资源所在的资源组和地域。地域

  4. 实例列表页,单击创建实例

  5. 自定义购买页面的镜像区域,选择云市场镜像 > 从云市场获取更多选择(含操作系统)镜像

  6. 在搜索框中输入WordPress博客系统,并单击搜索,选择镜像。

    您可以单击搜索结果中的镜像标题,进入云市场镜像售卖页,获取镜像的配置信息。本示例中使用的WordPress博客系统镜像如下。

    image

    更多镜像环境,您可在云市场基础环境中搜索筛选。

  7. 单击使用

  8. 自定义购买页面,按照界面提示,配置参数。

    请注意以下参数,更多参数说明,请参见自定义购买实例

    • 镜像镜像区域已自动设置为您选购的镜像。

    • 公网 IP:选中分配公网 IPv4 地址,并根据业务需要,设置带宽值。

    • 安全组:选择已开通22、80、8100、443端口的安全组。

步骤二:安装WordPress

  1. 在本地浏览器中输入http://实例公网IP,选择语言(本示例中,选择简体中文),单击继续,然后单击现在就开始!

  2. 填写镜像提供的数据库连接信息,单击提交,然后单击现在安装

    默认参数如下:

    • 用户名:root

    • 密码:mysql57@onesul.com

    说明

    如果您需要修改MySQL数据库的用户名和密码,具体操作,请参见常见问题

    wp1

  3. 根据您的业务需求填写基本信息,这些信息以后可以再次修改。填写完成后单击。

    填写信息参数说明:

    • 站点标题:WordPress网站的名称。例如:demowp。

    • 用户名:登录WordPress时所需的用户名,请注意安全性。例如:testwp。

    • 密码:登录WordPress时所需的密码,建议您设置安全性高的密码。例如:Wp.123456。

    • 您的电子邮件:用于接收通知的电子邮件。例如:username@example.com。

  4. 单击登录

  5. 使用您设置的用户名和密码登录WordPress网站。

    出现如下界面,表示成功搭建WordPress网站。1

使用计算巢一键部署

准备工作

WordPress社区版服务需要对ECS、VPC、ROS等资源进行访问和创建操作,若您使用RAM账号创建服务实例时,需在创建服务实例前,对使用的RAM账号添加相应资源的权限。添加RAM权限的详细操作,请参见为RAM用户授权

权限策略名称

备注

AliyunECSFullAccess

管理云服务器服务(ECS)的权限

AliyunVPCFullAccess

管理专有网络(VPC)的权限

AliyunROSFullAccess

管理资源编排服务(ROS)的权限

AliyunRDSFullAccess

管理云数据库服务(RDS)的权限

AliyunSLBFullAccess

管理负载均衡服务(SLB)的权限

AliyunComputeNestUserFullAccess

管理计算巢服务(ComputeNest)的用户侧权限

AliyunCloudMonitorFullAccess

管理云监控(CloudMonitor)的权限

步骤:一键部署WordPress

  1. 单击部署链接,进入创建服务实例界面,根据界面提示,填写参数。

    您在创建服务实例的过程中,需要配置服务实例信息。下表介绍stable-diffusion服务实例输入参数的详细信息。

    参数组

    参数项

    示例

    说明

    选择模板

    模板选择

    多节点版

    模板架构类型。

    服务实例名称

    服务实例名称

    test

    实例的名称。

    地域

    地域

    华东1(杭州)

    选中服务实例的地域,建议就近选中,以获取更好的网络延时。

    付费类型配置

    付费类型

    按量付费或包年包月

    选择资源的付费方式。

    ECS实例配置

    实例类型

    ecs.gn6i-c4g1.xlarge

    实例规格,可以根据实际需求选择。

    系统盘空间

    40

    系统盘大小,可以根据实际需求选择。

    流量付费类型

    PayByTraffic

    流量付费类型,可以根据实际需求选择。

    流量公网带宽

    10

    流量公网带宽,可以根据实际需求选择。

    实例密码

    *******

    设置实例密码。长度为8-30个字符,必须包含三项(大写字母、小写字母、数字、()`!@#$%^&*-+={}[]:;'<>,.?/中的特殊符号)。

    负载均衡配置

    负载均衡实例规格

    slb.s2.small

    负载均衡实例规格,可以根据实际需求选择。

    数据库配置

    实例系列

    高可用版

    RDS实例系列,可以根据实际需求选择

    实例规格

    mysql.n2.medium.1

    RDS实例规格,可以根据实际需求选择。

    实例存储

    50

    RDS实例大小,可以根据实际需求选择。

    数据库名称

    wordpress

    WordPress数据库名。

    数据库账号

    wpuser

    WordPress数据库账号。

    数据库密码

    ********

    设置实例密码。长度830个字符,必须包含三项(大写字母、小写字母、数字、()`!@#$%^&*-+={}[]:;'<>,.?/中的特殊符号)。

    WordPress配置

    WordPress监听端口号

    8080

    WordPress网站监听端口号。

    可用区配置

    部署区域

    可用区I

    地域下的不同可用区域。

    选择已有基础资源配置

    VPC ID

    vpc-xxx

    选择专有网络的ID。

    选择已有基础资源配置

    交换机ID

    vsw-xxx

    选择交换机ID。若找不到交换机,可尝试切换地域和可用区。

    标签和资源组

    标签

    key1

    指定创建的资源所绑定的标签。

    资源组

    默认资源组

    创建的服务实例位于的资源组。

  2. 单击下一步:确认订单,进入创建服务实例界面,确认配置的服务实例信息及预估算费用。

  3. 阅读并选中我已阅读并同意《计算巢服务协议》,然后单击立即创建

步骤二:验证WordPress部署结果

  1. 登录计算巢控制台

  2. 在左侧导航栏中,单击服务实例管理,然后选择我的服务实例 > 私有部署服务页签。

    查看服务实例。服务实例创建成功后,部署时间大约需要6分钟。部署完成后,页面上可以看到对应的服务实例。

    image

  3. 单击目标服务实例ID/名称,进入服务实例详情界面,然后在立即使用区域,单击WordPressUrl对应的登录网址。

    image

    若页面显示如下所示界面,则表示WordPress博客平台部署成功。

    20.png

使用WordPress

请访问WordPress官网了解如何使用WordPress。更多信息,请参见WordPress使用文档

解析WordPress网站域名

通过实例公网IP地址直接访问您的WordPress网站会降低服务端的安全性。如果您已有域名或者想为WordPress网站注册一个域名,可以参考以下步骤。

  1. 注册域名。

    具体操作,参见域名注册基本流程如何注册阿里云域名

  2. 备案域名。

    如果您的域名指向的网站托管在阿里云中国内地节点服务器,您需要进行备案。首次备案,请参见ICP备案流程,其他情况请参见ICP备案流程

  3. 解析域名。将域名指向实例公网IP。

    域名解析是使用域名访问您的网站的必备环节。具体操作,请参见设置域名解析

  4. 将实例公网IP替换为新域名。

    1. 远程连接已搭建WordPress网站的ECS实例。

      具体操作,请参见ECS远程连接方式概述

    2. (条件必选)如果您的ECS实例为Windows操作系统,则需要执行本步骤操作。

      返回搭建WordPress网站的ECS实例,进入MySQL安装目录下的bin文件夹,先按下shift键,同时单击鼠标右键,然后选择在此处打开命令窗口(W)

      1

    3. 运行以下命令,登录MySQL数据库。

      mysql -u root -p
    4. 运行以下命令,切换至WordPress对应的数据库。

      use wordpress;
    5. 为WordPress网站设置新域名。

      说明

      本示例注册域名为www.example.com

      • Linux:

        运行以下命令,将实例公网IP替换为新域名。

        update wp_options set option_value = replace(option_value, 'http://实例公网IP', 'http://www.example.com') where option_name = 'home' OR option_name = 'siteurl';
      • Windows:

        运行以下命令,将http://localhost/替换为新域名。

        update wp_options set option_value = replace(option_value, 'http://localhost', 'http://www.example.com') where option_name = 'home' OR option_name = 'siteurl';
    6. 运行以下命令,退出MySQL。

      exit;

      成功为WordPress网站设置新域名。

常见问题

WordPress中设置固定链接后,跳转页面无法访问

网站设置为静态网页有利于搜索引擎收录网站。您在对WordPress站点设置固定链接前,需要先在Nginx服务器中设置为静态规则。操作步骤如下:

  1. 登录搭建WordPress的ECS实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例

  2. 运行以下命令,打开Nginx配置文件。

    sudo vim /etc/nginx/nginx.conf
  3. i键进入编辑模式。

  4. location /大括号内,添加如下代码。

    if (-f $request_filename/index.html){
    rewrite (.*) $1/index.html break;
    }
    if (-f $request_filename/index.php){
    rewrite (.*) $1/index.php;
    }
    if (!-f $request_filename){
    rewrite (.*) /index.php;
    }
  5. Esc键,输入:wq后按Enter键,保存退出配置文件。

  6. 运行以下命令,重启Nginx服务。

    sudo systemctl restart nginx

WordPress中更新版本、上传主题或插件时,提示需要FTP登录凭证或无法创建目录

该问题可能是因为WordPress配置文件、主题或插件的权限不足,您可以参考以下步骤解决。

  1. 登录搭建WordPress的ECS实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例

  2. 运行以下命令,打开WordPress配置文件。

    sudo vim /usr/share/nginx/html/wordpress/wp-config.php
  3. i键进入编辑模式。

  4. 在最下方,添加如下代码。

    define("FS_METHOD","direct");
    define("FS_CHMOD_DIR", 0777);
    define("FS_CHMOD_FILE", 0777);
  5. Esc键,输入:wq后按Enter键,保存退出配置文件。

  6. 返回WordPress仪表盘,刷新页面,可解决需要FTP登录凭证的问题。

    如果仍存在无法创建目录的问题,需再次返回ECS实例,运行以下命令,将网站根目录的权限用户更新为Nginx对应的用户,本示例环境中为nginx用户。

    sudo chown -R nginx /usr/share/nginx/html/wordpress

如何修改WordPress镜像中的MySQL 5.7数据库的默认用户名和密码?

具体操作如下:

  1. 远程连接安装WordPress镜像的ECS实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例

  2. 运行以下命令,登录MySQL数据库。

    mysql -u root -p

    根据回显信息,输入MySQL数据库root用户的默认密码为mysql57@onesul.com

    [test@izbp1cgfkqcrs8pi2li**** ~]# mysql -u root -p
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 3
    Server version: 5.7.23 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql>
  3. 运行以下命令,进入MySQL数据库。

    use mysql
    说明

    运行select user from mysql.user;命令,可查看MySQL数据库的用户名。

  4. 根据需求,修改数据库的用户名和密码。

    • 运行以下命令,修改数据库用户名为新用户名。

      update user set user="新用户名" where user="用户名";

      本示例将root用户名修改为admin,命令如下:

      update mysql.user set user="admin" where user="root";
    • 运行以下命令,修改数据库用户名的密码。

      update mysql.user set authentication_string=password("新密码") where user="要更新密码的用户名";

      本示例将root用户密码改为newpassword,命令如下:

      update mysql.user set authentication_string=password("newpassword") where user="root";
  5. 运行以下命令,刷新权限使修改生效。

    flush privileges; 
  6. 运行以下命令,退出MySQL数据库。

    quit;