从 0 到 1 教你在亚马逊云科技中部署动态网站 Typecho 系统

Typecho 是使用 PHP 语言开发的一套博客程序,同时也支持多种数据库(Mysql, PostgreSQL, SQLite),本篇文章将演示部署 Typecho 到 aws 上的过程。
在部署之前需要了解所需要的依赖
EC2(亚马逊弹性云计算,Elastic Cloud Compute,简称 EC2)
RDS(亚马逊关系型数据库服务,Relational Database Service,简称 RDS)
LNMP(Linux、Nginx、MySQL、PHP。此处不需要单独安装 MySQL)
开通 EC2
在 AWS 的控制台中,启动一个 Linux 系统的 EC2 实例,我选择了Ubuntu
的镜像。
符合条件的免费套餐
是 AWS 海外区域账户免费套餐,可以通过此链接 进行注册,探索 100 余种产品,并使用免费套餐在 AWS 上开始构建。

安全组默认只开启了 22 端口,测试时可以选择默认开启所有安全组,或者添加常用的端口到安全组中。
审核后如果没有问题,点击启动

接着需要选择选择现有密钥对或者创建新的密钥对来使用 ssh 进行连接,否则只能通过 AMI 内置的密码或者 EC2 Instance Connect 进行连接访问。
可以使用现有的密钥对,我这里创建了一个新的,填入密钥对名称,点击下载密钥对,就可以得到一个密钥名称.pem
文件。
再次点击启动,至此,我们所创建的实例正在启动中。
点击查看实例详情,获取公有 IPv4 DNS
进行连接:

例如实例的公有 DNS 名称是ec2-a-b-c-d.us-west-2.compute.amazonaws.com
,密钥对是my_ec2_private_key.pem
,请使用以下命令通过 SSH 连接到实例:
更多具体的实操过程可以参考《手把手教你在云上部署动态网站》
安装 LNMP
我选择了直接使用 LNMP 一键安装包
脚本需要使用 root 用户执行,所以我们需要先设置下 root 用户的密码
使用su root
切换到 root 用户,再次执行./install.sh lnmp
。
在安装时跳过了安装 MySQL,因为我们需要使用 RDS,所以不需要安装。

等待安装完成即可...
安装完成后可以访问http://IP/phpinfo.php
来查看 PHP 的信息。
安装 Typecho
Typecho 的正式稳定版已经很久没有发布了,我最近也在为 Typecho 贡献一些代码,所以这里我们优先安装开发版的代码。
先使用lnmp vhost add
命令来创建一个站点:

创建完成后,默认有一个禁止跨目录访问的.user.ini
,可以通过lnmp1.8
目录下的tools/remove_open_basedir_restriction.sh
脚本进行移除

进入到/home/wwwroot/ty.qq52o.cn
目录中下载开发版的源码:
为了能正常访问到安装程序,需要将域名解析到 EC2 的 IP 上,所以前往域名所在的服务商添加解析,将对应的域名添加一个 cname 解析,记录值为公有 IPv4 DNS
。
解析成功后访问就可以看到 Typecho 所提供的安装界面

点击开始下一步,我们就需要配置数据库信息了,但是由于目前没有安装,所以我们可以先使用SQLite
进行创建,会默认生成一个 SQLite 的数据库文件地址,点击进行安装即可。
下一步则需要添加管理员的账号密码了

点击继续安装后,就完成了安装步骤。

默认首页

控制台

看到这里,还没有结束,因为我们使用的是SQLite
存储,我们需要替换为MySQL
存储,继续往下看吧
开通 RDS
前往 aws 的控制台的 RDS 服务,创建一个 MySQL 引擎的数据库

在下面的配置中选择实例配置,设置账户密码,点击创建数据库,等待数据库创建成功获取终端节点和端口。
需要注意数据库需要和 EC2 在同一 VPC 安全组中。
由于我们刚才使用的是 SQLite,选择需要使用 MySQL,所以需要将文件删除来重新安装:
重新访问域名,又会出现刚才看见的安装界面了,输入刚才获取的终端节点和端口,以及所配置的账号密码:

当我们点击开始安装后却报错了:对不起, 无法连接数据库, 请先检查数据库配置再继续进行安装
这个表示不存在这个数据库名为typecho
的 database,所以我们需要手动创建一下
执行成功后,再次点击开始安装就又见到了创建您的管理员帐号
页面,按照之前的步骤填写即可。
安装成功后就可以尽情享用 Typecho 带来的乐趣~
Typecho 不但轻量高效,仅仅 7 张数据表,加上不足 400KB 的代码,就实现了完整的插件与模板机制。而且原生支持 Markdown 排版语法,易读更易写。
加上使用 EC2 + RDS,即使面对突如其来的高访问量,也能轻松应对,提供所需的快速性能、高可用性、安全性。
获取更多教程:AWS 入门基础课程

评论