如何搭建屬於自己的伺服器(Linux7.6版)

JavaCoderPan發表於2023-03-10

從0搭建屬於自己的伺服器

最近小夥伴推薦的華為雲活動,購買伺服器相當的划算,本人也是耗費巨資購買了一臺2核4G HECS雲伺服器。
話不多說,在這裡給華為雲打一個廣子,活動力度還是很不錯的。
活動詳情見連結:https://kuy8.com/xcGtU

1、購買與搭建

一般個人使用,我覺得2核4G的已經綽綽有餘啦,所以本文也是基於這個配置來搭建的(看準最便宜的下手?)
image
點選進入詳情頁,然後選擇指定的系統映象即可完成伺服器的初始化工作
image
初始化需要一點點時間,讓子彈飛一會兒,伺服器初始化完成之後,我們去控制檯可以看到我們剛剛購買的伺服器
image
在控制檯出現如上介面,就說明伺服器已經搭建完成,接下來讓我們看看如何連線到這個遠端伺服器!

2、透過SSH工具連線

由於我們預設配置的伺服器系統是LINUX7.6版本,所以我們透過遠端工具對其進行連線需要伺服器對外開放22埠號。
我們點選進入伺服器詳細資訊頁面,看到安全組的預設開放已經將其開放。
image
這樣我們就可以透過工具對其連線了。

Tips:不曉得密碼的話,這邊建議直接充值密碼,點選右側更多進行重置密碼

image
image
現在我們知道了使用者名稱root和密碼之後,我們進入工具進行連線
輸入公網ip地址,賬戶名以及密碼這些重要資訊之後即可進行連線:
image
連線成功如下所示:image

3、搭建Docker容器

對於我個人來說,本人比較喜歡使用docker來配置一些服務,例如MySQL、Nginx、Tomcat等。
具體介紹 ?Docker介紹
具體流程:
(1)yum包更新到最新

sudo yum update

這個過程需要等5~10min,具體看網路情況,出現如下圖即表示完成:
image
(2)安裝需要的軟體包,yum-util提供yum-config-manager功能,另外兩個是devicemapper驅動依賴

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

安裝成功如下圖所示:
image
(3)設定yum源為阿里雲
這個小操作是為了以後下載映象可以更快一點!

#3.1設定映象源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#3.2
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

(4)更新並安裝Docker-CE

sudo yum makecache fast
sudo yum -y install docker-ce

(5)安裝完成後檢視版本

docker -v

出現如下圖所示即表示docker安裝成功
image

(6)開啟Docker服務

sudo service docker start
# 注意:
# 官方軟體源預設啟用了最新的軟體,您可以透過編輯軟體源的方式獲取各個版本的軟體包。例如官方並沒有將測試版本的軟體源置為可用,您可以透過以下方式開啟。同理可以開啟各種測試版本等。
# vim /etc/yum.repos.d/docker-ce.repo
#   將[docker-ce-test]下方的enabled=0修改為enabled=1
#
# 安裝指定版本的Docker-CE:
# Step 1: 查詢Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
#   Loading mirror speeds from cached hostfile
#   Loaded plugins: branch, fastestmirror, langpacks
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
#   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
#   Available Packages
# Step2: 安裝指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]

執行成功之後,我們再輸入命令:docker version
image

到這裡docker就成功的安裝了,接下來我們配置一些常用的映象。

4、Docker下配置Nginx

Nginx (engine x) 是一個高效能的HTTP和反向代理web伺服器 ,同時也提供了IMAP/POP3/SMTP服務。

Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,在BSD-like 協議下發行。其特點是佔有記憶體少,併發能力強,事實上nginx的併發能力在同型別的網頁伺服器中表現較好。

詳情見?nginx介紹

# service 命令的用法
$ sudo service docker start

# systemctl 命令的用法
$ sudo systemctl start docker

Docker把應用程式及其依賴,打包在 image 檔案中。

只有透過 image 檔案,才能生成 Docker 容器。
image 檔案可以看作是容器的模板。Docker 根據 image 檔案生成容器的例項。
同一個 image 檔案,可以生成多個執行的容器例項。
image 是二進位制檔案。實際開發中,一個 image 檔案往往透過繼承另一個 image 檔案,加上一些個性化設定而生成。

# 列出本機的所有 image 檔案。
$ sudo docker image ls

# 刪除 image 檔案
$ sudo docker image rm [imageName]

1、部署流程:

  1. 搜尋Nginx映象
docker search nginx
  1. 拉取Nginx映象
docker pull nginx
  1. 檢視映象名為nginx的映象
docker images nginx
  1. 執行映象,生成容器
# 命令解讀:
# -d:以後臺守護執行緒執行
# --name:容器命名
# -p 80:80 : 對映埠,容器內部80埠對映到伺服器80埠
# nginx :指定的映象(可以透過docker images 檢視)
docker run -di --name nginx80 -p 80:80 nginx(映象ID或者映象名字都可以)
  1. 檢視容器
docker ps

image
6. 輸入公網ip地址:ip:80
image
出現如上圖歡迎頁,即表示nginx部署成功

2、配置檔案

  1. 進入容器內部修改配置檔案
# 進入容器內部
docker exec -it nginx  /bin/bash
# 直接修改配置
vim /etc/nginx/nginx.conf

肯定有些童鞋想問,那麼上面的配置檔案路徑是如何得知的?

透過檔案查詢命令查(按照名稱模糊全域性查詢檔案)

find / -name 'nginx.conf'

這裡要注意,因為容器與外界是完全隔離的,使用vim命令請先安裝vim:

apt-get update
apt-get install -y vim

修改完配置,重新載入nginx:

docker exec -it nginx nginx -s reload
  1. 容器載入外部配置檔案

在外部建立資料夾(用於存放Nginx配置檔案)

mkdir -p /home/usr/local/docker-config/nginx/conf
mkdir -p /home/usr/local/docker-config/nginx/conf.d
mkdir -p /home/usr/local/docker-config/nginx/html
mkdir -p /home/usr/local/docker-config/nginx/logs

將容器的配置檔案複製到建立好的資料夾中

	docker cp nginx:/etc/nginx/nginx.conf /home/usr/local/docker-config/nginx/
	docker cp nginx:/etc/nginx/conf.d /home/usr/local/docker-config/nginx/conf/
	docker cp nginx:/usr/share/nginx/html/ /home/usr/local/docker-config/nginx/html/
	docker cp nginx:/var/log/nginx/ /home/usr/local/docker-config/nginx/logs/

修改配置檔案

	vim /home/usr/local/docker-config/nginx/conf/nginx.conf

刪除容器、映象

docker ps
docker rm -vf nginx
docker images
docker rmi nginx

執行容器

docker run -di --name nginx80 -p 80:80 -v /home/usr/local/docker-config/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/usr/local/docker-config/nginx/logs:/var/log/nginx -v /home/usr/local/docker-config/nginx/html:/usr/share/nginx/html -v /home/usr/local/docker-config/nginx/conf:/etc/nginx/conf.d -e TZ=Asia/Shanghai --privileged=true nginx

預設配置檔案

#user  nobody;
#nginx程式,一般數值為cpu核數
worker_processes  1;
#錯誤日誌存放目錄
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#程式pid存放位置
#pid        logs/nginx.pid;

#工作模式及連線數上限
events {
    #單個後臺worker process程式的最大併發連結數
    worker_connections  1024;
}


http {
    #副檔名與型別對映表
    include       mime.types;
    #預設檔案型別
    default_type  application/octet-stream;
    #設定日誌模式
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
    #nginx訪問日誌
    #access_log  logs/access.log  main;
    #開啟高效傳輸模式   
    sendfile        on;
    #啟用tcp_nopush引數可以允許把httpresponse header和檔案的開始放在一個檔案裡釋出, 積極的作用是減少網路報文段的數量
    #tcp_nopush     on;
    #連線超時時間,單位是秒
    #keepalive_timeout  0;
    keepalive_timeout  65;
    #開啟gzip壓縮功能
    #gzip  on;
    
    #基於域名的虛擬主機
    server {
        #監聽埠
        listen       80;
        server_name  localhost;
        #編碼識別
        #charset koi8-r;
        #日誌格式及日誌存放路徑
        #access_log  logs/host.access.log  main;

        location / {
            #站點根目錄,即網站程式存放目錄 
            root   html;
            #首頁排序
            index  index.html index.htm;
        }
        #錯誤頁面
        #error_page  404              /404.html;
        # 將伺服器錯誤頁面重定向到靜態頁面/50x.html
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }        

       
        #代理PHP指令碼到Apache上監聽127.0.0.1:80
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

   
        #將PHP指令碼傳遞到正在監聽127.0.0.1:9000的FastCGI伺服器
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        #如果Apache的文件根目錄與nginx的根目錄一致,則拒絕訪問.htaccess檔案
        #location ~ /\.ht {
        #    deny  all;
        #}
    }



    #另一個虛擬主機,混合使用IP、名稱和基於埠的配置
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;
    #    服務的證照
    #    ssl_certificate      cert.pem;
    #    服務端key
    #    ssl_certificate_key  cert.key;
    #    會話快取
    #    ssl_session_cache    shared:SSL:1m;
    #    會話超時時間
    #    ssl_session_timeout  5m;
    #    #加密演算法
    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    啟動加密演算法
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
}

使用中的配置檔案(所有ip,域名,路徑皆為虛構)

#user  nobody;
worker_processes  2;
error_log  logs/error.log;
pid  logs/nginx.pid;

#最大檔案開啟數(連線),可設定為系統最佳化後的ulimit -HSn的結果
worker_rlimit_nofile 360000;

events {
    #epoll是多路複用IO(I/O Multiplexing)中的一種方式,但是僅用於linux2.6以上核心,可以大大提高nginx的效能
    use epoll;
    #單個後臺worker process程式的最大併發連結數
    worker_connections 100000;
    #是否序列處理連線
    multi_accept off;
}

http {
    #副檔名與型別對映表
    include    mime.types;
    #預設檔案型別
    default_type  application/octet-stream;
    #設定請求快取 
    #戶端請求的最大可接受體大小,由行表示
    client_max_body_size 50m;
    #伺服器名字的hash表大小
    server_names_hash_bucket_size 256;
    #客戶機的請求頭設定大小,對於絕大多數請求,1K的緩衝區大小就足夠了
    client_header_buffer_size 256k;
    #用來指定客戶端請求中較大的訊息頭的快取最大數量和大小
    large_client_header_buffers 4 256k;
    
    #用於配置轉發至tomcat後;tomcat獲取客戶端正式ip
    #允許重新定義和新增一些將被傳輸到代理伺服器的請求頭行。作為值,可以使用文字、變數及其組合。
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Real-Port $remote_port;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
    #解決js跨域的問題
    #增加頭標
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Headers X-Requested-With;
    add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
    
    #指定客戶機請求體緩衝區大小。
    client_body_buffer_size 256k;
    #客戶機的請求頭設定讀取超時。
    client_header_timeout 3m;
    #客戶機的請求體設定讀取超時。
    client_body_timeout 3m;
    #客戶端分配響應超時時間。
    send_timeout 3m;
    #訪問日誌存放路徑
    access_log   no;
    #客戶端連線保持活動的超時時間,在超過這個時間之後伺服器會關閉該連結。
    keepalive_timeout  0;
    #修改或隱藏Nginx的版本號
    server_tokens off;
    #虛擬主機配置
    server {
    #listen指令指定所包含的伺服器接受的地址和埠。可以只指定地址、埠或伺服器名作為地址      
    listen       80;
    #e用來指定ip地址或者域名,多個域名之間用空格分開
    server_name  localhost;
    #對 "/gzh" 啟用反向代理
    location /gzh
    {
        #根據表示式來更改URI,或者修改字串。注意重寫表示式只對相對路徑有效。
        #此處是將/gzh以前的地址替換成http://weixin.qq.com/q/xxx
        rewrite ^ http://weixin.qq.com/q/xxx;
    }
    
    location /test {
        default_type text/html;
        return 200 "207_80";
    }
    
    location / {
        default_type text/html;
        #根據規則的執行情況,返回一個狀態值給客戶端。
        return 200 "207_80";
    }
    location /status                                                                                       
    {                                                                                                
        #這個模組能夠獲取Nginx自上次啟動以來的工作狀態,此模組非核心模組,需要在編譯的時候手動新增編譯引數                                               
        stub_status on;        
        #日誌                                                                            
        access_log /usr/local/nginx/logs/status.log;                                                                                     
    }      
    location /lua{
        default_type text/html;
        content_by_lua_file /usr/local/op/code/test.lua;
    }
    location /comm{
        default_type text/html;
        if ( $request_uri ~* /comm/gzhqr ) {
            content_by_lua_file /usr/local/op/code/redisget.lua;
        }
        proxy_pass http://192.168.1.209;
    }
    
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}
    
server
{
    listen 192.168.88.100:8081;
    server_name www.cs.cc;
    default_type 'text/html';
    charset utf-8;
    # 日誌級別
    error_log  logs/error.log info;    
    location /test {
        default_type text/html;
        return 200 "207_8081";
    }
    location /luac
    {
        default_type text/html;
        #lua_code_cache off;
        #$request_uri就是完整url中刨去最前面$host剩下的部分,比如http://www.baidu.com/pan/beta/test1?fid=3的就是/pan/beta/test1?fid=3
        #~* /devc/gzhqr表示含有/devc/gzhqr為true
        if ( $request_uri ~* /devc/test ) {
            content_by_lua_file /usr/local/op/lualib/tcode/test1.lua;
        }
    }
    location / {
        root   html;
        index  index8081.html index8081.htm;
    }
}


server {
    listen    8085;
    listen    443 ssl;
    #填寫繫結證照的域名
    server_name www.cs.cc;
    #為伺服器啟用HTTPS。
    #ssl on;
    ssl_certificate /usr/local/op/nginx/conf/1_www.cs.cc_bundle.crt;
    ssl_certificate_key /usr/local/op/nginx/conf/2_www.cs.cc.key;
    ssl_session_timeout 5m;
    #指令啟用所指示的協議。
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    #描述了允許的密碼。密碼以OpenSSL支援的格式分配
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    #要求協議SSLv3和TLSv1伺服器密碼優先於客戶機的密碼。
    ssl_prefer_server_ciphers on;
    charset utf-8;
    resolver 114.114.114.114;
    #日誌級別
    error_log  logs/error.log info;    
    
    #網頁
    location ~/social_security_homepage.html {
        rewrite ^(.*)$ /socialstop.html break;
    }
    #網路資源路徑
    location /h5/huo/images/
    {
        proxy_pass  http://192.168.1.209:3000/images/;
    }
    #地址
    location /h5/
    {
        proxy_pass http://192.168.1.209:3000/;
    }
    
    #本地路徑
    location /upload/file/
    {
        root /opt/nci/NCI_DOWN/;
    }
    if ($request_uri ~* /wxapp/sign/)
    {
        rewrite ^/(.*) http://weixin.qq.com/r/xxx? permanent;
    }
    
    #老管理平臺圖片的重寫
    if ($request_uri ~* /download/downLoad.do\?loadFile=/ITCT_Mng/image)
    {   
        rewrite ^/(.*) https://www.cs.cc/upload/file$argloadFile? permanent;
    }
    
    
    
    #管理平臺的資源轉發
    if ($request_uri ~* ^(/PRO_GLPT/))
    {
        rewrite ^/PRO_GLPT/(.*)$ /glpt/$1 last;
        #沒有匹配上返回403 狀態碼為444(此狀態碼是非標準的),那麼直接關閉此TCP連線
        #return code
        #return code text  因為要帶響應內容,因此code不能是具有跳轉功能的30x
        #return code URL    此時URI可以為URI做內部跳轉,也可以是具有“http://”或者“https://”等協議的絕對URL,直接返回客戶端,而code是30x(301, 302, 303, 307,308)
        #return URL 此時code預設為302,而URL必須是帶“http://”等協議的絕對URL
        return 403;
    }
    
    location /glpt/
    {
        proxy_pass http://192.168.1.209:8088/PRO_GLPT/;
        proxy_redirect http:// https://;
        proxy_set_header  Host $host;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto  $scheme;
        proxy_next_upstream error timeout invalid_header;
    }
    if ($request_uri ~* ^(/REDIS/))
    {
        rewrite ^/REDIS/(.*)$ /redis/$1 last;
    }
    
    location /gitblit
    {
        proxy_pass http://192.168.1.209:10101/;
        proxy_redirect http:// https://;
        proxy_set_header  Host $host;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto  $scheme;
        proxy_next_upstream error timeout invalid_header;
    }
    
    
    location /luac
    {
        default_type text/html;
        #lua_code_cache off;
        if ( $request_uri ~* /devc/gzhqr ) {
            content_by_lua_file /usr/local/op/lualib/tcode/gzh_info.lua;
            #過期時間30天
            expires 30d;
        }
    }
    
    location /comm
    {
        default_type text/html;
        #設定變數
        set $lable 0;
        if ($request_uri ~* /main.*/homeinfo) {
            set $lable 1;
            content_by_lua_file /usr/local/op/lualib/tcode/busi/main/main.lua;
        }
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Real-Port $remote_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://192.168.1.207:8089/TKB_COMMON;
    }
    #維護中的頁面
    location =/stoptaking.html
    { 
        #expires -1;
        add_header    Cache-Control no-store ;
        index stoptaking.html;
    }
}

到這裡在docker中配置nginx就已經完成了

5、Docker下配置tomcat

(1)搜尋tomcat映象

search 語法:

sudo docker search 映象名稱:映象TAG

# 如: 沒有加TAG,表示預設搜尋的是最新版本的tomcat映象
$ sudo docker search tomcat

# 如:搜尋 tomcat 8.5 版本
$ sudo docker search tomcat:8.5

(2)拉取映象

# 拉取 tomcat映象
sudo docker pull tomcat

# 檢視docker所有的映象
sudo docker image ls

建立容器

# -p表示埠對映
sudo docker run -d -p 9000:8080 --name mytomcat -v /data/my_tomcat:/usr/local/tomcat/webapps tomcat
  • docker run 其實是 create 和 start 兩個命令的合併
  • d 表示後臺執行容器,並返回容器ID
  • p 8090:8080 表示 將容器的8080埠對映到主機的8090埠,前者是主機訪問埠:後者是容器內部埠
  • --name 給容器起別名,如 my_tomcat
  • tomcat:8.5 表示 映象名稱:映象TAG,預設最新版可以不加TAG
  • -v 表示把容器中的某個資料夾掛載到主機中,格式: -v 主機目錄:容器目錄
    執行成功後如下圖所示
    image

(3)進入映象的方法
有兩種方式:
1進入一個正在執行容器的目錄

docker ps     # 檢視正在執行的容器,並得到 容器id

# 進入tomcat容器內部
docker exec -it [容器id] /bin/bash  # 中間那個是容器id 就是 CONTAINER_ID
#  -it 表示進入

2run執行容器並進入容器目錄

sudo docker run -it -p 8090:8080 tomcat /bin/bash     # 執行容器並進入容器目錄,但不啟動 tomcat

停止執行的容器

docker stop [容器id]   # 如 sudo docker stop f96d191f065c

6、Docker下部署MySQL

1、準備工作

已安裝Docker、開放了伺服器安全組訪問規則埠號
2、下載mysql8.0 docker映象

docker pull mysql:8.0.28

3、檢視下載的docker映象

docker images

4、建立掛載目錄

mkdir -p /usr/mysql/conf /usr/mysql/data
chmod -R 755 /usr/mysql/

5、建立my.cnf,注意配置檔案中的埠號、字符集、時區

vim /usr/mysql/conf/my.cnf

配置資訊

[client]

#socket = /usr/mysql/mysqld.sock

default-character-set = utf8mb4

[mysqld]

#pid-file        = /var/run/mysqld/mysqld.pid

#socket          = /var/run/mysqld/mysqld.sock

#datadir         = /var/lib/mysql

#socket = /usr/mysql/mysqld.sock

#pid-file = /usr/mysql/mysqld.pid

character_set_server = utf8mb4

collation_server = utf8mb4_bin

secure-file-priv= NULL

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

# Custom config should go here

!includedir /etc/mysql/conf.d/

6、啟動映象

docker run --name mysql8.0 --restart=always -p 3305:3306 -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/mysql-files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD="123123123" -e TZ=Asia/Shanghai -d mysql:8.0.28 --lower-case-table-names=1

引數解釋:
-v : 掛載宿主機目錄和 docker容器中的目錄,前面是宿主機目錄,後面是容器內部目錄
-d : 後臺執行容器
-p 對映容器埠號和宿主機埠號
-e 環境引數,MYSQL_ROOT_PASSWORD設定root使用者的密碼
--lower_case_table_names 是否配置忽略表名大小寫,1忽略0不忽略

7、修改mysql密碼、設定遠端訪問
進入容器

docker exec -it mysql8.0 /bin/bash

連線mysql

mysql -uroot -p

使用mysql庫

$ mysql> use mysql

修改訪問主機以及密碼等,設定為所有主機可訪問

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密碼';

注意:
這裡用了mysql_native_password,mysql8.x版本必須使用這種方式修改密碼,否則navicate無法正確連線

重新整理

$ mysql> flush privileges;

7、Docker下部署Redis

1、拉取映象
docker pull redis
2、建立容器
docker run -di --name=myredis -p 6379:6379 redis
3、進入容器
docker exec -it myredis /bin/bash
image

8、安裝JDK

例如:我們以jdk17為例,在列表中檢視可用的JDK軟體包版本,以jdk-17_linux-x64_bin.tar.gz安裝包為例,執行以下命令。

mkdir /usr/local/jdk
cd /jdk
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
# 解壓jdk安裝包到jdk目錄下
tar -xvf jdk-17_linux-x64_bin.tar.gz

配置環境變數

vi /etc/profile

在底部新增如下資訊:

#set java environment
JAVA_HOME=/usr/local/jdk/jdk-17.0.6
JRE_HOME=$JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JRE_HOME/lib/tools.jar
export JAVA_HOME JRE_HOME PATH CLASSPATH

執行以下命令儲存並退出。

:wq

執行以下命令使/etc/profile裡的配置生效。

source /etc/profile

驗證安裝。

java -version

回顯資訊如下所示驗證安裝jdk成功。

java version "17.0.6" 2023-01-17 LTS
Java(TM) SE Runtime Environment (build 17.0.6+9-LTS-190)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.6+9-LTS-190, mixed mode, sharing)

到這裡完成基於Tomcat快速構建Java Web環境

9、安裝寶塔皮膚

執行以下命令,下載並安裝寶塔皮膚。

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

一鍵完成作業系統映象源的配置。

wget http://mirrors.myhuaweicloud.com/repo/mirrors_source.sh && sh mirrors_source.sh

安裝完成後,回顯如下資訊:
image

相關文章