当前位置: 首页 > 后端技术 > PHP

从0到1教你如何在AWS中部署动态网站Typecho系统

时间:2023-03-29 18:25:14 PHP

Typecho是一套用PHP语言开发的博客程序,同时支持多种数据库(Mysql、PostgreSQL、SQLite)。本文将演示部署Typecho到aws的过程。部署前需要了解需要的依赖EC2(AmazonElasticCloudComputing,弹性云计算,简称EC2)RDS(AmazonRelationalDatabaseService,关系数据库服务,简称RDS)LNMP(Linux,Nginx,MySQL,PHP.这里不需要单独安装MySQL)打开EC2在AWS控制台中,启动一个Linux系统的EC2实例。我选择了Ubuntu镜像。符合条件的免费套餐为AWS海外区域账户免费套餐,您可以通过此链接注册,探索100多种产品,并使用免费套餐开始在AWS上构建。默认情况下,安全组只开启22端口。测试时,您可以选择默认启用所有安全组,也可以将常用端口加入安全组。如果审核无问题,点击开始,然后需要选择现有的密钥对或新建密钥对使用ssh连接,否则只能通过AMI内置密码或EC2InstanceConnect连接访问.可以使用已有的密钥对,我这里新建了一个,填写密钥对名称,点击下载密钥对,就可以得到一个密钥名称.pem文件。再次点击Start,至此,我们创建的实例正在启动。点击ViewInstanceDetails获取公网IPv4DNS进行连接:例如实例的公网DNS名称为ec2-a-b-c-d.us-west-2.compute.amazonaws.com,密钥对为my_ec2_private_key.pem,请使用以下命令通过SSH连接进入示例:ssh-imy_ec2_private_key.pemubuntu@ec2-a-b-c-d.us-west-2.compute.amazonaws.com具体实用步骤请参考《手把手教你在云上部署动态网站》安装LNMPI选择直接使用LNMP一键安装包wgethttp://soft.vpser.net/lnmp/lnmp1.8.tar.gz-cOlnmp1.8.tar.gz&&tarzxflnmp1.8.tar.gz&&cdlnmp1.8&&./install.shlnmp脚本需要root用户执行,所以我们需要先设置root用户的密码sudopasswdroot使用suroot切换到root用户,执行./install.shlnmp再次。安装的时候跳过了MySQL的安装,因为我们要用到RDS,所以不用安装。等待安装完成即可...安装完成后,可以访问http://IP/phpinfo.php查看PHP信息。安装TypechoTypecho正式稳定版已经很久没有发布了,最近我也给Typecho贡献了一些代码,所以这里优先安装开发版的代码。首先使用lnmpvhostadd命令创建一个站点:创建完成后有个.user.ini默认禁止跨目录访问,可以通过lnmp1中的tools/remove_open_basedir_restriction.sh脚本去掉。8目录./remove_open_basedir_restriction.sh进入/home/wwwroot/ty.qq52o.cn目录下载开发版源码:cd/home/wwwroot/ty.qq52o.cnwgethttps://github.com/typecho/typecho/releases/download/ci/typecho.zipunziptypecho.zipchown-Rwww:www./*为了正常访问安装程序,需要将域名解析为EC2的IP,所以去服务域名所在的provider添加解析,对对应的域名添加cname解析,记录值为PublicIPv4DNS。分析成功后,可以看到Typecho提供的安装界面,点击开始下一步。我们需要配置数据库信息,但是由于目前没有安装,我们可以先用SQLite创建,默认会生成一个SQLite数据库文件。地址,点击安装。在下一步中,您需要添加管理员的帐户密码。点击继续安装后,安装步骤完成。默认主页控制台看到这个,还没结束,因为我们用的是SQLite存储,需要换成MySQL存储,继续往下看打开RDS进入aws控制台的RDS服务,创建MySQL引擎databasein在下面的配置中选择实例配置,设置账号密码,点击创建数据库,等待数据库创建成功,获取终端节点和端口。需要注意的是数据库需要和EC2在同一个VPC安全组。由于我们刚才用的是sqlite,需要用到mysql,所以需要删除文件重新安装:cd/home/wwwroot/ty.qq52o.cn#filename是刚才创建rmusr时自动生成的sqlite文件/filename.dbconfig.inc.php重新访问域名,会再次出现刚刚看到的安装界面。输入刚刚获取的终端节点和端口,以及配置的账号密码:当我们点击开始安装时,报错:Sorry,unabletoconnecttothedatabase,请检查数据库配置后再进行安装.这意味着没有名为typecho的数据库,所以我们需要手动创建它#installmysqlclientaptinstallmysql-client-core-5.7#连接数据库,将终端节点替换为实际的回车后,输入密码再次回车进入数据库mysql-uadmin-hterminalnode-p#executecreatedatabasetypecho;执行成功后,再次点击开始安装,就会看到创建管理员账号的页面,按照前面的步骤填写即可。安装成功后,就可以享受Typecho带来的乐趣了~Typecho不仅轻量高效,仅7张数据表,加上不到400KB的代码,实现了完整的插件和模板机制。而且原生支持Markdown排版语法,易读易写。再加上EC2+RDS的使用,即使面对突如其来的大流量,也能轻松应对,提供所需的快速性能、高可用和安全性。获取更多教程:AWS入门基础课程