项目简介
通过使用腾讯云多种产品(CVM、CDN、CDB、COS、SSL证书)并配合使用知名 CMS 系统 WordPress,从无到有打造一个自己在互联网空间中的自留地。
项目架构
CDN(内容分发网络)、COS(对象存储)、CDB(云数据库)、SSL证书为非必选功能,下文演示环境中将分别讲解完整拓扑模式的配置以及最基础模式的配置(仅云服务器)。
战前准备
- 拥有一个已经在腾讯云备案成功的域名。
- 开通一台 CVM 机器,并且将IP、账号、密码记录在一个文档中。
战斗开始
教程所使用的机器为腾讯云公共镜像中的 CentOS 7.2 64位 版本镜像,并且购买了云硬盘来单独存储业务网站程序,搭建生产环境则使用了 OneinStack 的一键 LNMP(Linux + Nginx+ MySQL+ PHP) 工具。
1.首先登录我们的云服务器,更新并添加依赖以及开发者工具
yum -y update && yum -y groupinstall "Development Tools"
2.挂载并使用云硬盘作为数据盘使用
wget https://soft.vtrois.com/scripts/auto_fdisk.sh
chmod +x auto_fdisk.sh
./auto_fdisk.sh
注意:Step 3 中需要填入需要自动挂载的云硬盘,Step 5 中需要填入需要挂载的位置,因为 OneinStack 默认的数据位置为 /data 所以这里填入 /data 等待脚本执行完毕即可。
3.下载并使用 OneinStack 的一键 LNMP 工具搭建生产服务器
yum -y install wget screen curl python
wget http://mirrors.linuxeye.com/oneinstack-full.tar.gz
tar xzf oneinstack-full.tar.gz
cd oneinstack
screen -S oneinstack
./install.sh
说明:为了安全起见第一步中我把SSH默认的 22 端口修改为 53185 ,第二步中我选择只安装 Nginx 服务(这里选择的是 OpenResty 的编译版本),第三步中选择安装数据库版本(我这里选择的 MySQL5.6 的稳定版本,如果使用云数据库则不用选择安装数据库服务),第四步中选择安装 PHP 的版本(这里我选择的是最新的7.1版本),大家可以选择 WinSCP 工具来代替 FTP 工具,配置结束之后会有一个重启服务器的选项。
4.新建并配置虚拟机
说明:使用 ./vhost.sh 命令运行新建虚拟机脚本,第一步选择是否启用 SSL 协议(如果不需要则输入 n),第二步填入已经备案好的域名,第三步选择是否强制跳转 https (如果第一步输入了 n 则此时不会出现这一步),第四步开启 wordpress 伪静态功能,等待配置完成即可。
5.新建数据库(如果使用云数据库将不用进行此步)
使用搭建 LNMP 环境时选择安装 phpMyAdmin 工具的 root 账号登录,登录地址为外网IP/phpMyAdmin(例子:123.206.66.153/phpMyAdmin),新建一个名为 blog 的数据库,然后再新建一个普通用户 vtrois 并且把 blog 库的权限赋给他,这里也可以使用 SQL 命令操作(这一部也是为了让你的数据能更安全,当然最安全的方案还是使用站库分离的方法以及读写分离的方法,站库分离将使用到云数据库)。
GRANT ALL PRIVILEGES ON `blog`.* TO ‘vtrois‘@‘%‘ WITH GRANT OPTION;
6.配置并导入使用SSL证书(非必须)
在控制台的云产品分类中找到 SSL证书管理 ,点击申请证书即可申请一张免费一年的 TrustAsia DV SSL CA - G5 证书,身份验证选择自助DNS验证,根据给出的提示绑定 CNAME 记录并等待后台自动验证,申请成功会得到一套证书文件,这里我们选择 nginx 环境使用的证书,并且把得到的证书改名为 域名.crt 和 域名.key 的格式,例如:(qcloud.vtrois.com.crt 和 qcloud.vtrois.com.key),然后再将改名后的证书上传到服务器 /usr/local/openresty/nginx/conf/ssl 中并替换原有文件,最后在终端执行重启 Nginx 服务命令即可。
service nginx restart
7.配置使用云数据库(非必须)
云数据库会免费为大家提供一个从库,从而达到主从同步的不间断服务,并且支持 3 天内任意时间段的回档以及 5 天内的冷备数据下载,高配版还可以开通只读实例从而实现读写分离,简直是亲民的良心产品,省去了不少维护时间。同样在购买数据库实例之后初始化创建默认 root 账号的密码,进入控制台建议大家跟自建数据库一样新建一个普通账号来管理单独的数据库文件(这个过程在云数据库控制台都可以按照产品说明文档完成)。
注意:云服务器要和云数据库选到同一个地域同一可用区下,否则数据是不能互通的哦,但是目前广州一区与广州二区是可以互通的。
8.下载并安装 WordPress 程序
cd /data/wwwroot/qcloud.vtrois.com
wget http://wordpress.org/latest.tar.gz
tar xzvf latest*
cd wordpress*
sudo rsync -avz . /data/wwwroot/qcloud.vtrois.com
cd ..
rm -rf latest.tar.gz
rm -rf wordpress
sudo chown -R www /data/wwwroot
sudo chgrp -R www /data/wwwroot
在浏览器中打开站点 qcloud.vtrois.com 即可进入 WordPress 安装界面,第一步配置数据库信息,其中 Database Host(数据库主机) 为数据库地址,如果使用本地自建数据库则使用默认 localhost 即可,如果使用云数据库则填写数据库的内网ip点击提交即可。
在下一步中将配置站点信息,密码建议使用自动生成的密码,然后点击安装即可。
说明:第一个 cd 命令进入新建的域名目录(这里我用的是 qcloud.vtrois.com), chown 和 chgrp 命令为修改文件或目录所属的用户和组。
9.开启 CDN 内容分发功能(非必须)
由于我们的站点搭建在一台服务器上,他的物理位置是固定的,比如我选购的是北京机房的机器,然而用户在南方深圳访问,那么在这个访问过程中就会有一定的延迟,这时我们就可以选择使用 CDN 服务来优化这个过程,同时也可以使用 CDN 服务来抵抗源站被 DDoS 从而造成的网络瘫痪和服务不可用的问题。
说明:缓存配置可参考上图的配置设置,关于强力抵抗 DDoS 可以参考下图的配置设置(阀值的设置可以根据正常访问量调整),如果开启了 SSL 则需要在证书管理中添加证书并绑定到域名。
10.正确合理配置安全组,不给黑客留机会
说明:根据我们之前配置的 SSH 端口 53185,以及 Nginx 的 80 和 443 端口来配置安全组,同时我们在搭建 LNMP 环境时,系统默认新建了测试页面(在 /data/wwwroot/default 中的 index.html、ocp.php、phpinfo.php、tz.php)我们需要删除掉,如果需要使用 phpMyAdmin 切记不要删除 default 中的 phpMyAdmin 文件夹。
本文转载自腾云阁,已获得作者授权。