一. Redis的安裝
1. 准備
(1). 宿主機:centos 8.0
(2). Redis源碼:【壓縮包: redis-5.0.0.tar.gz】 需要自行編譯。 (PS:這個壓縮包可以直接Centos系統中在線下載 或者去Redis官網先下載,然后copy到Centos系統中)
下載地址:
官網:https://redis.io/
中文版:http://www.redis.cn/
注:Redis的安裝需要下載源碼,自行准備環境,進行編譯安裝。
(3). gcc環境:redis是C語言開發的,安裝redis需要先將官網下載的源碼進行編譯,編譯依賴 gcc 環境。
2. 安裝步驟
(1). 安裝gcc環境
通過指令【yum install gcc-c++】安裝gcc環境,安裝過程中需要兩次輸入y,分別是確認下載和確認安裝。
兩次確認:
最終安裝成功:
(2). 安裝Redis
A. 去Redis官網下載壓縮包,然后Copy到Centos宿主機中,下載地址為:http://download.redis.io/releases/ ,這里我們以 【5.0.0】版本為例進行演示。
PS: 這里我們直接在Linux系統中在線下載壓縮包,運行指令:【wget http://download.redis.io/releases/redis-5.0.0.tar.gz】
B. 解壓到當前目錄,運行下面指令 ,解壓后的文件如下:
【tar -zxvf redis-5.0.0.tar.gz】
C. 切換到redis目錄,運行make指令進行編譯 。
【cd redis-5.0.0/】
【make】 (ps:make指令可能需要安裝,根據提示,輸入y確認安裝即可)
D. 安裝redis到指令目錄
【cd redis-5.0.0/】
【make PREFIX=/usr/local/redis install 】
PS:make install安裝完成后,會在/usr/local/redis/bin目錄下生成下面幾個可執行文件,它們的作用分別是:
redis-server:Redis服務器端啟動程序
redis-cli:Redis客戶端操作工具。也可以用telnet根據其純文本協議來操作
redis-benchmark:Redis性能測試工具
redis-check-aof:數據修復工具
redis-check-dump:檢查導出工具
(3). 配置Redis
進入redis原先的解壓目錄,把里面的配置文件 【redis.conf】 拷貝到 /usr/local/redis/bin 目錄下。
【cd redis-5.0.0/】
【cp redis.conf /usr/local/redis/bin】
(4). 啟動Redis
A. 進入到 /usr/local/redis/bin 安裝目錄, 【cd /usr/local/redis/bin】
B. 修改redis.conf,把daemonize no 改為daemonize yes,改為守護進程,即后台程序啟動,否則關閉窗口redis服務就關閉了 (可選)
C. 運行指令【./redis-server redis.conf】 進行啟動,如下圖表示啟動成功。PS: ./表示當前目錄
(5). 復制一個窗口,啟動鏈接客戶端 【./redis-cli】,可以進行redis操作。
(6). 關閉redis服務【./redis-cli shutdown】, 如果有密碼,需要【./redis-cli -a 123456 shutdown】
進行鏈接,連接失敗;重新啟動redis服務【./redis-server redis.conf】,進行鏈接,鏈接成功。
PS:也可以直接通過【ps -ef|grep redids】獲取redis服務的進程號,然后 【kill 進程號】的方式強制關掉redis服務。
如下圖:
3. 測試
如何在外部鏈接linux上的redis?
(1). 將 bind 127.0.0.1 注釋掉。
(2). 關閉保護模式,即將 protected-mode 改為 no。
PS:以上兩個指令執行完成后,要重啟一下redis服務。
(3).首先需要在centos宿主機上關閉防火牆,從而外部可以訪問redis的6379端口。
#添加6379端口永久開放 sudo firewall-cmd --add-port=6379/tcp --permanent #重啟防火牆 firewall-cmd --reload
(4). 使用客戶端工具進行連接,連接成功。
4. 其它配置和指令
(1). 設置密碼
默認鏈接redis是沒有密碼的,我們通過修改 redis.conf 文件中 requirepass 節點,來設置密碼,如下圖:
默認:
修改密碼為123456:
重新鏈接:
在本地電腦上通過客戶端連接: 【 redis-cli -h 192.168.137.201 -p 6379 -a 123456】
(2). 改為守護進程
修改redis.conf,把daemonize no 改為daemonize yes,改為守護進程,即后台程序啟動,否則關閉窗口redis服務就關閉了
參考文檔:https://blog.csdn.net/lc1010078424/article/details/78295482 (添加服務)
https://blog.csdn.net/weixin_40605573/article/details/89324038
二. MySQL的安裝
1. 准備
(1). 宿主機:centos8.0
(2). MySQL安裝包:mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar (這里安裝的是5.7版本)
PS:這里使用的安裝包是針對centos系統特制的RPM包,通過RPM相關指令進行安裝,當然也可以通過其他類型的安裝包進行編譯安裝。
下載地址:https://dev.mysql.com/downloads/mysql/ ,這里演示的是下載整個壓縮包,解壓后有很多組件的rmp包,當然我們也可以根據需要直接下載對應的組件進行安裝,比如我只下載Server的rpm包。
2. 安裝步驟
前提:刪除一下系統自帶的mysql
(1). 把安裝包copy到centos的宿主機中
(2). 在當前目錄下進行解壓,指令如下
【tar -xvf mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar】解壓出來一堆包,我們根據需要安裝即可。
(3). 安裝client端 和 server 端
經驗:server需要依賴client端,所以server端最后安裝,client端還需要依賴common和libs,而且client還需要libncurses和libtinfo相關,所以我們在rmp包的根目錄下運行指令,嚴格按照下面的順序進行。
【rpm -ivh mysql-community-common-5.7.31-1.el7.x86_64.rpm】
【rpm -ivh mysql-community-libs-5.7.31-1.el7.x86_64.rpm】
【yum install libncurses* -y】
【yum install libtinfo* -y】
【rpm -ivh mysql-community-client-5.7.31-1.el7.x86_64.rpm】
【rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm】
截止此處全部安裝完成。
(4). 啟動服務並查看狀態
A. 啟動服務: 【systemctl start mysqld】
B. 查看狀態:【systemctl status mysqld】
(5). 必備的配置
A. 修改密碼策略,否則無法隨心所以的修改密碼
找到mysql的配置文件,位於 /etc/my.conf , 在這個配置文件里,還能看見其它幾個配置的路徑,如下圖,然后添加下面代碼,修改完后,重啟一下mysql服務【systemctl restart mysqld】
注:以下兩行代碼任意一行都可以,可以直接關閉密碼策略即可。
#添加validate_password_policy配置 選擇0(LOW)1(MEDIUM)2(STRONG)其中一種 validate_password_policy=0 #關閉密碼策略 validate_password = off
B. 查看隨機密碼
默認root賬號會生成一個隨機密碼,通過指令【grep "password" /var/log/mysqld.log 】查看,如下圖,密碼為: wIsu.rk_d74c
C. 修改密碼(這里改為123456)
使用內置客戶端進行登錄,【mysql -uroot -p】,然后輸入上面密碼:wIsu.rk_d74c ,如下圖說明登錄成功。 或者直接輸入指令:【mysql -uroot -pwIsu.rk_d74c】
將root賬號的密碼改為:123456,指令為【set password=password('123456');】 注意在mysql中的指令結尾必須有分號!!
或者運行指令:【ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';】進行密碼修改
輸入指令【exit;】,退出
重新輸入指令【mysql -uroot -p123456】,如下圖:登錄成功
D. 設置允許遠程訪問
①. 運行下面指令,運行所有ip用root賬號,密碼為123456進行訪問mysql。
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; flush privileges;
注:上述指令的本質是在User表中增加了一條新的記錄,Host設置為%,代表運行所有客戶端訪問,實際上可以直接去User表中把原先內置的root用戶的Host字段由Localhost改為%即可。
②. 查看防火牆狀態,開發3306端口,或者直接關閉防火牆。
#查看防火牆狀態 service firewalld status #方案1,開放3306端口,並重啟 sudo firewall-cmd --add-port=3306/tcp --permanent #重啟防火牆 firewall-cmd --reload #方案2:直接關閉防火牆 service firewalld stop
(6). 測試
使用客戶端遠程連接,如下圖,連接成功。
(7). 指令總結
【systemctl status mysqld】 查看mysql狀態
【systemctl stop mysqld 】 關閉mysql服務
【systemctl start mysqld】 開啟mysql服務
【systemctl restart mysqld】 重啟服務
3.其它配置指令說明
(1). 授權遠程訪問詳解
方法1:授權法
-- 允許特定ip訪問 grant all privileges on *.* to 'root'@'192.168.137.202'identified by '123' with grant option; --允許所有ip訪問 grant all privileges on *.* to 'root'@'%' identified by '123' with grant option; --執行完上述后,都要刷新生效 flush privileges;
說明:以上指令都是對root賬號授權遠程訪問,登錄密碼為:123,特別注意這個密碼可以和 root本來server端不一樣,比如:本來server端root密碼為123456,這里遠程授權設置的是123,那么遠程客戶端登錄就只能使用123密碼,使用123456密碼無法連接;通過set password把root的服務密碼改為12345678,不影響遠程授權登錄,遠程客戶端仍然可以通過123進行訪問。
實質:上述操作本質上是在mysql中自帶的一個mysql庫中user表中插入了一條記錄,也就是在User表中對應了多個root賬戶,實際上不建議這樣做,直接把原先的root對應Host改為%即可。如下圖:
方法2:直接操作mysql下的user表
--可以更新字段 --特定ip update user set host = '192.168.1.49' where user = 'root'; --所有ip update user set host = '%' where user = 'root'; --也可以直接插入一條新紀錄 --刷新生效 flush privileges;
說明:上述更新字段的那種方式遠程登錄使用的密碼為root自身server的密碼,也可以插入一條記錄,可以使用一個新的密碼,與root原來server端密碼不同。
(2). 配置字符編碼
注意:安裝完mysql后,一定要修改編碼,從mysql5.7開始,將編碼都改為utf8mb4。
連接上mysql,輸入指令【show variables like '%character%';】 ,查看原來的各種編碼,如下圖,這里我們把 character_set_server 也改成utf8,否則容易亂碼。
修改 /etc/my.cnf, 增加下面代碼,然后重啟mysql服務 【systemctl restart mysqld】,重新查看編碼,設置成功。
[client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 [mysqld] # 設置client連接mysql時的字符集,防止亂碼 init_connect='SET NAMES utf8mb4' init_connect='SET collation_connection = utf8mb4_general_ci' # 數據庫默認字符集 character-set-server=utf8mb4 #數據庫字符集對應一些排序等規則,注意要和character-set-server對應 collation-server=utf8mb4_general_ci
查看數據庫編碼,如下圖,修改成功。【show variables like '%character%';】
(3). 忘記root密碼怎么辦?
詳見:https://www.cnblogs.com/yaopengfei/p/13798785.html
三. Nginx的安裝
1.准備
(1). 宿主機:centos 8.0
(2). Nginx源碼:需要去官網下載源碼copy到centos系統中,自行編譯安裝。這里使用【nginx 1.19.3】版本。
下載地址:http://www.nginx.org/
(3). 編譯Nginx所需要的的環境:
A. gcc環境:因為是C語言開發的。
B. pcre: 是一個 Perl 庫,包括 perl 兼容的正則表達式庫。nginx 的 http 模塊使用 pcre 來解析正則表達式,所以需要在 linux 上安裝 pcre 庫。
注:pcre-devel 是使用 pcre 開發的一個二次開發庫,nginx 也需要此庫。
C. zlib:zlib庫提供了很多種壓縮和解壓縮的方式,nginx 使用 zlib 對 http 包的內容進行 gzip,所以需要在 linux 上安裝 zlib 庫。
D. OpenSSL: 是一個強大的安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及 SSL 協議,並提供豐富的應用程序供測試或其它目的使用。nginx 不僅支持 http 協議,還支持 https(即在 ssl 協議上傳輸 http),所以需要在 linux安裝 openssl 庫。
2. 安裝步驟
(1). 安裝編譯所需的環境
A. 【yum install -y gcc-c++】
圖如上面redis安裝一樣。
B.【yum install -y pcre pcre-devel】
C. 【yum install -y zlib zlib-devel】
D. 【yum install -y openssl openssl-devel】
(2). 將下載好的Nginx壓縮包上傳到Centos的工作目錄下,並進行解壓縮 【tar -zxvf nginx-1.19.3.tar.gz】,解壓后如下圖:
(3). 進入nginx-1.19.3目錄 使用 configure 命令創建1個 MakeFile 文件.
【cd nginx-1.19.3/】,然后運行下面指令,直接copy進去,敲擊回車,執行即可
./configure \ --prefix=/usr/local/nginx \ --pid-path=/var/run/nginx/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --with-http_gzip_static_module \ --http-client-body-temp-path=/var/temp/nginx/client \ --http-proxy-temp-path=/var/temp/nginx/proxy \ --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \ --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \ --http-scgi-temp-path=/var/temp/nginx/scgi
執行完成后,nginx目錄下多了一個MakeFile文件
PS:代碼解釋
---- 知識點小貼士 ---- Makefile是一種配置文件, Makefile 一個工程中的源文件不計數,其按類型、功能、模塊分別放在若干個目錄中,makefile定義了一系列的規則來指定,哪些文件需要先編譯,哪些文件需要后編譯,
哪些文件需要重新編譯,甚至於進行更復雜的功能操作,因為 makefile就像一個Shell腳本一樣,其中也可以執行操作系統的命令。
---- 知識點小貼士 --- ./configure \ --prefix=/usr \ 指向安裝目錄 --sbin-path=/usr/sbin/nginx \ 指向(執行)程序文件(nginx) --conf-path=/etc/nginx/nginx.conf \ 指向配置文件 --error-log-path=/var/log/nginx/error.log \ 指向log --http-log-path=/var/log/nginx/access.log \ 指向http-log --pid-path=/var/run/nginx/nginx.pid \ 指向pid --lock-path=/var/lock/nginx.lock \ (安裝文件鎖定,防止安裝文件被別人利用,或自己誤操作。) --user=nginx \ --group=nginx \ --with-http_ssl_module \ 啟用ngx_http_ssl_module支持(使支持https請求,需已安裝openssl) --with-http_flv_module \ 啟用ngx_http_flv_module支持(提供尋求內存使用基於時間的偏移量文件) --with-http_stub_status_module \ 啟用ngx_http_stub_status_module支持(獲取nginx自上次啟動以來的工作狀態) --with-http_gzip_static_module \ 啟用ngx_http_gzip_static_module支持(在線實時壓縮輸出數據流) --http-client-body-temp-path=/var/tmp/nginx/client/ \ 設定http客戶端請求臨時文件路徑 --http-proxy-temp-path=/var/tmp/nginx/proxy/ \ 設定http代理臨時文件路徑 --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \ 設定http fastcgi臨時文件路徑 --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \ 設定http uwsgi臨時文件路徑 --http-scgi-temp-path=/var/tmp/nginx/scgi \ 設定http scgi臨時文件路徑 --with-pcre 啟用pcre庫
(4). 在nginx-1.19.3目錄下,執行 【make】指令,進行編譯。
(5). 安裝Nginx(指定安裝路徑)
在nginx-1.19.3目錄下執行下面的安裝指令
make PREFIX=/usr/local/nginx install
如下圖:
(6). 啟動前准備
A. 啟動 nginx 之前,上邊MakeFile溫江將臨時文件目錄指定為/var/temp/nginx/client, 需要在/var 下創建此目錄
mkdir /var/temp/nginx/client -p
B. 進入到Nginx安裝目錄下的sbin命令目錄下
cd /usr/local/nginx/sbin
(7). 啟動
./nginx
如圖:
(8). 關閉防火牆或者開放80端口
#添加80端口永久開放 sudo firewall-cmd --add-port=80/tcp --permanent #重啟防火牆 firewall-cmd --reload
(9). 其它指令
A. 查看nginx進程 【ps aux|grep nginx】
B. 關閉Nginx
./nginx -s stop
#或
./nginx -s quit
C. 重啟nginx
./nginx -s reload
3. 測試
訪問默認的80端口,輸入:http://192.168.137.201
4. 常見錯誤處理
(1). 啟動nginx的時候報錯,如下圖,缺少文件了。
解決方案:到對應目錄下創建相應文件即可。
!
- 作 者 : Yaopengfei(姚鵬飛)
- 博客地址 : http://www.cnblogs.com/yaopengfei/
- 聲 明1 : 如有錯誤,歡迎討論,請勿謾罵^_^。
- 聲 明2 : 原創博客請在轉載時保留原文鏈接或在文章開頭加上本人博客地址,否則保留追究法律責任的權利。