通过本文,你将了解到如何在阿里云ECS上基于LNMP架构搭建一个自己的博客系统。这里我们选择了使用LNMP一键安装包和EMLOG博客系统。
准备ECS和基础环境
从ECS控制台开始
概览
打开阿里云控制台首页,点击“最近使用的服务”->“云服务器ECS”即可进入云服务器管理控制台,你对ECS的所有控制操作,都将通过这个控制台发起。在概览页面中,你可以看到账号下的ECS资源。
实例列表
在我的资源板块中,可以看到各个可用区(地域)下的ECS资源情况。我们可以点击左侧导航“实例与镜像”中的“实例”,查看实例列表。
在实例列表中你可以看到实例名称、可用区、IP地址、状态、网络类型、配置等信息,还可以对ECS执行管理、升降配置等操作。点击管理可以看到实例的详情。
一般情况下,在创建ECS的时候会安装一个操作系统,为方便实验,我们统一将操作系统更改为CentOS7.3。
安装(更换)操作系统
※提示:更换操作系统,需要先关闭ECS,更换操作系统,原系统盘会被释放掉,原系统内的数据将会丢失且无法找回,请谨慎操作哟。
进入实例“详情页面”,先关闭ECS,然后选择“配置信息”->“更多”->“更换操作系统”,同意协议,进入“操作系统更换”页面。
按照下面列表选择操作系统。
镜像类型:公共镜像公共镜像:CentOS 7.3 64位,勾选安全加固系统盘:保持默认安全设置:自定义密码登录密码:自定义一个8-30个字符且同时包含大小写字母数字和特殊符号的密码。这个密码将成为系统root用户的密码,非常重要
待ECS重新开机,系统就重装好了。
调整安全组
安全组是一种虚拟防火墙,通过安全组规则可以控制ECS的入流量和出流量。默认安全组会拒绝一切流入ECS的流量,即你将不能访问你的ECS。
在“实例详情”页面点击左侧“本实例安全组”,并进入“安全组列表”,在创建ECS的时候会有一个默认的安全组,我们直接修改这个安全组就可以了。点击“配置规则”
※在生产环境中,不建议在安全组内放通所有端口,这将带来安全上的风险。
我们要搭建的是一个博客,对外提供Web服务,所以需要放通以下端口
HTTP 80端口HTTPS 443端口SSH 22端口(在不运维ECS的时候,可以关掉本端口)MySQL 3306端口(不需要远程访问MySQL的时候,可以关掉本端口)
通过“快速创建规则”功能,创建安全组条目。因为默认情况下出方向是完全放通的,所以无需调整安全组内出方向的规则。
连接到你的ECS实例
这里我们使用Putty连接到ECS实例,Putty是一个非常小巧的连接工具,支持SSH、Telnet等协议。
官网地址:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html 直接下载Putty绿色版的就好了,几十KB非常轻巧,方便便携使用。
打开Putty,Host Name填写ECS的IP,Port 22,Connection type SSH,Open发起连接。如果是第一次连接到ECS,会弹出一个提示,选是即可。
填写用户名root,密码即重装系统时配置的密码。填写密码时是不回显的,不影响。登录到如下Shell界面,即连接成功了。
恭喜你,本关通过,下一关等着你~
构建LNMP环境
LNMP即为Linux+Nginx+MySQL+PHP环境的简称,本节我们将使用LNMP集成脚本一键在ECS上安装Nginx、MySQL和PHP的环境。
在Shell中执行如下命令开始安装:)
wget http://soft.vpser.net/lnmp/lnmp1.6.tar.gz -cO lnmp1.6.tar.gz && tar zxf lnmp1.6.tar.gz && cd lnmp1.6 && ./install.sh lnmp
选择MySQL版本,这里选择4,MySQL 5.7.26
指定一个MySQL的root密码,注意这个密码不是连接服务器时候输入的root密码~这里,我将MySQL的root密码设置为aliyun
是否启用InnoDB?默认即可,输入y
选择PHP版本,这里选择8,PHP 7.2.19
是否安装MemoryAllocator?默认不安装,1
OK,所有问答题完成了,按任意键开始安装!如果有哪些选项选错了,可以按住Ctrl+C退出重新来过~
编译安装需要一些时间。不要理他,他会自动完成。Waiting~
弹指一挥间,安装完毕~
这里可能会一直卡在Install lnmp V1.6 completed! enjoy it.不自动退出,可以按Ctrl+C退出。在这个集成环境里还给我们提供了phpmyadmin、phpinfo等工具可以直接使用。
第一张网页
用浏览器打开 http://ip,是不是看到了如下的页面呢,恭喜你,你已经成功在ECS上部署了一个网站环境~
安装EMLOG博客系统
※注意:为ECS绑定域名,域名需要提前做好备案操作,关于域名的备案问题请移步:https://beian.aliyun.com/
这里我找了一个已经备案好的域名进行操作,我的博客将可以通过这个域名访问。域名地址是blog.aliyun.test.16iot.cn。由于这个域名直接使用的是阿里云的智能DNS,我们直接在DNS控制面板上添加一条解析记录,指向我们这台ECS即可。
emlog官方网站:http://www.emlog.net/,为方便大家下载安装,我把安装包放到了云盘上,可以直接下载使用。
创建虚拟主机
一台ECS并不是只能搭建一个站点,启动虚拟主机功能,给你的ECS来个影分身,通过虚拟机功能,可以在一个ECS上架设多个站点,你可以通过不同域名或者端口号区分它们。
在Shell中执行如下命令,来创建一个虚拟主机。
lnmp vhost add
同样的,你需要做一个简单的问答。
输入你虚拟主机的主域名,这里就是blog.aliyun.test.16iot.cn,你的域名是什么就怎么写。输入附加域名,比如我的主域名是dom.cn,这里还可以写www.dom.cn等域名,我就只有一个域名,这里留空。网站路径:默认,你可以自定义路径开启重写:默认,关闭开启PHP Pathinfo:默认,关闭开启访问日志:默认,关闭创建MySQL数据库:是,输入y,接下来输入数据库root账户密码,创建数据库名和数据库用户,并指定一个密码,这里我的数据库名和用户名均是blog,密码是alibaba
※注意:这里不建议用虚拟主机中站点使用root账号链接数据库,这可能会带来潜在安全风险。
是否启动SSL:默认,输入n
按任意键创建虚拟主机,如图,则表明创建成功了,页面中的Home Directory就是虚拟主机的根目录,下一步下载emlog源码时需要使用这个目录地址。
下载emlog源码
在Shell中执行如下命令,这里/home/wwwroot/blog.aliyun.test.16iot.cn是我创建虚拟主机的根目录,你需要换成自己的,即上一步中的Home Directory。
cd ~
mkdir temp
cd temp
wget http://download.txisfine.cn/share/emlog_6.0.0.zip
unzip emlog_6.0.0.zip
cd emlog_6.0.0
cp -r src/* /home/wwwroot/blog.aliyun.test.16iot.cn
chown www:www -R /home/wwwroot/blog.aliyun.test.16iot.cn/*
安装emlog
使用浏览器访问刚才绑定好的域名,将自动跳转到EMLOG的安装页面,填写表单,开始安装。
如图所示,安装完毕,开始书写博客,Enjoy EM :)
开始撰写博客
本博客系统分前后台,可以通过 域名/admin 的地址登录后台,后台如图所示。可以根据菜单提示,开始配置你的
拓展
SSL给你的网站加把锁
SSL证书通过在客户端浏览器和Web服务器之间建立一条SSL安全通道,使你网站看起来更加安全,更加有Bigger~现在一些浏览器已经开始对只支持HTTP服务的网站标记“不安全”,为了更好的推广SSL技术,阿里云为我们提供了免费的SSL证书申请。※注意:只能对域名申请证书,请不要尝试对IP申请证书哟~
申请证书
登录阿里云控制台首页,找到“SSL证书(应用安全)”,进入SSL证书“概览”页面,点击购买,创建订单,选择“个人版”证书。
完成这个订单,回到证书控制台,点击“证书申请”开始申请证书。
填写申请表单,由于我的域名DNS就在阿里云可以直接验证,同时你也可以用其他两种方式验证,CSR生成方式,直接系统生成就好了,下一步进入验证信息页面,验证通过后,提交审核。
一般审核会很快,你可以通过证书控制台下载你的证书。证书文件包含私钥,请务必保护好~这里我们下载适用于Nginx版的证书文件。
安装证书
把证书传到服务器上,这里我们选择手工复制的方法上传。证书的文件名和下载下来的证书包保持一致即可。这里3506393_blog.aliyun.test.16iot.cn是我的证书名,你需要换成自己的。登录ECS服务器,在Shell中执行
cd /home
mkdir ssl
cd ssl
vi 3506393_blog.aliyun.test.16iot.cn.key
按i进入改写模式,粘入Key文件,按esc退出改写模式,输入:wq,保存并退出。
vi 3506393_blog.aliyun.test.16iot.cn.pem
同样的道理,将pem文件也上传上去。
lnmp ssl add
添加SSL证书,还是回答一个简单的问答。
前面和创建虚拟机时保持一致即可,在最后输入1,选择自己的证书文件,并输入证书文件的完整路径,回车提交即可,会重新启动Nginx服务。
在EMLOG修改你的博客地址,启用带HTTPS的地址。这里如果不修改,访问站点可能将无法加载样式。