PHP 个人博客程序的建站步骤
wordpress
、zblog
都是基于 PHP 搭建的博客程序,建站流程大同小异。这篇文章里把一些步骤要点记录下来,方便以后查阅。
购买域名
- 挑选域名很耗时间,尽早行动
- 尽量选择
.net
、.com
这类常规域名,新后缀虽然便宜但不好记 - 在万网找到
万网预释放
,可以竞拍即将满期释放的域名,偶尔能淘到一些好货。
购买服务器
- 阿里的突发性能实例 T5 只给了 10% 的基准性能,喜欢折腾者慎用
- 购买 ECS 可以完全掌控服务器,方便后续学习
域名备案
- 备案分两种,
ICP备案
和公安备案
- 在
ICP备案
完成之前无法通过域名访问网站,这意味这后续申请SSL
证书、配置CDN
都无法完成。 - 每种备案都大概需要 7-30 个工作日,尽早进行
ICP备案
类型 | 备案限制 | 审核时长 |
---|---|---|
ICP 备案 | 完成 ICP 备案才能域名解析和设置 CDN | 7-30 个工作日 |
公安备案 | 完成 ICP 备案的 30 天内提交公安备案申请 | 7-30 个工作日 |
配置安全组
- 一个服务器允许加入多个安全组,一个安全组允许配置多个服务器
- 安全组策略之间根据权重判断优先级,最高等级 1,最低等级 100
- 建议完成服务器购买之后马上建立并配置
基本安全组
和全局黑名单
类型 | 作用 |
---|---|
基本安全组 | 常规的安全组策略,初始策略建议只开放 22 端口,避免暴露服务器 |
全局黑名单 | 快速屏蔽恶意 IP |
配置服务器
Windows
平台使用Xshell
和Xftp
管理服务器- 登陆服务器之后
升级CentOS
并修改SSH端口
依次执行以下指令升级 CentOS
1 | $ cat /etc/redhat-release //检查当前centos版本号 |
按照以下步骤修改 SSH 端口
- 在
基本安全组
为本地 IP 开放新端口号,比如13579
- 登录
Xftp
编辑/etc/ssh/sshd_config
文件,去掉#Port 22
一行开头的#
号,改为Port 13579
,保存后退出 - 返回
Xshell
输入service sshd restart
重启sshd
服务
可以通过 netstat -natlp
检查 SSH
服务是否侦听到了新端口,如果出现 0.0.0.0:13579
,即表示修改生效。
更改 SSH 端口号后建议删除默认 22 端口策略,若默认策略无法删除,可以新建一条策略屏蔽 22 端口,设置权重值高于原有 22 端口。
申请域名证书
Let’s Encrypt
通过acme.sh
生成免费证书并自动更新OneinStack
一键安装包自带的acme.sh
配置不能灵活处理泛域名- 建议先完成证书申请,再配置 LNMP 环境
在阿里云控制台创建 RAM
子账户,分配 AliyunDNSFullAccess
权限,获取 AccessKeyID
和 AccessKeySecret
,然后 SSH 到服务器:
1 | # 下载安装 acme.sh |
acme 将自动向服务器添加 TXT 记录并验证,中间会倒计时 120 秒等待解析生效。
搭建 LNMP 环境
- 使用整合包快速搭建 LNMP 环境,节省时间
- 个人习惯使用
oneinstack
,因为更新快 - 使用方法见 官方网站
1 | yum -y install wget screen |
- 网络上很多爆破攻击,需修改数据库路径
- 删除各类自带探针,或全部改名,避免暴露服务器信息
1 | # 以oneinstack为例 |
创建 vhost
- 用
vhost
可以在一台服务器配置多个网站 oneinstack
自带vhost
配置- 具体的操作方式见官方指引
由于前面申请了域名证书,在创建 vhost 时有几个选项要指定
- 选择
Use your own SSL Certificate and Key
- 选择添加更多域名,选择
n
- 强制把
http
请求都转发到https
配置 SSL 证书
将泛域名证书配置到 vhost
,避免使用 xftp
直接复制的方式,不然以后域名证书自动续期时不会更新到站点目录下
1 | # 换成自己的域名 |
找到 /usr/local/nginx/conf/vhost/www.imczw.com.conf
,修改 ssl_certificate
和 ssl_certificate_key
两个字段
1 | ssl_certificate /usr/local/nginx/conf/ssl/fullchain.cer; |
之后重启 nginx
1 | service nginx restart |
配置 CDN
- CDN 除了加速访问,还能隐藏服务器真实 IP 避免攻击。
- 阿里云全站加速会自动将静态文件缓存,动态文件通过软路由获取最佳路径,省事
- 由于前面通过
vhost
搭建网站,直接访问服务器 IP 不会回源到博客所在目录,需要设置回源host
- 在全站加速控制台,添加
www.imczw.com
域名,源站信息填写服务器外网IP
,443
端口。 - 进入
配置
-回源配置
,设置回源HOST
为创建vhost
时填写的域名。 - 进入
配置
-HTTPS配置
,选择证书类型为自定义
,内容和私钥分别填写fullchain.crt
和*.imczw.com.key
的内容,实现证书托管。 - 系统分配域名为
www.imczw.com.w.kunluncan.com
,把www.imczw.com
CNAME 到该地址
为了节省带宽和服务器资源,可以把 OSS 作为图床,为图床分配另一个静态加速地址并配置 CDN 加速。
上传博客程序
- 通过
{服务器IP地址}/修改后的phpMyAdmin文件夹
,登陆phpmyadmin
- 新建一个数据库,排序选择 utf8-general-ci
- 将博客程序上传到
vhost
地址/data/wwwroot/www.imczw.com
- 通过域名访问博客,链接第 6 步新建的数据库,完成搭建配置
- 如果后续有改动到该文件目录下的内容,记得重新分配授权组
1 | chown -R www /data/wwwroot/www.imczw.com |