【How to】使用wordpress和aws做个人网站

用AWS的ElasticBeanstalk和wordpress搭建,具有弹性可扩展的优势,用量基本在一年免费套餐内,适合新手折腾。

使用工具


基本步骤:

1、配置VPC

2、建立数据库RDS

3、配置WordPress

4、配置Beanstalk

5、link to RDS

6、Auto Scaling

7、Update

本教程是新手向,如果对aws比较了解,建议直接点击:aws官方指南

(https://docs.aws.amazon.com/zh_cn/elasticbeanstalk/latest/dg/php-hawordpress-tutorial.html?refid=gs_card)

这里就动手开始做啦~

1 配置VPC


我比较推荐新创建VPC的形式,这样可以更清楚的知道自己在网络里做了什么,这个流量是如何跑通的,所以新手,emmm,还是从头做起吧。

1、创建vpc,选择创建带单个公有子网的选项,因为使用beanstalk中的autoscaling需要两个可用区的两个公有子网,所以还需要手动再创建子网。

2、手动创建两个子网,记得选创建在刚才的VPC下,修改两个子网路由表设置,使之可以连接到 igw(internet gateway)【此处两个子网也可以一个是公有子网一个是私有子网】。

2 配置数据库RDS


这里的重点是将rds创建在刚才的vpc中,在数据库名称处要填写【ebdb】(其他的字符也可以,但后面还有两个地方要都要设定这个,都会称为ebdb),设置好数据库账号和密码,要能公开访问。

3 配置wordpress


1、先可以去官网下载最新版本wordpress,也可直接用下面的命令,这个不是最新的安装包

~$ curl https://wordpress.org/wordpress-4.9.5.tar.gz -o wordpress.tar.gz

2、下载config模版并且修改配置文件

~$ wget https://github.com/aws-samples/eb-php-wordpress/releases/download/v1.1/eb-php-wordpress-v1.zip

3、提取 WordPress 并更改文件夹的名称

~$ tar -xvf wordpress.tar.gz

~$ mv wordpress wordpress-beanstalk

~$ cd wordpress-beanstalk

4、从 WordPress 安装中提取配置文件。

~/wordpress-beanstalk$ unzip ../eb-php-wordpress-v1.zip

creating: .ebextensions/ inflating: .ebextensions/dev.config

inflating: .ebextensions/efs-create.config

inflating: .ebextensions/efs-mount.config

inflating: .ebextensions/loadbalancer-sg.config

inflating: .ebextensions/wordpress.config

inflating: LICENSE

inflating: README.md

inflating: wp-config.php

5、修改与vpc相关的配置

5.1 修改IP地址,本机IP地址,尽量写大一点,比如本机是51.54.223.25,就写51.54.0.0/16

~$ vi .ebextensions/dev.config

5.2 修改VPC、EFS相关配置,在EFS那里填入创建的EFS名称(可以临时去创建,很快),VPC名称处填入之前创建的VPC名称,三个子网亦同。目前是发现三个子网正好,多一个、少一个都有可能跑不通,正在思考这个原因。

~$ vi .ebextensions/efs-create.config

5.3 压缩保存wordpress源包,等待上传

~/eb-wordpress$ zip ../wordpress-beanstalk.zip -r * .[^.]*

4 配置Beanstalk


4.1 Beanstalk集成了很多aws服务(ec2/elb/autoscaling/cloudwatch/…),可以通过部署源包就让产品进行快速测试、上线,尤其是对架构网站这种很友好,所以使用beanstalk来进行“傻瓜式”部署服务,说是傻瓜式真的挺简单的,但让一个不会计算机的人搞清楚网路怎么流动,还是挺需要思考的。

4.2 创建应用程序,这里自己填就好,创建环境,名称、url可以自己填,做网站的话记得选【PHP】,源包在这里上传或者环境创建好后再上传都可以,记得千万不要点创建环境,要选择左边的按钮进行更多配置。

4.3 配置选择【自定义】,网络修改成刚才创建的VPC,把子网都选上,实例中插入之前配好的密钥对(或者立即新建一个也可以,这是保障安全的)。

4.4 这时就可以点击创建了,大约要等5-10分钟。

4.5 如果之前没传源包,现在可以传了,如果已经传了,可以看下一步。这时点击url发现报了error,原因是未连接到数据库,那接下来的工作就是连接数据库啦。

4.6 点击配置-安全,查看现在所在安全组是哪一个,复制好sg开头的那一串,进入RDS中,点击刚才创建好数据库的安全组,找到inbound,选择添加规则,Mysql/aurora,端口3306,来源是刚才复制的那一串。再添加一条规则,Mysql/aurora,端口3306,来源是最早设置的VPC网段。回到RDS中,复制一下rds的endpoint,之后会用。

4.7 回到 elastic beanstalk 中,点击配置-软件,查看最下面环境变量多了许多,RDS_HOSTNAME填写刚才复制的endpoint,RDS_DB_NAME是ebdb,RDS_PORT是3306,RDS_USERNAME、RDS_PASSWORD是之前设置的账号和密码,对于其他的加密信息,可以通过这个链接自动生成一份,粘过去就好。

4.8 回到beanstalk主界面,点击右上角url,应该可以访问成功wordpress啦!(千万不要一激动就更新,就下载各种theme,先做完后面几步再鼓捣吧)

5 删除访问控制并增加auto scaling组


5.1 之前的wordpress示例项目包含一个创建安全组并将其分配给环境负载均衡器的配置文件 (loadbalancer-sg.config),使用在 dev.config 中配置的 IP 地址将端口 80 上的 HTTP 访问限制为来自本机的网络的连接。否则,在安装 WordPress 并配置您的管理员账户之前,外部方可能连接到您的站点,既然已安装 WordPress,请删除配置文件以对外开放站点。

5.2 从项目目录中删除 .ebextensions/loadbalancer-sg.config 文件

~/wordpress-beanstalk$ rm .ebextensions/loadbalancer-sg.config

5.3 创建源包并重新上传、部署

~/eb-wordpress$ zip ../wordpress-beanstalk-v2.zip -r * .[^.]*

5.4 接下来就可以配置auto scaling组了,以满足功能的稳定性并且成本最优。打开 Elastic Beanstalk 控制台。导航到您的环境的管理页。选择 Configuration。在容量配置类别中,选择修改。在 Auto Scaling 组 (Auto Scaling 组) 部分中,将 Min instances (最小实例数) 设置为 2。选择 Apply。

6 关于升级的坑


要升级到新版本的 WordPress,需要备份站点并将其部署到新环境。请勿使用 WordPress 中的更新功能或将源文件更新为使用新版本。这两个操作都可能导致文章 URL 返回 404 错误,即使这些 URL 仍然位于数据库和文件系统中。

所以,要按照以下步骤来升级!

1、使用 WordPress 管理控制台中的导出工具将文章导出到 XML 文件。

2、使用安装上一个版本的相同步骤将新版本的 WordPress 部署并安装到 Elastic Beanstalk。要避免停机,可以使用新版本创建新环境。

3、在新版本上,在管理控制台中安装 WordPress 导入器工具,并使用它导入包含文章的 XML 文件。如果文章由使用旧版本的管理员用户创建,请将文章分配到新站点上的管理员用户而不是尝试导入管理员用户。

4、如果将新版本部署到单独的环境,请执行 CNAME 交换 以将用户从旧站点重定向到新站点。

End with Start

这样,就拥有自己的网站啦,wordpress有很多酷炫的模板借鉴,可以很快上手。另外,使用ElasticBeanstalk会自定义一个域名,当然也可以购买域名绑定这个网站,这样就可以通过自己的网址来进行访问啦!

你可能感兴趣的:(【How to】使用wordpress和aws做个人网站)