手把手帶你搭建個人網(wǎng)站!博客、域名統(tǒng)統(tǒng)搞定
前言
哈嘍大家好,我是莫提。
最近搞了一臺新的云服務器,服務器上面現(xiàn)在啥都沒有,正好給大家介紹一下我是怎么從0搭建出自己的個人網(wǎng)站。
我現(xiàn)在這個服務器是騰訊云的輕量應用服務器,這個其實不重要,只要你有一臺云服務器就可以。重要的是這個Linux系統(tǒng),或者說是Linux系統(tǒng)的發(fā)行版本,因為不同的發(fā)行版本在使用命令的時候,會稍微有一點區(qū)別,那么這里注意一下,我使用的Linux系統(tǒng)的發(fā)行版本是CentOS7。
我的博客:www.xuewei.world
配置服務器的基礎環(huán)境
當你購買完服務器之后,你就可以知道這個服務器的公網(wǎng)IP,然后需要你配置root用戶的密碼。配置完成之后,你就可以使用ssh來登錄到這臺服務器了,Windows用戶可以使用Putty、XSheel等軟件來連接服務器,Mac用戶可以使用Termius或者蘋果電腦自帶的終端工具來連接到服務器。

之后我們需要做的一件事是把系統(tǒng)軟件的鏡像源配置成國內(nèi)鏡像,這樣在下載軟件的時候就會快很多了。
可以參考的我個人博客里面的這篇文章:
http://xuewei.world/categories/linux

更新完鏡像源之后,我們需要安裝Docker,安裝方式也很簡單,自行百度或者參考的我個人博客里面的這篇文章:

之后服務器的基礎環(huán)境就可以OK了
安裝MySQL數(shù)據(jù)庫
博客的數(shù)據(jù)肯定是要存在數(shù)據(jù)庫里面的,數(shù)據(jù)庫我選擇的是一般接觸最多的MySQL數(shù)據(jù)庫,安裝方式也很簡單,這里我直接使用Docker來安裝一個。
依次執(zhí)行下面的命令即可
# 拉去鏡像
docker pull mysql:5.7
注意下面的命令需要指定MySQL的密碼,我這里以123456為例,為了安全起見,你一定要改一個比較復雜的密碼!
# 運行鏡像
docker run --restart=always -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
安裝成功之后使用docker ps命令查看當前正在運行的容器,可以看到,mysql正位列其中。

然后我們就可以使用數(shù)據(jù)庫連接工具,比如Navicat、SQLYog等軟件連接到這個數(shù)據(jù)庫。

注意
如果你發(fā)現(xiàn)連接不到數(shù)據(jù)庫的話可能是你服務器的防火墻沒有關掉。可以使用systemctl status firewalld.service來查看防火墻狀態(tài)。

我之前就已經(jīng)把防火墻關掉了。
關于防火墻相關更多的命令,可以參考我這篇文章:

還有!如果你發(fā)現(xiàn)你把防火墻關掉了還是連接不到,那是因為在你云服務器的控制臺里還有一個云服務防火墻的配置,你需要把對應數(shù)據(jù)庫的端口3306開放!
以騰訊云為例:


保存之后就可以正常的連接到數(shù)據(jù)庫了!
之后我們在MySQL中創(chuàng)建一個數(shù)據(jù)庫,取名blog-db。字符集選utf8mb4,之后點擊完成即可。
這里的數(shù)據(jù)庫取名要注意,稍后我們要用到
安裝Halo
這次教大家部署的個人博客是Halo,這是一款非常優(yōu)秀的個人博客系統(tǒng),自帶后臺管理系統(tǒng),比WordPress更加的輕量,單功能缺不輸于它,也是支持主題的切換,甚至Halo的主題要更加的美觀漂亮!
官網(wǎng):https://halo.run/
在服務器上依次執(zhí)行下面的命令
# 創(chuàng)建博客項目目錄
cd ~;mkdir halo-blog;cd halo-blog
# 創(chuàng)建配置文件
vim application.yaml
在配置文件輸入以下內(nèi)容:
server:
port: 8090
compression:
enabled: false
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://152.136.150.203:3306/blog-db?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username: root
password: 123456
halo:
admin-path: blog-admin
cache: memory
注意:這里你需要修改MySQL的連接信息,主要修改IP和密碼,還要注意數(shù)據(jù)庫要連接剛才安裝MySQL創(chuàng)建的那個數(shù)據(jù)庫,名稱默認blog-db
# 拉取halo的最新鏡像
docker pull halohub/halo

# 運行鏡像獲得容器
docker run -d -p 8090:8090 -v ~/halo-blog:/root/.halo --restart=always --name halo halohub/halo
之后使用docker ps查看正在運行的容器,可以看到,我們剛才安裝的Halo正位列其中

之后使用瀏覽器訪問你的IP的8090端口,即http://IP:8090,然后就可以看到Halo的安裝頁面了。如果訪問不到,那可能還是和防火墻有關,參考之前安裝MySQL的解決方案處理一下就OK了。

填寫信息,點擊安裝即可。安裝完成之后會自動跳轉到登錄頁面。再次訪問你的IP的8090端口就可以訪問到博客的主頁了!
基本介紹
Halo的后臺管理中主要包含文章管理、頁面管理、附件管理、評論管理、外觀主題、用戶設置以及系統(tǒng)設置。功能還是非常的豐富的,操作也非常的簡單。
這里著重介紹一下怎么更換主題:外觀 -> 安裝 -> 遠程下載

這里需要我們輸入遠程地址,我們需要前往Halo的官方主題倉庫,挑選一個自己喜歡的主題。
選擇好一款主題之后,查看主題詳情,里面就會有介紹怎么安裝,我們輸入遠程地址之后,點擊下載即可。

稍作等待之后我們就可以在主題中看到剛剛下載的主題了,點擊啟用即可。在每個主題的設置里面,還可以對主題進行更加細致化的自定義。
注意,很多的主題都是寄托在github上面,所以遠程下載會很慢,有時候還會出現(xiàn)網(wǎng)絡錯誤,多嘗試幾次或者使用離線安裝的方式

再次訪問IP的8090端口就可以看到主題已經(jīng)生效了。
配置域名
只用IP訪問博客既不高級,也不安全,所以現(xiàn)在來教大家怎么為IP來綁定域名。
當然前提是你已經(jīng)購買了一個域名,可以選擇在阿里云、騰訊云的官網(wǎng)購買。
注意:購買的服務器和域名可以不是同一個廠商,我的服務器是騰訊云,域名是在阿里云購買
我的域名:www.xuewei.world
以阿里云為例,首先需要進入到域名控制臺

這里會顯示你購買過的域名,然后點擊后面的解析,進入到當前域名的解析設置

我們點擊添加記錄進行下一步的配置。

記錄類型:這里默認是A類型,即把域名解析到一個IPV4的地址,正好我們需要這樣做。 主機記錄:這就是你之后需要在瀏覽器訪問個人網(wǎng)站使用的規(guī)則‘ 解析路線:解析路線一般設置成默認就OK 記錄值:你的IP地址 TTL:你的域名配置的DNS緩存時間,這里也是默認10分鐘
最簡單的,我們配置一個www域名,主機記錄中填寫www,然后記錄值填寫服務器的IP地址。

然后我們就可以在瀏覽器試一試了,注意我們剛才大家的博客的端口是8090,瀏覽器地址中應該是http://www.域名:8090,在我這里就是這樣訪問
http://www.xuewei.world:8090。還要注意一點,從9月15號開始,對于未進行實名認證的域名,阿里云不再提供解析服務了,所以大家最好還是實名認證一下,最好也進行網(wǎng)站的備案。


隱藏端口號
域名已經(jīng)配置好了,但是每次都要加上端口實在是麻煩,下面給大家講一下我是怎么將端口號隱藏的,當然隱藏端口號有一個前提,就是你的服務器需要進行備案!瀏覽器http端口是80(可隱藏),還有https端口443(可隱藏),但是像阿里云、騰訊云這些國內(nèi)服務器,你必須要備案之后才會給你開放,不熱就會被跳轉到下面這個頁面

當你備案完成之后就可以安裝我下面的步驟一步一步操作了
首先我使用的方法是在服務器搭建Nginx服務,并配置反向代理。
如果你的服務器是CentOS7,那么可以參考我下面的文章進行Nginx的安裝:

之后你需要修改Nginx的配置文件,位于/usr/local/nginx/conf/nginx.conf,將配置文件修改為以下內(nèi)容:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream halo {
server 127.0.0.1:8090;
}
server {
listen 80;
server_name www.yourdomain.com;
client_max_body_size 1024m;
location / {
proxy_pass http://halo;
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
之后重啟Nginx,在瀏覽器訪問你的域名,我這里直接訪問http://www.xuewei.world,訪問http://www.xuewei.world/blog-admin就可以進入后臺管理

大功告成!點擊原文鏈接可以查看我的個人博客,文章里面一些軟件的安裝都在里面!
我是莫提,一個喜歡自學的程序員。關注我,我們一起變優(yōu)秀!

