前言
Typecho 是使用 PHP 语言开发的一套博客程序,同时也支持多种数据库(Mysql, PostgreSQL, SQLite),本篇文章将演示部署 Typecho 到亚马逊云科技上的过程。
在部署之前需要了解所需要的依赖
-
Amazon EC2(亚马逊弹性云计算,Elastic Cloud Compute,简称 EC2)
-
Amazon RDS(亚马逊关系型数据库服务,Relational Database Service,简称 RDS)
-
LNMP(Linux、Nginx、MySQL、PHP。此处不需要单独安装 MySQL)
开通 Amazon EC2
在亚马逊云科技的控制台中,启动一个 Linux 系统的 EC2 实例,我选择了 Ubuntu 的镜像。
符合条件的免费套餐是亚马逊云科技海外区域账户免费套餐,可以通过此链接 进行注册,探索 100 余种产品,并使用免费套餐在亚马逊云科技上开始构建。
安全组默认只开启了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 用户,再次执行https://blog.csdn.net/awschina/article/details/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 的数据库文件地址,点击进行安装即可。
下一步则需要添加管理员的账号密码了
点击继续安装后,就完成了安装步骤。
1
默认首页
2
控制台
看到这里,还没有结束,因为我们使用的是SQLite存储,我们需要替换为MySQL存储,继续往下看吧
开通 Amazon RDS
前往亚马逊云科技的控制台的 RDS 服务,创建一个 MySQL 引擎的数据库
在下面的配置中选择实例配置,设置账户密码,点击创建数据库,等待数据库创建成功获取终端节点和端口。
需要注意数据库需要和 EC2 在同一 VPC 安全组中。
由于我们刚才使用的是 SQLite ,选择需要使用 MySQL ,所以需要将文件删除来重新安装:
*左滑查看更多
重新访问域名,又会出现刚才看见的安装界面了,输入刚才获取的终端节点和端口,以及所配置的账号密码:
当我们点击开始安装后却报错了:对不起, 无法连接数据库, 请先检查数据库配置再继续进行安装
这个表示不存在这个数据库名为 typecho 的 database ,所以我们需要手动创建一下
*左滑查看更多
执行成功后,再次点击开始安装就又见到了创建您的管理员帐号页面,按照之前的步骤填写即可。
安装成功后就可以尽情享用 Typecho 带来的乐趣~
Typecho 不但轻量高效,仅仅 7 张数据表,加上不足 400KB 的代码,就实现了完整的插件与模板机制。而且原生支持 Markdown 排版语法,易读更易写。
加上使用 EC2 + RDS,即使面对突如其来的高访问量,也能轻松应对,提供所需的快速性能、高可用性、安全性。
Builder 专栏
Builder 专栏是专门为开发者提供技术分享机会的栏目。我们相信在基于亚马逊云科技构建开发中,每一个技术方向,都汇集了拥有相同兴趣和相通技能的开发者。Builder 专栏就是为这些既有技术交织又热爱学习分享的技术人士打造的技术分享栏目。欢迎大家分享在亚马逊云科技上开发的心得与干货,并为大家做更好的展示,将智慧的结晶传递。
如果您正是这样的 builder ,欢迎将智慧结晶传递,投稿请联系:
aws-cn-dev-mktg@amazon.com
听说,点完下面4个按钮
就不会碰到bug了!