用了几乎一周半的空闲时间终于把网站搭建起来了,今天找个机会记录一下。
如果你想搭建网站,并且是基于 WordPress 搭建,那么这篇文章就是你可以获得的最佳指南。它包含了主机的购买、域名的申请和备案、服务器环境的搭建、Wordpress 安装和主题的选用、SSL 证书申请和配置、OSS 保存网站资源、DCDN 全站加速配置、邮件推送服务配置、自定义页面表单创建、多站点 WordPress 配置…
我们的三个网站是:
https://dev-union.cn这里是我们的总站,发布与编程语言无关和写代码之外的教程/文章,分享一些自制或开源的电子书等其他资源,提供一些其它服务,如建站。可通过网站的 反馈&留言 功能与我们取得联系。https://java-union.cn发布 Java 生态的有关文章/教程等。https://go-union.cn发布 Go 生态的有关文章/教程等。准备工作
*如果没有历史遗留问题,是从零做起的话,我强烈推荐所有的服务都使用阿里云。原因就是,阿里云在全球云服务商位居第三,亚太地区第一,稳定性自然没得说,还有就是工单处理流程非常人性化,在整个网站搭建过程中,你甚至不需要看这个教程,直接发起一个工单就可以,遇到问题直接咨询,特别是全站加速,SSL证书申请、部署等与阿里云直接相关的问题,都会有专门的工程师为你解答。
准备阶段的主要工作有:阿里云账号注册 => 域名注册与备案 => 服务器购买 => LNMP环境搭建。
简单工作
账号注册、域名注册和服务器购买有手就行,我这里推荐购买阿里云的轻量应用服务器(2C4G配置),域名注册和备案越快越好,这里涉及到有关部门的审批,所以速度就会慢。
需要特别说明的是,各地区域名 ICP 备案要求是不一样的,可以先百度 各省ICP备案要求 查看,选一个方便且容易的,一般都选择自己的常住地即可。ICP 备案之后还需要进行公安备案,这个就更麻烦了,一般不推荐去做,免得气到自己,除非公安机关联系你备案。
LNMP 环境搭建(Wordpress 镜像)
这里我优先推荐使用 WordPress 的应用镜像(包含 LNMP 环境),选择最新版。
WordPress 应用镜像
初次之外你也可以选择系统镜像,我推荐使用 CentOS 镜像,还是选择最新版。
CentOS 镜像
如果你选择的是 WordPress 镜像,在安装完成之后你通过外网 IP 就可以看到。
WordPress 镜像安装效果
这种安装,已经为你默认生成了管理员密码,数据库名前缀,用户名和密码等等一切要初始化的东西,所以你还需要登录服务器去获取它的默认值。在 应用管理 => 应用镜像 下可以查看具体操作步骤。
操作步骤
在阿里云控制台登录服务器不是很方便,每次需要手机验证,所以我建议设置 root 密码后用专业的工具进行登录。登录后执行复制的命令(命令可能会变,以控制台显示为准),结果如下:
操作结果服务器连接
要想通过客户端连接服务器就先要设置密码或者密钥,密钥的设置可以参考阿里云文档,密码设置就更简单了,就不详说了。
设置密码
连接服务器的客户端可以选择 Putty,涉及到文件传输可以使用 WinSCP,这两个工具都是免费的,去官网下载,免得使用 xshell 破解版。
Putty:https://www.chiark.greenend.org.uk/WinSCP:https://winscp.net/
下载的时候一定要认准官网,别被百度带到垃圾站点下载一些盗版软件。
截至目前,你已经可以使用 IP 对站点进行访问,这主要是 WordPress 镜像帮助我们做了大部分工作。
域名相关操作
如果你不想让网站使用主域名,那就需要通过添加子域名来进行解析。由于在本教程中会涉及到较多的子域名,所以下面我假设你的主域名是 www.user.cn。如果你需要使用子域名访问网站,那就先需要添加子域名,然后进行解析。本次教程中会涉及到的所有子域名有:
site.user.cn子站点。如果你不想使用主域名访问你的站点的话可以添加子域名,在后面讲多站点 WordPress 的时候也是通过添加子域名进行访问的方式。cdn.user.cn用于全站加速file.user.cn用于 OSS 内容访问email.user.cn用于邮件推送添加子域名
首先在进入阿里云控制台,再搜索进入 云解析DNS 控制台,如下图。
云解析 DNS 控制台
添加解析
记录类型按照提示选择,主机记录复制粘贴过来,记录值也是。TTL 选择默认,不用修改。像这样的操作后面会进行很多次,不会再重复解释。
网站的解析直接再新手引导里面,添加 IP 即可完成解析。之后通过域名访问,如下:
域名访问
按照类似的方式把所有的子域名全部添加完成,之后我们进行相关域名的 SSL 证书申请与配置。
SSL 证书申请与配置
有的证书如 OSS 证书、全站加速证书都可以直接在阿里云控制台操作部署,流程相对简单,这里主要说一下部署网站的 SSL 证书。
网站 SSL 证书部署
为网站对应域名申请好 SSL 证书之后,将证书下载下来,这里你应该下载 Nginx 证书,下载完成之后把压缩包解压出来,你会得到两个文件,分别是 .pem 和 .key。然后打开 WinSCP 按照下面的目录结构将这两个文件上传到 /usr/local/nginx/conf/ssl 目录下(不要修改文件名),如下图所示:
上传 SSL 证书
然后还是在 WinSCP 中操作,进入 /usr/local/nginx/conf/vhost 修改 wordpress.conf 文件内容,如下图所示:
。完成之后重启 nginx,再通过 https 访问就是有证书的效果了。
多站点准备工作
现在,你的主站点已经可以访问了,如果你想多开站点,就先去 /data/wwwroot 目录下,把 wordpress 复制保存一份,保证该文件内容的纯净性,不然之后新开的站点会包含一些其它内容。
OSS 开通
OSS 用于存储一些网站资源,如图片,视频等,可以减轻服务器压力。进入阿里云控制台,搜索 OSS 开通后进入 OSS 控制台。按照下图所示创建一个 Bucket。
创建 Bucket
创建Bucket
Bucket 名称自定义。地域选择尽量保证和 服务器的地域 一致,这样可以使用内网传输,不消耗额外的流量。存储类型选择标准存储,读写权限选成 公共读。其它选项使用默认的即可。
如果忘记服务器地域的话可以去控制台查看,如下所示:
服务器Region查看绑定域名
按照下图为 Bucket 绑定域名,域名是之前添加的 OSS 子域名。选择 自动添加 CNAME 记录。
Bucket 绑定域名常见问题
一个 Bucket 你可以看成是一个独立的存储空间,里面可以放无限多的内容,按照你的习惯可以建立符合自己逻辑的文件目录用以管理不同的文件。
全站加速
搜索 全站加速,开通之后进入全站加速控制台。首先添加全站加速域名,如下图:
全站加速域名绑定
按照提示操作即可。
邮件推送
现在买的云服务器一般都是不能发送邮件的,即使能发,可靠性远不如专业的邮件推送服务商,这里可以选择可通阿里云的邮件推送服务。
邮件推送配置
也是按照提示配置即可。
主题和关键插件推荐
选择插件可以从以下几个便准判断:安装人数,更新频率,评分,个人还是社区团队开发,是社区还是官方开发等等。
krators 主题
http://help.xiaoyou66.com/1316806 这是一个基于别人主题魔改的二次元类型主题,虽然具有强烈的二次元风格,但使用起来还是不错的,图片、功能都可以自定义,不需要的可以删掉。
需要注意的是,从 github 下载后的 zip 包名称会变成 kratos-master,需要你解压缩后把文件名改成不带 master 的,然后再压缩成 zip 包,最后上传主题进行安装。
主题使用过程中有不懂的就多看看文档。
WP Githuber MD隐藏登录
默认的 WordPress 后台管理页面是 /wp-admin,通过这个插件可以改变这个路径,防止别人能够不断尝试破解进入后台,增加一定的网站安全性。
搜索 WPS隐藏登录 即可安装,配置后立即生效。
表单创建
通过表单我们可以收集用户的一些建议或者需求,并且结合邮件推送使得站长能够实时了解情况。
搜索 Contact Form 7 安装即可。
Contract Form 7邮件推送
OSS 文件上传
安装 OSS Aliyun 插件即可实现文件的上传。建议按我的配置进行配置。如下图:
OSS 插件配置
OSS 插件配置续
提示:使用该插件的时候,如果需要上传安装自定义主题,或者插件时,一定要先把这个插件禁用,不然会有一部分文件上传到 OSS。
多站点配置
我这次采用的多站点配置是 多站点——单数据库,以前缀区分不同站点的表。
使用 WinSCP 连接到服务器,进入到 /data/wwwroot 目录,复制之前的 wordpress 备份,命名为 wordpress_xx。进入 wordpress_xx,修改 wp-config.php 文件 的 $table_prefix = ‘xx_’; 配置项,xx 就是你的新站点的数据库表前缀名。
再就是修改 nginx 配置文件。先把为子域名申请的 SSL 证书上传到 /data/usr/local/nginx/conf/ssl 目录下,然后去 /data/usr/local/nginx/conf/vhost 把原先的 conf 文件复制一份,重命名,进入修改以下证书名和 rewrite 配置,以及服务名。最后把 /data/usr/local/nginx/conf/rewrite 目录下的 rewrite 也相应复制一份,能和 conf 配置的 rewrite 对应即可。
重启 nginx,通过域名访问就可以进入新的站点。
总结
内容有点多,操作步骤非常繁杂,在实际操作过程中如果你遇到任何问题可以在我们的网站 反馈&留言 功能下联系我们处理。