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

MySQL
PHP
Amazon EC2
Amazon RDS
0
0
{"value":"Typecho 是使用 PHP 语言开发的一套博客程序,同时也支持多种数据库(Mysql, PostgreSQL, SQLite),本篇文章将演示部署 Typecho 到 Amazon 上的过程。\n\n在部署之前需要了解所需要的依赖\n\n- EC2(亚马逊弹性云计算,Elastic Cloud Compute,简称 EC2)\n- RDS(亚马逊关系型数据库服务,Relational Database Service,简称 RDS)\n- LNMP(Linux、Nginx、MySQL、PHP。此处不需要单独安装 MySQL)\n\n\n### **开通 EC2**\n在亚马逊云科技的控制台中,启动一个 Linux 系统的 EC2 实例,我选择了 Ubuntu 的镜像。\n\n符合条件的免费套餐是亚马逊云科技海外区域账户免费套餐,可以通过此链接 进行注册,探索100余种产品,并使用免费套餐在亚马逊云科技上开始构建。\n\n![image.png](https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/2944e5dd70bc4ff280ab557ebbbc6c2d_image.png)\n\n安全组默认只开启了22端口,测试时可以选择默认开启所有安全组,或者添加常用的端口到安全组中。\n\n审核后如果没有问题,点击启动\n\n![image.png](https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/c7307f93f0944a4d8a139ed1d27bba6e_image.png)\n\n接着需要选择选择现有密钥对或者创建新的密钥对来使用ssh进行连接,否则只能通过AMI内置的密码或者 EC2 Instance Connect 进行连接访问。\n\n可以使用现有的密钥对,我这里创建了一个新的,填入密钥对名称,点击下载密钥对,就可以得到一个密钥名称 .pem 文件。\n\n再次点击启动,至此,我们所创建的实例正在启动中。\n\n点击查看实例详情,获取公有 IPv4 DNS 进行连接:\n\n![image.png](https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/10cf22803e2d4d7d8396999afcf76e10_image.png)\n\n例如实例的公有 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 更多具体的实操过程可以参考《[手把手教你在云上部署动态网站](https://aws.amazon.com/cn/getting-started/hands-on/how-to-deploy-dynamic-website-on-cloud/?trk=30d44e8c-adcf-4e27-9613-d5fade62140d&sc_channel=ba)》\n\n### **安装 LNMP**\n我选择了直接使用 LNMP 一键安装包\n\n```\\nwget 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\\n```\n\n脚本需要使用 root 用户执行,所以我们需要先设置下 root 用户的密码\n\nsudo passwd root\n\n使用 su root 切换到 root 用户,再次执行 ./install.sh lnmp。\n\n在安装时跳过了安装 MySQL,因为我们需要使用 RDS,所以不需要安装。\n\n![image.png](https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/2387eb84c0ff40189a58e23e866d914f_image.png)\n\n等待安装完成即可...\n\n安装完成后可以访问 http://IP/phpinfo.php 来查看 PHP 的信息。\n\n### **安装 Typecho**\nTypecho 的正式稳定版已经很久没有发布了,我最近也在为 Typecho 贡献一些代码,所以这里我们优先安装开发版的代码。\n\n先使用 lnmp vhost add 命令来创建一个站点:\n\n![image.png](https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/013fb23baea34be5b40513f3d7cdb51b_image.png)\n\n创建完成后,默认有一个禁止跨目录访问的 .user.ini,可以通过 lnmp1.8 目录下的 tools/remove_open_basedir_restriction.sh 脚本进行移除 ./remove_open_basedir_restriction.sh\n\n![image.png](https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/e857873864354884a8730809f8605929_image.png)\n\n进入到 /home/wwwroot/ty.qq52o.cn 目录中下载开发版的源码:\n\n```\\ncd /home/wwwroot/ty.qq52o.cn\\nwget https://github.com/typecho/typecho/releases/download/ci/typecho.zip\\nunzip typecho.zip\\nchown -R www:www ./*\\n```\n\n为了能正常访问到安装程序,需要将域名解析到 EC2 的 IP 上,所以前往域名所在的服务商添加解析,将对应的域名添加一个 cname 解析,记录值为公有 IPv4 DNS。\n\n解析成功后访问就可以看到 Typecho 所提供的安装界面\n\n![image.png](https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/99b201b8c17b4ee4bbf2653a600ea0fb_image.png)\n\n点击开始下一步,我们就需要配置数据库信息了,但是由于目前没有安装,所以我们可以先使用 SQLite 进行创建,会默认生成一个 SQLite 的数据库文件地址,点击进行安装即可。\n\n下一步则需要添加管理员的账号密码了\n\n![image.png](https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/0b7f9e1355bc422590e8434ddf2cedd0_image.png)\n\n点击继续安装后,就完成了安装步骤。\n\n![image.png](https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/9bce66bb0dcc45ec832f80aeb3dbb678_image.png)\n\n### **默认首页**\n\n![image.png](https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/b8e66623c1644747a8f7b3a865505dee_image.png)\n\n### **控制台**\n\n![image.png](https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/53c9137d1381470ea5c2f1f705610c74_image.png)\n\n看到这里,还没有结束,因为我们使用的是 SQLite 存储,我们需要替换为 MySQL 存储,继续往下看吧\n\n### **开通 RDS**\n前往亚马逊云科技的控制台的 RDS 服务,创建一个 MySQL 引擎的数据库\n\n![image.png](https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/d12b378e3d664bd4b5d635ca9dd59de8_image.png)\n\n在下面的配置中选择实例配置,设置账户密码,点击创建数据库,等待数据库创建成功获取终端节点和端口。\n\n需要注意数据库需要和 EC2 在同一 VPC 安全组中。\n\n由于我们刚才使用的是 SQLite,选择需要使用 MySQL,所以需要将文件删除来重新安装:\n\n```\\ncd /home/wwwroot/ty.qq52o.cn\\n#filename为刚才创建时自动生成的SQLite文件\\nrm usr/filename.db config.inc.php\\n```\n\n重新访问域名,又会出现刚才看见的安装界面了,输入刚才获取的终端节点和端口,以及所配置的账号密码:\n\n![image.png](https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/0f77ef1fa9824892945b92dbdef633b3_image.png)\n\n当我们点击开始安装后却报错了:对不起, 无法连接数据库, 请先检查数据库配置再继续进行安装\n\n这个表示不存在这个数据库名为 typecho 的 database,所以我们需要手动创建一下\n\n```\\n#安装mysql client\\napt install mysql-client-core-5.7 \\n\\n#连接数据库 将终端节点替换为实际的 回车后输入密码再次回车进入数据库\\nmysql -uadmin -h终端节点 -p\\n\\n#执行\\ncreate database typecho;\\n```\n\n执行成功后,再次点击开始安装就又见到了创建您的管理员帐号页面,按照之前的步骤填写即可。\n\n安装成功后就可以尽情享用 Typecho 带来的乐趣~\n\nTypecho 不但轻量高效,仅仅7张数据表,加上不足400KB 的代码,就实现了完整的插件与模板机制。而且原生支持 Markdown 排版语法,易读更易写。\n\n加上使用 EC2 + RDS,即使面对突如其来的高访问量,也能轻松应对,提供所需的快速性能、高可用性、安全性。\n\n获取更多教程:[亚马逊云科技入门基础课程](https://aws.amazon.com/cn/getting-started/?nc2=h_ql_le_gs&trk=4601add5-b05e-40e5-86a4-84b8eec3a582&sc_channel=ba)\n\n![Builder 专栏1.jpg](https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/192202dd5cd641d4a93f10a748405648_Builder%20%E4%B8%93%E6%A0%8F1.jpg)\n\n","render":"<p>Typecho 是使用 PHP 语言开发的一套博客程序,同时也支持多种数据库(Mysql, PostgreSQL, SQLite),本篇文章将演示部署 Typecho 到 Amazon 上的过程。</p>\n<p>在部署之前需要了解所需要的依赖</p>\n<ul>\\n<li>EC2(亚马逊弹性云计算,Elastic Cloud Compute,简称 EC2)</li>\n<li>RDS(亚马逊关系型数据库服务,Relational Database Service,简称 RDS)</li>\n<li>LNMP(Linux、Nginx、MySQL、PHP。此处不需要单独安装 MySQL)</li>\n</ul>\\n<h3><a id=\\"_EC2_9\\"></a><strong>开通 EC2</strong></h3>\\n<p>在亚马逊云科技的控制台中,启动一个 Linux 系统的 EC2 实例,我选择了 Ubuntu 的镜像。</p>\n<p>符合条件的免费套餐是亚马逊云科技海外区域账户免费套餐,可以通过此链接 进行注册,探索100余种产品,并使用免费套餐在亚马逊云科技上开始构建。</p>\n<p><img src=\\"https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/2944e5dd70bc4ff280ab557ebbbc6c2d_image.png\\" alt=\\"image.png\\" /></p>\n<p>安全组默认只开启了22端口,测试时可以选择默认开启所有安全组,或者添加常用的端口到安全组中。</p>\n<p>审核后如果没有问题,点击启动</p>\n<p><img src=\\"https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/c7307f93f0944a4d8a139ed1d27bba6e_image.png\\" alt=\\"image.png\\" /></p>\n<p>接着需要选择选择现有密钥对或者创建新的密钥对来使用ssh进行连接,否则只能通过AMI内置的密码或者 EC2 Instance Connect 进行连接访问。</p>\n<p>可以使用现有的密钥对,我这里创建了一个新的,填入密钥对名称,点击下载密钥对,就可以得到一个密钥名称 .pem 文件。</p>\n<p>再次点击启动,至此,我们所创建的实例正在启动中。</p>\n<p>点击查看实例详情,获取公有 IPv4 DNS 进行连接:</p>\n<p><img src=\\"https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/10cf22803e2d4d7d8396999afcf76e10_image.png\\" alt=\\"image.png\\" /></p>\n<p>例如实例的公有 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 更多具体的实操过程可以参考《<a href=\\"https://aws.amazon.com/cn/getting-started/hands-on/how-to-deploy-dynamic-website-on-cloud/?trk=30d44e8c-adcf-4e27-9613-d5fade62140d&amp;sc_channel=ba\\" target=\\"_blank\\">手把手教你在云上部署动态网站</a>》</p>\\n<h3><a id=\\"_LNMP_34\\"></a><strong>安装 LNMP</strong></h3>\\n<p>我选择了直接使用 LNMP 一键安装包</p>\n<pre><code class=\\"lang-\\">wget http://soft.vpser.net/lnmp/lnmp1.8.tar.gz -cO lnmp1.8.tar.gz &amp;&amp; tar zxf lnmp1.8.tar.gz &amp;&amp; cd lnmp1.8 &amp;&amp; ./install.sh lnmp\\n</code></pre>\\n<p>脚本需要使用 root 用户执行,所以我们需要先设置下 root 用户的密码</p>\n<p>sudo passwd root</p>\n<p>使用 su root 切换到 root 用户,再次执行 ./install.sh lnmp。</p>\n<p>在安装时跳过了安装 MySQL,因为我们需要使用 RDS,所以不需要安装。</p>\n<p><img src=\\"https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/2387eb84c0ff40189a58e23e866d914f_image.png\\" alt=\\"image.png\\" /></p>\n<p>等待安装完成即可…</p>\n<p>安装完成后可以访问 http://IP/phpinfo.php 来查看 PHP 的信息。</p>\n<h3><a id=\\"_Typecho_55\\"></a><strong>安装 Typecho</strong></h3>\\n<p>Typecho 的正式稳定版已经很久没有发布了,我最近也在为 Typecho 贡献一些代码,所以这里我们优先安装开发版的代码。</p>\n<p>先使用 lnmp vhost add 命令来创建一个站点:</p>\n<p><img src=\\"https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/013fb23baea34be5b40513f3d7cdb51b_image.png\\" alt=\\"image.png\\" /></p>\n<p>创建完成后,默认有一个禁止跨目录访问的 .user.ini,可以通过 lnmp1.8 目录下的 tools/remove_open_basedir_restriction.sh 脚本进行移除 ./remove_open_basedir_restriction.sh</p>\n<p><img src=\\"https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/e857873864354884a8730809f8605929_image.png\\" alt=\\"image.png\\" /></p>\n<p>进入到 /home/wwwroot/ty.qq52o.cn 目录中下载开发版的源码:</p>\n<pre><code class=\\"lang-\\">cd /home/wwwroot/ty.qq52o.cn\\nwget https://github.com/typecho/typecho/releases/download/ci/typecho.zip\\nunzip typecho.zip\\nchown -R www:www ./*\\n</code></pre>\\n<p>为了能正常访问到安装程序,需要将域名解析到 EC2 的 IP 上,所以前往域名所在的服务商添加解析,将对应的域名添加一个 cname 解析,记录值为公有 IPv4 DNS。</p>\n<p>解析成功后访问就可以看到 Typecho 所提供的安装界面</p>\n<p><img src=\\"https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/99b201b8c17b4ee4bbf2653a600ea0fb_image.png\\" alt=\\"image.png\\" /></p>\n<p>点击开始下一步,我们就需要配置数据库信息了,但是由于目前没有安装,所以我们可以先使用 SQLite 进行创建,会默认生成一个 SQLite 的数据库文件地址,点击进行安装即可。</p>\n<p>下一步则需要添加管理员的账号密码了</p>\n<p><img src=\\"https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/0b7f9e1355bc422590e8434ddf2cedd0_image.png\\" alt=\\"image.png\\" /></p>\n<p>点击继续安装后,就完成了安装步骤。</p>\n<p><img src=\\"https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/9bce66bb0dcc45ec832f80aeb3dbb678_image.png\\" alt=\\"image.png\\" /></p>\n<h3><a id=\\"_91\\"></a><strong>默认首页</strong></h3>\\n<p><img src=\\"https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/b8e66623c1644747a8f7b3a865505dee_image.png\\" alt=\\"image.png\\" /></p>\n<h3><a id=\\"_95\\"></a><strong>控制台</strong></h3>\\n<p><img src=\\"https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/53c9137d1381470ea5c2f1f705610c74_image.png\\" alt=\\"image.png\\" /></p>\n<p>看到这里,还没有结束,因为我们使用的是 SQLite 存储,我们需要替换为 MySQL 存储,继续往下看吧</p>\n<h3><a id=\\"_RDS_101\\"></a><strong>开通 RDS</strong></h3>\\n<p>前往亚马逊云科技的控制台的 RDS 服务,创建一个 MySQL 引擎的数据库</p>\n<p><img src=\\"https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/d12b378e3d664bd4b5d635ca9dd59de8_image.png\\" alt=\\"image.png\\" /></p>\n<p>在下面的配置中选择实例配置,设置账户密码,点击创建数据库,等待数据库创建成功获取终端节点和端口。</p>\n<p>需要注意数据库需要和 EC2 在同一 VPC 安全组中。</p>\n<p>由于我们刚才使用的是 SQLite,选择需要使用 MySQL,所以需要将文件删除来重新安装:</p>\n<pre><code class=\\"lang-\\">cd /home/wwwroot/ty.qq52o.cn\\n#filename为刚才创建时自动生成的SQLite文件\\nrm usr/filename.db config.inc.php\\n</code></pre>\\n<p>重新访问域名,又会出现刚才看见的安装界面了,输入刚才获取的终端节点和端口,以及所配置的账号密码:</p>\n<p><img src=\\"https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/0f77ef1fa9824892945b92dbdef633b3_image.png\\" alt=\\"image.png\\" /></p>\n<p>当我们点击开始安装后却报错了:对不起, 无法连接数据库, 请先检查数据库配置再继续进行安装</p>\n<p>这个表示不存在这个数据库名为 typecho 的 database,所以我们需要手动创建一下</p>\n<pre><code class=\\"lang-\\">#安装mysql client\\napt install mysql-client-core-5.7 \\n\\n#连接数据库 将终端节点替换为实际的 回车后输入密码再次回车进入数据库\\nmysql -uadmin -h终端节点 -p\\n\\n#执行\\ncreate database typecho;\\n</code></pre>\\n<p>执行成功后,再次点击开始安装就又见到了创建您的管理员帐号页面,按照之前的步骤填写即可。</p>\n<p>安装成功后就可以尽情享用 Typecho 带来的乐趣~</p>\n<p>Typecho 不但轻量高效,仅仅7张数据表,加上不足400KB 的代码,就实现了完整的插件与模板机制。而且原生支持 Markdown 排版语法,易读更易写。</p>\n<p>加上使用 EC2 + RDS,即使面对突如其来的高访问量,也能轻松应对,提供所需的快速性能、高可用性、安全性。</p>\n<p>获取更多教程:<a href=\\"https://aws.amazon.com/cn/getting-started/?nc2=h_ql_le_gs&amp;trk=4601add5-b05e-40e5-86a4-84b8eec3a582&amp;sc_channel=ba\\" target=\\"_blank\\">亚马逊云科技入门基础课程</a></p>\\n<p><img src=\\"https://awsdevweb.s3.cn-north-1.amazonaws.com.cn/192202dd5cd641d4a93f10a748405648_Builder%20%E4%B8%93%E6%A0%8F1.jpg\\" alt=\\"Builder 专栏1.jpg\\" /></p>\n"}
0
目录
关闭