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 连贯到实例:
ssh -i my_ec2_private_key.pem ubuntu@ec2-a-b-c-d.us-west-2.compute.amazonaws.com
更多具体的实操过程能够参考《手把手教你在云上部署动静网站》
装置 LNMP
我抉择了间接应用 LNMP 一键安装包
wget http://soft.vpser.net/lnmp/lnmp1.8.tar.gz -cO lnmp1.8.tar.gz && tar zxf lnmp1.8.tar.gz && cd lnmp1.8 && ./install.sh lnmp
脚本须要应用 root 用户执行,所以咱们须要先设置下 root 用户的明码
sudo passwd 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
脚本进行移除
./remove_open_basedir_restriction.sh
进入到 /home/wwwroot/ty.qq52o.cn
目录中下载开发版的源码:
cd /home/wwwroot/ty.qq52o.cn
wget https://github.com/typecho/typecho/releases/download/ci/typecho.zip
unzip typecho.zip
chown -R www:www ./*
为了能失常拜访到安装程序,须要将域名解析到 EC2 的 IP 上,所以返回域名所在的服务商增加解析,将对应的域名增加一个 cname 解析,记录值为 私有 IPv4 DNS
。
解析胜利后拜访就能够看到 Typecho 所提供的装置界面
点击开始下一步,咱们就须要配置数据库信息了,然而因为目前没有装置,所以咱们能够先应用 SQLite
进行创立,会默认生成一个 SQLite 的数据库文件地址,点击进行装置即可。
下一步则须要增加管理员的账号密码了
点击持续装置后,就实现了装置步骤。
默认首页
控制台
看到这里,还没有完结,因为咱们应用的是 SQLite
存储,咱们须要替换为 MySQL
存储,持续往下看吧
开明 RDS
返回 aws 的控制台的 RDS 服务,创立一个 MySQL 引擎的数据库
在上面的配置中抉择实例配置,设置账户明码,点击创立数据库,期待数据库创立胜利获取终端节点和端口。
须要留神数据库须要和 EC2 在同一 VPC 平安组中。
因为咱们方才应用的是 SQLite,抉择须要应用 MySQL,所以须要将文件删除来重新安装:
cd /home/wwwroot/ty.qq52o.cn
#filename 为方才创立时主动生成的 SQLite 文件
rm usr/filename.db config.inc.php
从新拜访域名,又会呈现方才看见的装置界面了,输出方才获取的终端节点和端口,以及所配置的账号密码:
当咱们点击开始装置后却报错了:对 不起, 无奈连贯数据库, 请先查看数据库配置再持续进行装置
这个示意不存在这个数据库名为 typecho
的 database,所以咱们须要手动创立一下
# 装置 mysql client
apt install mysql-client-core-5.7
#连贯数据库 将终端节点替换为理论的 回车后输出明码再次回车进入数据库
mysql -uadmin - h 终端节点 -p
#执行
create database typecho;
执行胜利后,再次点击开始装置就又见到了 创立您的管理员帐号
页面,依照之前的步骤填写即可。
装置胜利后就能够纵情享受 Typecho 带来的乐趣~
Typecho 岂但轻量高效,仅仅 7 张数据表,加上有余 400KB 的代码,就实现了残缺的插件与模板机制。而且原生反对 Markdown 排版语法,易读更易写。
加上应用 EC2 + RDS,即便面对从天而降的高访问量,也能轻松应答,提供所需的疾速性能、高可用性、安全性。
获取更多教程:AWS 入门根底课程