进阶实战04-使用PolarDB和ECS搭建门户网站

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: 了解PolarDB数据库,并在阿里云平台进行部署

体验目标

本场景将提供一台基础环境为CentOS的ECS(云服务器)实例和已经创建好的PolarDB数据库实例。我们将会在这台服务器上安装WordPress,帮助您快速搭建自己的云上博客。

背景知识

PolarDB数据库简介

PolarDB是阿里云自研的下一代关系型云数据库,有三个独立的引擎,分别可以100%兼容MySQL、100%兼容PostgreSQL、高度兼容Oracle语法,存储容量最高可达100TB,单库最多可扩展到16个节点,适用于企业多样化的数据库应用场景。

PolarDB采用存储和计算分离的架构,所有计算节点共享一份数据,提供分钟级的配置升降级、秒级的故障恢复、全局数据一致性和免费的数据备份容灾服务。PolarDB既融合了商业数据库稳定可靠、高性能、可扩展的特征,又具有开源云数据库简单开放、自我迭代的优势,例如PolarDB MySQL性能最高可以提升至MySQL的6倍,而成本只有商用数据库的1/10。集群架构,计算与存储分离。

  • 集群架构,计算与存储分离。

PolarDB采用多节点集群的架构,集群中有一个Writer节点(主节点)和多个Reader节点(读节点),各节点通过分布式文件系统(PolarFileSystem)共享底层的存储(PolarStore)。

  • 读写分离。

当应用程序使用集群地址时,PolarDB MySQL/PostgreSQL通过内部的代理层(Proxy)对外提供服务,应用程序的请求都先经过代理,然后才访问到数据库节点。代理层不仅可以做安全认证和保护,还可以解析SQL,把写操作(例如事务、UPDATE、INSERT、DELETE、DDL等)发送到主节点,把读操作(例如SELECT)均衡地分发到多个只读节点,实现自动的读写分离。对于应用程序来说,就像使用一个单点的MySQL数据库一样简单。内部的代理层(Proxy)后续将支持PolarDB兼容Oracle语法引擎。

产品优势

您可以像使用MySQL、PostgreSQL、Oracle一样使用PolarDB,此外,PolarDB还有传统数据库不具备的优势:

  • 容量大。

最高100TB,您不再需要因为单机容量的天花板而去购买多个实例做分片,由此简化应用开发,降低运维负担。

  • 高性价比。

PolarDB的计算与存储分离,每增加一个只读节点只收取计算资源的费用,而传统的只读节点同时包含计算和存储资源,每增加一个只读节点需要支付相应的存储费用。

PolarDB的存储空间无需手动配置,根据数据量自动伸缩,您只需为实际使用的数据量按小时付费。

为了更好地帮助您降低存储成本,PolarDB推出了预付费形式的存储包。当您的数据量较大时,推荐您使用PolarDB存储包,相比按小时付费,预付费购买存储包有折扣,购买的容量越大,折扣力度就越大。

  • 分钟级弹性。

存储与计算分离的架构,配合共享存储,使得快速升级成为现实。

  • 读一致性。

集群地址利用LSN(Log Sequence Number)确保读取数据时的全局一致性,避免因为主备延迟引起的不一致。

  • 毫秒级延迟(物理复制)。

利用基于Redo的物理复制代替基于Binlog的逻辑复制,提升主备复制的效率和稳定性。即使对大表进行加索引、加字段等DDL操作,也不会造成数据库的延迟。

  • 无锁备份。

利用存储层的快照,可以在60秒内完成对2TB数据量大小的数据库的备份,而且备份过程不会对数据库加锁,对应用程序几乎无影响,全天24小时均可进行备份。

创建PolarDB数据库账号

  1. 单击页面左侧 云产品资源 > 一键复制登录url
  2. 打开浏览器隐身窗口(无痕模式)(为了不和主账号冲突),粘贴已复制的url地址前往 RAM用户登录 界面,登录 阿里云管理控制台
  3. 阿里云控制台首页 左侧导航栏,依次单击 产品与服务 > 云数据库PolarDB ,进入 云数据库PolarDB管理控制台

image-20200926131102247

  1. 创建数据库账号。

    1. 集群列表 页面,单击 集群ID ,进入 集群详情界面
    2. 单击左侧导航栏 配置与管理 > 账号管理
    3. 单击左上方 创建账号
    4. 参考说明配置账号信息,然后单击 **确定**
  • 数据库账号:输入数据库账号名称,例如:test_user 。
  • 账号类型:此处选择普通账号。
  • 密码:设置账号密码,例如:Password1213。
  • 确认密码:再次输入密码。

image-20200926131348102

  1. 创建数据库。

    1. 在实例详情页,单击左侧导航栏的 数据库管理 ,然后单击 创建数据库
    2. 参考说明配置数据库信息,然后单击 创建

image-20200926132134365

  • 数据库(DB)名称:输入数据库名称,例如:pbootcms 。
  • 支持字符集:默认设为utf8mb4。
  • 授权账号:选择上一步创建的数据库账号test_user。
  • 账号类型:默认设置为读写。
  • 备注说明:非必填。用于备注该数据库的相关信息,便于后续数据库管理,最多支持256个字符。
  1. 设置数据库白名单。
  2. 连接数据库需要设置数据库白名单,点击 [集群白名单],然后点击 [设置] 设置数据库集群白名单。
  3. 在白名单界面将默认的白名单地址127.0.0.1更改为 0.0.0.0/0,然后点击 [确定] 使白名单地址生效。

image-20200926132249042

连接ECS服务器

打开windows terminal

image-20200926133026933

安装LAMP环境

LAMP是指运行在Linux下的Apache、MySQL和PHP的环境参考。

  1. 在ECS服务器上,执行以下命令安装Apache服务及其扩展包。
yum -y install httpd httpd-manual mod_ssl mod_perl mod_auth_mysql

image-20200926134030990

  1. PbootCMS是使用PHP语言开发的CMS系统。

执行以下命令,安装PHP。

yum -y install php php-mysql gd php-gd gd-devel php-xml php-common php-mbstring php-ldap php-pear php-xmlrpc php-imap

image-20200926134101454

  1. 执行以下命令下载并安装MySQL。
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
  1. 执行以下命令启动MySQL数据库。
systemctl start mysqld

image-20200926134415849

搭建门户网站

在完成环境部署后,参考以下操作搭建门户网站。

  1. 在ECS服务器上,执行以下命令
#安装git
yum -y install git
#在ECS服务器上,执行以下命令下载PbootCMS源码文件
cd ~ && git clone https://gitee.com/hnaoyun/PbootCMS.git
#执行以下命令将安装包拷贝到Apache的wwwroot目录下。
cp -r PbootCMS/* /var/www/html/
#执行以下命令修改站点根目录文件权限。
chmod -R a+w /var/www/html
  1. 向数据库中导入CMS的初始数据。

执行以下命令初始化数据库pbootcms的表结构和数据。

说明: 在执行命令前,请修改一下三个参数。

  • 数据库连接地址参见集群详情页面下方链接地址板块。
  • test_user为步骤二中创建的数据库账号。
  • Password1213步骤二中创建的数据库密码。
sql_file="/var/www/html/static/backup/sql/"$(ls /var/www/html/static/backup/sql/) &&
mysql -h数据库连接地址 -utest_user -pPassword1213 -Dpbootcms < $sql_file
  1. 执行以下命令,修改CMS系统数据库配置。

说明: 在执行命令前,请根据参数说明替换您的数据库配置。

cat > /var/www/html/config/database.php << EOF
<?php
return array(
    'database' => array(
        'type' => 'mysqli', // 数据库连接驱动类型: mysqli,sqlite,pdo_mysql,pdo_sqlite
        'host' => 'pc-uf6u7ig5281901k9x.rwlb.rds.aliyuncs.com', // PolarDB数据库链接地址
        'user' => 'sdf123sdf', // PolarDB数据库的用户名
        'passwd' => 'Asdfg123', // PolarDB数据库的密码
        'port' => '3306', // 数据库端口
        'dbname' => 'pbootcms' //数据库名称
    )
);
EOF
  1. 配置安全组实例打开80端口,并重启Apache服务。
systemctl restart httpd

访问服务器

image-20200926143926769

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
机器学习/深度学习 弹性计算 运维
云计算系列之阿里云ECS服务器管理实战
本文档介绍了阿里云ECS(Elastic Compute Service)的基本概念、实例管理、磁盘操作、快照与镜像功能及其应用场景,最后通过具体案例解析ECS的实际应用。ECS是阿里云提供的高效、可靠的云计算服务,支持多种业务需求,如Web应用、高并发网站、数据库等,帮助企业快速构建稳定安全的应用,提升运维效率,降低IT成本。文档还详细说明了ECS实例的创建方式、连接方法及日常管理操作,帮助用户更好地利用ECS服务。
69 2
云计算系列之阿里云ECS服务器管理实战
|
3月前
|
网络协议
keepalived对后端服务器的监测方式实战案例
关于使用keepalived进行后端服务器TCP监测的实战案例,包括配置文件的编辑和keepalived服务的重启,以确保配置生效。
68 1
keepalived对后端服务器的监测方式实战案例
|
4月前
|
SQL 缓存 自然语言处理
实战案例1:基于C语言的Web服务器实现。
实战案例1:基于C语言的Web服务器实现。
203 15
|
4月前
|
运维 数据安全/隐私保护 数据库管理
企业实战项目之服务器用户权限集中管理
企业实战项目之服务器用户权限集中管理
|
4月前
|
弹性计算 监控 网络安全
解锁云端力量:ECS全攻略,从新手到专家的实战之旅!轻松掌握云计算核心技能,驾驭数字浪潮之巅!
【8月更文挑战第22天】云计算中的弹性计算服务(ECS)让企业和开发者能按需获取虚拟服务器,灵活配置CPU、内存等资源。本文从零开始指导ECS的基础操作与高级技巧,包括实例创建、SSH连接、Web应用部署及利用ELB和自动伸缩优化性能。同时介绍监控工具和数据备份方法,帮助您全方位掌握ECS的高效运用,满足业务需求并保障数据安全。
69 3
|
5月前
|
SQL 缓存 前端开发
PHP性能优化实战:从代码到服务器的全方位攻略
【7月更文挑战第30天】在Web开发的世界里,PHP以其灵活性和易用性赢得了广泛的赞誉。然而,随着应用规模的扩大,性能问题逐渐浮现。本文将深入探讨PHP的性能优化策略,不仅涉及代码层面的精细调整,还包括服务器配置的优化技巧。我们将一起探索如何通过减少资源消耗、优化数据库交互以及利用缓存技术来提升PHP应用的性能表现。无论你是PHP新手还是资深开发者,这篇文章都将为你提供实用的优化建议,帮助你打造更快、更稳定的PHP应用。
89 4
|
4月前
|
移动开发 网络协议 编译器
实战案例3:C语言实现的HTTP服务器
实战案例3:C语言实现的HTTP服务器
223 0
|
5月前
|
SQL 弹性计算 关系型数据库
PolarDB产品使用问题之如何和ECS实例实现内网互通
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
4月前
|
缓存 PHP 数据库
PHP性能优化实战:从代码到服务器的全方位攻略
在数字化时代,Web应用的性能直接影响用户体验和业务成果。作为流行的后端开发语言,PHP的性能优化是提升网站响应速度的关键。本文将通过实际案例分析,探讨PHP代码级别的优化策略、数据库交互效率提升以及服务器配置调优,旨在帮助开发者全面提升PHP应用性能。
56 0
|
5月前
|
网络协议 网络架构
【网络编程入门】TCP与UDP通信实战:从零构建服务器与客户端对话(附简易源码,新手友好!)
在了解他们之前我们首先要知道网络模型,它分为两种,一种是OSI,一种是TCP/IP,当然他们的模型图是不同的,如下
201 1
下一篇
无影云桌面