我目前的 blog 是搭建在 vultr 的东京节点 vps 上,使用的服务端架构如题。
讲道理考虑到国内的墙的问题,如果只是个人使用的 blog 还是建议找个国外服务器。
下面是步骤= =
首先在 vultr 上添加一个新的 centos7 的 vps 。
这一步就不细说了,添加完进入 vps 之后,为了方便(安全问题目前不考虑),直接使用root权限进行所有操作。
1.更新所有软件
yum update -y
2.安装apache
yum install httpd -y
3.安装php(目前的版本为php5.4,以后【可能】会新写一篇文章讲怎么部署更高版本的php 如 7.0)
yum install php -y
4.安装 mariaDB
yum install mariadb mariadb-server -y
5.启动mariaDB
systemctl start mariadb
6.初始化mariaDB
mysql_secure_installation
按照提示依次配置即可,推荐配置为全部 Y
7.安装php连接数据库的插件
yum install php-mysql -y
8.启动apache服务器
systemctl start httpd
到这里, php + apache + mysql 的服务器就配置完成并启动了
但是由于 centos7 的自带防火墙的阻挡,目前无法通过 ip 地址访问。
所以接下来要设置 centos7 的防火墙,让其能放过 apache 的流量
http 服务走的是 80 端口, 后面要配置的 https 服务走的是 443 端口,因此需要打开 80 端口和 443 端口的 tcp 服务,如果想要将 ssh 端口从默认的 22 改为其他的 (例:9999) , 也要将其开放
9.配置防火墙
firewall-cmd --add-port=80/tcp --zone=public --permanent
firewall-cmd --add-port=443/tcp --zone=public --permanent
firewall-cmd --add-port=9999/tcp --zone=public --permanent
firewall-cmd --reload
--add-port 一眼就能看懂在干啥
--zone=public 是表示作用范围(全局)没设置过其他选项,也懒得看 help。。。
--permanent 表示永久保留,不带这一项重启以后就没了= =
最后一行的作用是重载防火墙,让其生效。此时就已经可以通过 ip 访问服务器了。
10.设置开机启动
讲道理,centos7 的各种设置相当方便,把 apache , mariadb 和 防火墙设置开机启动的命令也相当简单(php不需要单独启动,其通过apache被调用)
systemctl enable httpd
systemctl enable mariadb
systemctl enable firewalld
11.准备配置 https
配置 https 不推荐使用纯 ip ,建议去狗爹买个域名, 我这个 xyz 的域名一年才 1刀。。。
买完配置完 dns 之后就可以开始搞 https 了
首先安装 apache 的 ssl mod
yum install mod_ssl -y
重启 apache
systenctl restart httpd
重启完毕之后,应该就可以通过 https://ip 或者 https://domain 的方式访问加密站点了,但是由于 apache 自带的证书属于自签名证书,不被浏览器所信任,因此一般会直接阻止掉。
此时有钱人可以去买付费证书服务,像我这种不想花钱的人推荐使用 Let's Encrypt 的免费证书(其他的免费证书如果你找得到也可以,但!是!鉴于国内公司的尿性(大概是从CNNIC遗传下来的),不推荐使用国内公司的证书,包括付费证书,以免万一哪天就被吊销了)
12.使用 Let's Encrypt 的免费证书
点此进入 Let's Encrypt 官网
Let's Encrypt 给不同服务器提供了自动部署工具,称作 certbot 点此进入官网
在这里选择 I'm using Apache on CentOS/RHEL 7
然后根据提示一步一步来就行了。
centos7 默认是没有这个工具的源的,使用下面这个命令添加
yum install epel-release -y
然后安装自动部署工具
yum install python-certbot-apache -y
安装完毕之后使用该工具部署https
certbot --apache
按照配置一步一步来就行了
最后重启 apache 就大功告成啦~
systemctl restart httpd
然后就可以使用 https 访问网站了~~~
=== EOF ===
写了一篇科普类文章之后我就一发不可收拾了。。。