標籤:

從零開始部署 CentOs7 + Apache + PHP + mariaDB + https

歡迎訪問 Pi.1415926 【日本節點,不甚穩定。。。】

我目前的 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 --permanentfirewall-cmd --add-port=443/tcp --zone=public --permanentfirewall-cmd --add-port=9999/tcp --zone=public --permanentfirewall-cmd --reload

--add-port 一眼就能看懂在幹啥

--zone=public 是表示作用範圍(全局)沒設置過其他選項,也懶得看 help。。。

--permanent 表示永久保留,不帶這一項重啟以後就沒了= =

最後一行的作用是重載防火牆,讓其生效。此時就已經可以通過 ip 訪問伺服器了。

10.設置開機啟動

講道理,centos7 的各種設置相當方便,把 apache , mariadb 和 防火牆設置開機啟動的命令也相當簡單(php不需要單獨啟動,其通過apache被調用)

systemctl enable httpdsystemctl enable mariadbsystemctl 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 自帶的證書屬於自簽名證書,不被瀏覽器所信任,因此一般會直接阻止掉。

此時有錢人可以去買付費證書服務,像我這種不想花錢的人推薦使用 Lets Encrypt 的免費證書(其他的免費證書如果你找得到也可以,但!是!鑒於國內公司的尿性(大概是從CNNIC遺傳下來的),不推薦使用國內公司的證書,包括付費證書,以免萬一哪天就被吊銷了)

12.使用 Lets Encrypt 的免費證書

點此進入 Lets Encrypt 官網

Lets Encrypt 給不同伺服器提供了自動部署工具,稱作 certbot 點此進入官網

在這裡選擇 Im 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 ===

寫了一篇科普類文章之後我就一發不可收拾了。。。

如果有人覺得我污染了你們的 timeline 還請見諒【手動笑哭


推薦閱讀:

基於Web日誌數據處理的網站KPI分析系統(Un)
在 CentOS 7 上搭建屬於自己的 「完美」 郵件系統
【技術人快報】摩拜單車多地區現Bug+iCloud完成中國本土化落地
CentOS7搭建 Hadoop + HBase + Zookeeper集群
如何把VPS上的整個系統備份下來?

TAG:CentOS | Apache | SSL |