基于函数计算实现快速建站
本教程介绍基于函数计算和WordPress实现快速建站。
场景体验目标
本场景将介绍使用函数计算产品 Function Compute 快速部署一个 wordpress 网站。
在这个场景中你将学到:serverless web 新的开发模式,包括 FUN 工具一键初始化 NAS、 同步网站到 NAS、一键部署等能力。体验函数计算的开发敏捷特性、自动弹性伸缩能力、免运维和完善的监控设施。
背景知识
本场景主要涉及以下云产品和服务:
云服务器ECS
云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS (Infrastructure as a Service)级别云计算服务。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。
WordPress
WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把WordPress当作一个内容管理系统(CMS)来使用。
函数计算Function Compute
函数计算Function Compute是事件驱动的全托管计算服务。使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码。函数计算为您准备好计算资源,弹性地可靠地运行任务,并提供日志查询、性能监控和报警等功能。函数计算帮助您无需管理服务器(Serverless),仅专注于函数代码就能快速搭建应用。函数计算能够弹性地伸缩,您只需要按使用量付费。
实验详情
连接ECS服务器
1.打开终端工具。
- Windows:CMD或Powershell。
- MAC:Terminal。
2.在终端中输入连接命令ssh [username]@[ipaddress]。您需要将其中的username和ipaddress替换为第1小节中创建的ECS服务器的登录名和公网地址。例如:
ssh root@123.123.123.123
命令显示结果如下:
3.输入yes。
4.同意继续后将会提示输入登录密码。 密码为已创建的云服务的ECS的登录密码。
登录成功后会显示如下信息。
开通函数计算服务和日志服务
在使用函数计算前,您需要在控制台开通服务,具体步骤如下。
1.在页面左侧资源栏点击 一键复制登录url
2.打开浏览器隐身窗口(无痕模式),粘贴已复制的 url地址 前往 RAM用户登录界面 。
3.在 RAM用户登录页面,输入云产品资源提供的 子用户名称 点击 【下一步】
跳转后输入 子用户密码 ,并点击 【登录】 。
4.在阿里云管理控制台,点击顶部【产品与服务】 ,然后点击【函数计算】 ,进入服务开通页面。
选择资源提供的地域 ,勾选函数计算服务协议,点击【立即开通】。
开通成功页面如下。
5.在阿里云管理控制台,点击顶部【产品与服务】 ,然后点击【日志服务】 ,进入服务开通页面。
点击【创建简单日志】。
点击【立即开通】。
开通成功页面如下。
安装 MySQL 数据库
由于使用wordpress搭建云上博客,需要使用MySQL数据库存储数据,所以这一步我们安装一下MySQL。
1.执行如下命令,下载并安装MySQL官方的Yum Repository
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm yum -y install mysql57-community-release-el7-10.noarch.rpm yum -y install mysql-community-server
2.执行以下命令,启动 MySQL 数据库。
systemctl start mysqld.service
3.执行如下命令,查看MySQL初始密码。
grep "password" /var/log/mysqld.log
4.执行以下命令,登录数据库。
mysql -uroot -p
5.执行以下命令,修改MySQL默认密码。
set global validate_password_policy=0; #修改密码安全策略为低(只校验密码长度,至少8位)。 ALTER USER \'root\'@\'localhost\' IDENTIFIED BY \'12345678\';
6.执行以下命令,授予root用户远程管理权限。
GRANT ALL PRIVILEGES ON *.* TO \'root\'@\'%\' IDENTIFIED BY \'12345678\';
7.执行如下命令,创建wordpress库。
create database wordpress;
8.执行以下命令,查看是否创建成功。
show databases;
9.输入exit退出数据库。
安装Fun工具
Fun 是一个用于支持Serverless应用部署的工具,能帮助您便捷地管理函数计算、API 网关和日志服务等资源。它通过一个资源配置文件(template.yml),协助您进行开发、构建和部署操作。
1.将Fun的安装包下载到本地。请将下面的 FUN_VERSION变量的值设置为最新版本号,最新版本号请参见Releases。以下操作将在ECS服务器上安装和配置Fun。
cd / FUN_VERSION="v3.6.1" curl -o fun-linux.zip https://gosspublic.alicdn.com/fun/fun-$FUN_VERSION-linux.zip
2.安装解压工具unzip,并使用unzip将下载的Fun安装包解压到当前目录。
yum -y install unzip unzip fun-linux.zip
3.将解压出来的可执行文件移动到系统路径。
mv fun-*-linux /usr/local/bin/fun
4.配置Fun关联的阿里云账号和调用SDK的超时时间等信息。
fun config
请参考以下信息输入您的阿里云账号ID、AccessKeyID和AccessKey密钥等信息。
- Aliyun Account ID:子用户名称中
@
符号后面部分就是给您分配的主账号ID,例如u-zftb79nc@105997185439****
中包含的账号ID为105997185439****
。 - Aliyun Access Key ID和Aliyun Access Key Secret:请使用平台提供给您的子账号AK ID和AK Secret。
- Default region name:使用云平台给您提供的地域ID,例如:ECS实例的地域为
华东2(上海)
,那么这里就选择cn-shanghai
。
- The timeout in seconds for each SDK client invoking:建议将超时时间设置长一点(例如1000),防止在上传部署包时发生超时中断。
下载项目工程
1.执行以下命令,安装Git。
yum -y install git
2.执行以下命令,使用Git下载项目代码。
git clone https://github.com/awesome-fc/fc-wordpress.git
创建NAS文件系统挂载点
1.返回管理控制台,搜索NAS,然后单击【文件存储NAS】,登录NAS控制台。
2.选择【文件系统】 > 【文件系统列表】。
3.选择资源所在地域,找到资源信息栏中的NAS文件系统ID对应的文件系统,单击【更多】 > 【添加挂载点】。
4.在【添加挂载点】页面,配置如下参数。
5.查看挂载点地址,如下图。
使用MySQl数据库初始化
1.执行以下命令,进入 fc-web-mysql目录。
cd fc-wordpress/fc-web-mysql/
2.编辑template.yml文件。
a. 执行以下命令进入编辑页面。
vim template.yml
b. 输入i
进入编辑模式。
c. 修改NAS挂载配置。默认auto方式将会自动创建NAS文件系统,这里我们修改填写为平台预创建好的NAS文件系统的信息。
Description: \'run wordpress on FC\' Policies: - AliyunECSNetworkInterfaceManagementAccess VpcConfig: VpcId: \'vpc-uf6a****baqyep5k\' VSwitchIds: [ \'vsw-uf6t****l2lvdc6j7u\' ] SecurityGroupId: \'sg-uf6****q4p2mhi30\' NasConfig: UserId: 10003 GroupId: 10003 MountPoints: - ServerAddr: \'35****4a-mcr95.cn-shanghai.nas.aliyuncs.com:/\' MountDir: \'/mnt/auto\'
修改的参数说明如下:
-
VpcConfig
中的VpcId、VSwitchId和SecurityGroupId信息请到ECS控制台的实例详情页查看。
-
ServerAddr
的值修改为步骤三中的挂载点地址。
修改后如下图所示:
d. 修改LogConfig
中的Project
,任意取一个不会重复的名字即可,如下图。
说明 图种两个标记处的项目名称须保持一致。
e. 按Esc
键退出编辑模式,输入:wq
保存退出。
3.执行以下命令,初始化NAS。
fun nas init
4.由于教程中使用的是自定义NAS服务,所以需要修改项目默认位置。
a. 执行以下命令,查询MAS对应项目位置。
fun nas info
执行结果如下。
b. 复制项目到自定义NAS对应位置。
mv /root/fc-wordpress/fc-web-mysql/.fun/nas/auto-default/fc-wp-mysql/wordpress /root/fc-wordpress/fc-web-mysql/.fun/nas/3c2264900a-pel65.cn-shanghai.nas.aliyuncs.com/
命令解析。
- 命令前半部分
/root/fc-wordpress/fc-web-mysql/.fun/nas/auto-default/fc-wp-mysql/wordpress
为默认项目位置。 - 命令后半部分
/root/fc-wordpress/fc-web-mysql/.fun/nas/3c2264900a-pel65.cn-shanghai.nas.aliyuncs.com/
为自定义NAS项目位置,即命令fun nas info
的查询结果。
5.执行以下命令,用于初始化临时域名。
fun deploy -y
输入Y
继续。
在命令行结果输出中会有一个可用的临时域名, 如上图中的19022215-1857668598503489.test.functioncompute.com,记录这个域名。
6.编辑index.php文件。
a. 执行以下命令进入编辑页面。
vim index.php
b. 输入i
进入编辑模式。
c. 修改 $host属性的值为步骤4中记录的域名。
d. 按 Esc键退出编辑模式,输入 :wq保存退出。
7.执行以下命令,上传wordpress网站到 NAS
fun nas sync fun nas ls nas://fc-wp-mysql/mnt/auto/
8.再次执行fun deploy
命令,完成最终部署。
fun deploy
执行结果如下。
配置MySQL数据库
打开浏览器,在浏览器中输入Fun生成的临时域名进行最后配置,例如:19022215-1857668598503489.test.functioncompute.com。
1.在浏览器的 WordPress 初始化窗口,选择 简体中文 ,点击Continue。
2.单击 现在就开始!,进入下一步。
3.使用步骤三的MySQL数据库配置如下信息。
说明 此处可能会有下载弹窗,请不必理会,点击取消重新提交。
4.在新跳转的页面中,单击现在安装进入下一步。
完成安装
1.在浏览器的WordPress初始化窗口,选择 简体中文 ,点击 Continue 。
2.根据实际需求配置以下信息,单击 安装WordPress 完成Wordpress初始化。
3.单击登录进行登录。
4.使用上一步配置的用户名和密码登录WordPress。
5.登录后,您就可以添加博客进行发布了。