從零開始部署 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 modyum 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上的整個系統備份下來?