一、前言
大家好呀,我是summo,前面我已經寫了我為啥要做這個摸魚小網站的原因,從這篇文章開始我會一步步跟大家聊聊我是怎麼搭起這個網站的。我知道對很多新手來說,建網站可能挺頭大的,不知道從哪裡開始,所以我會盡量寫得簡單明瞭,讓大家一看就懂,少走彎路。
咱們先從買伺服器開始說起。現在阿里雲好像還有免費試用,對新手來說挺划算的。不過不管你是免費用還是掏錢買,拿到伺服器後的第一件事,就是得把環境給整利索了。這就跟新房子裝修一樣,基礎打好了,後面的事兒才能順順利利。對於我們這個摸魚小網站來說,必須要的環境是JDK、Redis、MySQL,怎麼搭建這些環境網上文章一大堆,但總是這有問題那有問題,所以我也寫一份,出問題我們評論區交流。
二、購買雲伺服器(又稱Elastic Compute Service, ECS)
點這個連結可以進入阿里雲的官方網站,我買的是2核2G,3M固定頻寬
這種,一年99,持續3年。這裡有一個點要注意下,我選的映象是CentOS 7.9 64位
,不同映象安裝環境的方式也有點不同,比如Centos一般使用yum下載安裝包而Ubuntu使用apt-get,雖然大體上都差不多但是我只熟悉Centos。如果不懂這些的話,最好跟我選一樣的吧。
如果你想先試用的話,滑到底部可以找到
買好之後,進入ECS控制檯,可以找到你剛買的那臺例項。我們可以看到,它有兩個IP,私有IP
和公網IP
,公網IP是可以ping通的,如果到時候你的網站做好,就可以把這個公網IP分享給你的朋友,他們就可以直接訪問你的網站啦。
點選遠端連線
可以遠端登入到伺服器上,進入控制介面後就可以開始部署你的環境啦!
第一次登入的時候需要設定一下密碼,後面如果密碼忘記了,也可以在這邊重置密碼。
三、安裝jdk
JDK的話呢我就不裝最近流行的17和21了,還是使用我們的老朋友JDK8吧,在Windows上安裝JDK是比較麻煩的,還有環境變數什麼的,但是在Centos7上安裝是很方便的,不用擔心,別看那些野文件就行。
1. 檢視JDK版本
yum list |grep java-1.8.0
可以看到可選版本還是很多的,我們下載
java-1.8.0-openjdk-devel.x86_64
這個。
2. 下載JDK
yum install java-1.8.0-openjdk-devel.x86_64 -y
下載下來之後它會自動安裝,環境變數都不用管,不用配這配那的,很方便。
3. 檢視JDK環境
java -version
四、安裝Redis
Redis的安裝也很簡單,幾行命令就搞定了,跟著我的步驟來,大機率不會出現什麼問題。
1. 下載Redis
sudo yum install epel-release -y
sudo yum update -y
sudo yum install redis -y
2. 啟動Redis服務並設定開機自啟
sudo systemctl start redis
sudo systemctl enable redis
3. 驗證Redis是否正在執行
redis-cli ping
4. 遠端連線Redis
我們都知道Redis的埠是6379,雖然伺服器上Redis啟動了,但是本地目前還是無法連線的,想要本地連線Redis,還需要一些設定。
(1)修改Redis配置支援公網訪問
## 開啟Redis配置檔案
vim /etc/redis.conf
找到下面這三個引數:
## 繫結允許訪問的ip
bind 127.0.0.1
## 保護模式開
protected-mode yes
## 請求訪問的密碼
#requirepass yourpassword
一二項是組合項,尤為重要,第三項就是設定密碼,可以起到許可權認證的作用。修改為如下:
## 直接將這行註釋掉
#bind 127.0.0.1
## 關閉保護模式
protected-mode no
## 設定你的密碼
requirepass xxx
最後重啟Redis
systemctl restart redis.service
(2)伺服器防火牆上開放6379埠
## 檢視防火牆狀態
sudo systemctl status firewalld
## 開啟防火牆
sudo systemctl start firewalld
## 開啟6379對外訪問
sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent
## 重啟防火牆
sudo firewall-cmd --reload
## 檢視當前對外訪問的埠
sudo firewall-cmd --zone=public --list-ports
只在伺服器上開放6379埠還是不行的,還需要在阿里雲ECS平臺修改一下
安全組規則
,這個東西很多同學都不太清楚,我簡單說一下:ECS安全組就是防止大家亂開放埠導致自己的服務被攻擊,給大家做的一個兜底保護。
(3)阿里雲安全組配置6379埠
點選管理規則
點選快速新增選擇Redis,最後點選確定
很簡單,對不對!但是如果我不說一下的話,大家很有可能半天都不知道為啥自己的Redis連線不上,關於這個安全組,還有些東西要注意,比如授權IP為0.0.0.0就是對所有網段都生效,後面還會經常配置,遇到了再說。
5. 連線工具
RedisInsight(推薦使用)
五、安裝MySQL8.0
資料庫對於我們這個摸魚小網站來說是最為重要的,但是它的安裝也是最為複雜。我也搜了不少資料,還是才踩了不少坑,如果大家實在是搞不定,建議大家直接用阿里雲那個免費3個月使用的RDS,效果更好
。
1. 下載MySQL8.0
執行下載命令
## 建立MySQL目錄
mkdir /usr/local/mysql
## 切換到MySQL目錄
cd /usr/local/mysql
## 下載MySQL安裝包
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.35-1.el7.x86_64.rpm-bundle.tar
## 解壓MySQL安裝包
tar -xvf mysql-8.0.35-1.el7.x86_64.rpm-bundle.tar
2. 準備安裝環境
依次執行如下命令:
yum update -y
yum install -y libaio
yum install -y net-tools
yum install openssl-devel.x86_64 openssl.x86_64 -y
yum -y install autoconf
yum install perl.x86_64 perl-devel.x86_64 -y
yum install perl-JSON.noarch -y
yum install perl-Test-Simple -y
mariadb要解除安裝掉不然後面安裝也會報錯,不知道啥原因,查詢已經安裝的mariadb
## 'xxxx’代表 rpm -qa | grep mariadb 展示出來所有名字,有多個,則重複刪除多次
rpm -qa | grep mariadb
## 務必刪除乾淨
rpm -e --nodeps 檔名
以上命令是解決安裝mysql8時的依賴環境問題。(如果以上命令執行失敗可能會影響接下來的安裝)
3. 安裝MySQL8
在/usr/local/mysql8目錄下,依次執行以下幾個命令,安裝MySQL8,注意如下命令執行順序不能顛倒,必須嚴格按照以下順序執行:
rpm -ivh mysql-community-common-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.35-1.el7.x86_64.rpm
4. 設定配置檔案
編輯/etc/my.cnf檔案,可以為MySQL設定如下引數(按實際需求選擇即可)
[mysqld]
# 設定 MySQL 服務執行的埠號
port = 3306
# 指定 MySQL 資料庫的預設字符集
character-set-server=utf8mb4
# 允許外部訪問
bind-address=0.0.0.0
# 設定client連線mysql時的字符集,防止亂碼
init_connect='SET NAMES utf8mb4'
# 設定 MySQL 允許訪問的最大連線數
max_connections = 1000
# 指定MySQL伺服器儲存資料檔案的目錄
datadir=/var/lib/mysql
# 是否對sql語句大小寫敏感,1表示不敏感
lower_case_table_names = 1
# 事務隔離級別,預設為可重複讀,mysql預設可重複讀級別(此級別下可能引數很多間隙鎖,影響效能)
transaction_isolation = READ-COMMITTED
# TIMESTAMP如果沒有顯示宣告NOT NULL,允許NULL值
explicit_defaults_for_timestamp = true
5. 目錄授權
chown -R mysql:mysql /var/lib/mysql/
6. 啟動MySQL
## 啟動MySQL
systemctl start mysqld.service
## 檢視MySQL狀態
systemctl status mysqld.service
## 設定開啟自啟動
systemctl enable mysqld
7. 連線MySQL
(1)配置MySQL支援遠端訪問
啟動mysql後會生成一個臨時密碼,使用此命令可以查詢到臨時密碼,
grep "A temporary password" /var/log/mysqld.log
使用這個密碼登入到MySQL裡面,登入命令為mysql -u root -p
按enter後輸入剛才看到的臨時密碼。
進去後,我們為root使用者設定一個新的密碼,命令如下:
# 修改密碼,注意密碼強度校驗,這裡把密碼設定為 xxx(你的密碼)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxx(你的密碼)';
# 重新整理許可權
FLUSH PRIVILEGES;
設定允許root遠端登入
UPDATE mysql.user SET host='%' WHERE user='root';
FLUSH PRIVILEGES;
(2)伺服器防火牆上開放3306埠
## 開啟6379對外訪問
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
## 重啟防火牆
sudo firewall-cmd --reload
## 檢視當前對外訪問的埠
sudo firewall-cmd --zone=public --list-ports
同Redis一樣,還需要去阿里雲的安全組中放開3306埠。
(3)阿里雲安全組配置3306
點選快速新增選擇MySQL,最後點選確定
8. 連線工具
可以選擇Navicat(最好用,但收費)、DBeaver(還不錯,免費)、MySQL-Front (還不錯,免費)
六、小結一下
曾幾何時,安裝環境和搭腳手架是我最害怕的事,太多的知識盲區,失敗不知道原因,這玩意就算別人文件寫的再細緻,輪到自己安裝時卻總是遇到奇奇怪怪問題,有時都懷疑自己是不是BUG體質。在這裡我提醒大家一下,如果是新手,安裝環境時千萬別給自己加戲,考慮這考慮那,這個不安全那個要個性一點,千萬別這樣搞,失敗千萬次不如成功一次!
我這次的安裝教程是直接在伺服器上操作的,安裝包都是用命令下載的,出問題的機率應該不大,有問題評論區交流。正如開篇所說這就跟新房子裝修一樣,基礎打好了,後面的事兒才能順順利利。不要心急,工程化相比於研究原始碼有意思多了,獲得感很強。全軍出動,大家加油!
大多數同學大多數時間都只是在幹CRUD的活,也沒有獨立建站的經驗,雖然沒有但是可以學!現在不會練練就會!100塊錢的實操經驗絕對比100塊錢買的專欄更有意義更有用!
最後,自建摸魚網站,各大網站熱搜一覽,上班和摸魚很配哦!