个人博客或者小型网站不仅仅只有通过CMS等建站程序等一种方式构建,还可以通过VPS、服务器等方式。接下来将分享一种通过VPS搭建LAMP堆栈部署自己PHP Web应用程序的操作方法,包括通过Amazon Lightsail部署的LAMP(Linux、Apache、MySQL、PHP)堆栈上部署PHP Web应用程序。
Amazon Lightsail是亚马逊云科技推出的一种虚拟专用服务器(简称VPS),主要用于构建应用程序或网站时所需的一切资源,包括WordPress网站和Web网站等等。本文将主要基于Amazon Lightsail免费套餐部署。
亚马逊云科技官网:点击访问(注册立享200+免费云产品)
一、部署条件
1、注册为AWS新用户。
图文教程参考:
2、本指南中将大量涉及终端操作。在学习本指南的过程中,您可以使用自己的开发环境,也可以使用 AWS Cloud9。
二、亚马逊免费VPS创建PHP应用程序接下来将使用AWS CLI通过已预配置了LAMP组件的蓝图创建一个亚马逊免费VPS。在创建实例期间将从GitHub存储库中安装一个PHP应用程序。
1、创建亚马逊免费VPS可以使用以下AWS CLI命令创建Lightsail实例:
或者参考:《亚马逊VPS怎么免费领取 亚马逊免费VPS领取教程》
aws lightsail create-instances \
–instance-names \
–availability-zone \
–blueprint-id \
–bundle-id \
–key-pair-name \
–user-data
- 该命令需使用以下参数:
- 实例名称
- 希望在其中部署实例的可用区
- 蓝图ID
- 捆绑包ID
- 在访问实例时需使用的SSH密钥对
- 用户数据(将在实例启动时执行这些用户数据)。
注意:捆绑包是指一组预配置的资源,其决定了Amazon Lightsail实例可用的内存、计算能力和存储的数量。而蓝图则是指实例的虚拟机映像。该计算机映像中包括计算机上配置的操作系统和常用软件应用程序。
2、定义用户数据如以上命令所示,在创建Amazon Lightsail亚马逊免费VPS实例时,可以选择向该实例传递用户数据,这些数据可用于执行常见的自动配置任务,甚至可用于在实例启动后运行脚本。
在本例中,用户数据将用于部署LAMP堆栈。如下的脚本将执行以下操作:删除蓝图的默认网站;克隆示例应用程序以将其替换;设置适当的文件权限;配置示例应用配置文件中自动生成的数据库密码;并执行init.sql脚本以创建数据库和填充初始值。
3、创建SSH密钥对# remove default website
#———————–
cd /opt/bitnami/apache2/htdocs rm -rf *# clone github repo
#——————
/usr/bin/git clone -b loft https://github.com/mikegcoleman/todo-php.git .# set write permissons on the settings file
#———————————–
chown bitnami:daemon ./*
chmod 666 connectvalues.php# inject database password into configuration file
#————————————————-
sed -i.bak “s//$(cat /home/bitnami/bitnami_application_password)/;” /opt/bitnami/apache2/htdocs/connectvalues.php# create database
#—————-
cat /home/bitnami/htdocs/data/init.sql | /opt/bitnami/mariadb/bin/mysql -u root -p$(cat /home/bitnami/bitnami_application_password)
除用户数据外,可能还需要在创建实例后连接该实例。要连接实例,需使用一个SSH密钥对。可以使用AWS CLI来创建SSH密钥对。
以下命令将为您创建SSH密钥,并将公钥保存在lightsailguide.pub中,将私钥保存在lightsailguide中。
aws lightsail create-key-pair –key-pair-name LightsailGuide > ssh_key_response.json
cat ssh_key_response.json | jq -r ‘.publicKeyBase64’ > lightsailguide.pub
cat ssh_key_response.json | jq -r ‘.privateKeyBase64’ > lightsailguide
chmod 400 lightsailguide.pub lightsailguide
注意:可能需要使用所选的数据包管理器在计算机上安装jq(一种灵活的轻量级命令行JSON处理器)。
4、创建亚马逊免费VPS Lightsail实例一切准备就绪后,即可使用AWS CLI来创建实例。在本指南中,我们将使用Ireland (eu-west-1) 区域,以及一个blueprintId值为lamp_7的LAMP蓝图。可以运行以下命令查看可用蓝图的完整列表:
aws lightsail get-blueprints
在创建亚马逊免费VPS Lightsail实例时,必须指定实例捆绑包。在本指南中,我们将使用micro_2_0捆绑包。可以运行以下命令查看可用捆绑包的列表:
aws lightsail get-bundles
要通过用户数据脚本以及您创建的SSH密钥来创建亚马逊VPS Lightsail实例,请运行以下命令:
# Create the Lightsail instance:
aws lightsail create-instances \
–instance-names “LightsailLampExample” \
–availability-zone eu-west-1a \
–blueprint-id lamp_7 \
–bundle-id micro_2_0 \
–key-pair-name LightsailGuide \
–user-data ‘# remove default website
#———————–
cd /opt/bitnami/apache2/htdocs rm -rf *
# clone github repo
#——————
/usr/bin/git clone -b loft https://github.com/mikegcoleman/todo-php.git .
# set write permissons on the settings file
#———————————–
chown bitnami:daemon ./*
chmod 666 connectvalues.php
# inject database password into configuration file
#————————————————-
sed -i.bak “s//$(cat /home/bitnami/bitnami_application_password)/;” /opt/bitnami/apache2/htdocs/connectvalues.php
# create database
#—————-
cat /home/bitnami/htdocs/data/init.sql | /opt/bitnami/mariadb/bin/mysql -u root -p$(cat /home/bitnami/bitnami_application_password)’
该命令将输出创建的实例的详细信息:
{
“operations”: [
{
“id”: “a49e1398-fb81-455a-8a50-3159c9bd9966”,
“resourceName”: “LightsailLampExample”,
“resourceType”: “Instance”,
“createdAt”: “2021-09-21T16:38:40.566000+02:00”,
“location”: {
“availabilityZone”: “eu-west-1a”,
“regionName”: “eu-west-1”
},
“isTerminal”: false,
“operationType”: “CreateInstance”,
“status”: “Started”,
“statusChangedAt”: “2021-09-21T16:38:40.566000+02:00”
}
]
}
实例创建需要几分钟时间。可以运行以下命令检查进度:
aws lightsail get-instance-state –instance-name LightsailLampExample
当显示以下输出内容时,表明实例正在运行,但其可能仍在执行用户数据脚本:
{
“state”: {
“code”: 16,
“name”: “running”
}
}
要测试应用程序,将需要使用实例的公共IP地址。可以运行以下命令获取实例的公共IP地址。
aws lightsail get-instance –instance-name LightsailLampExample | jq -r .instance.publicIpAddress
复制IP地址并将其粘贴到浏览器中,将看到运行中的应用程序:
如果只是按照本指南中的步骤尝试使用亚马逊免费VPS,而非部署生产环境服务,请务必删除所创建的所有云资源,避免AWS账户产生费用。
1、删除云基础设施
借助亚马逊免费VPS仅需一个命令即可轻松删除基础设施。
打开终端并输入以下命令:
aws lightsail delete-instance –instance-name LightsailLampExample
2、验证没有留下任何资源
要验证是否已删除所有资源,请打开终端并输入以下命令:
aws lightsail get-instances
# the command should output the following
{
“instances”: []
}
推荐阅读:
《亚马逊VPS Amazon Lightsail创建CDN分配教程》
《亚马逊VPS Amazon Lightsai配置MySQL数据库教程》
(本文由美国主机侦探原创,转载请注明出处“美国主机侦探”和原文地址!)

微信扫码加好友进群
主机优惠码及时掌握

QQ群号:938255063
主机优惠发布与交流