伺服器架設與規劃課程 09/19-01/09 -------------------- 老師上課筆記跟影片: 筆記: https://hackmd.io/@esys/ByWx4KHbs/%2FqJIQwbaZT6O5RtwXInX2xg 影片 https://www.youtube.com/playlist?list=PLhg8hnlDpjb_J9o679eXX8sq69Rq65gwh --------------------------------------------- 0919 ------ 因為學校版本VMWare版本較舊,開啟server前要修改版本 進到 .vmx檔 修改 virtualHW.version = "16" 新增兩張網卡 1: NAT 2: Bridge 注意網卡順序不要設錯張!!! 從student轉成root帳戶 - sudo su - 接著要設定網卡, DHCP: 圖像化介面的話的話直接按connect就可以了 純文字介面的話要使用nmtui功能,才可啟用 STATIC: 圖像化介面:選擇Wired Setting 進入後再改成手動(Manual) 輸入IP位置10.6.x.5(第一台)或11(第二台) 及 255.255.255.0 即可完成操作 設定完成後兩台可以互連試試看 ping 有沒有辦法連線 **因為在Linux上很難操作,可以在本機windows使用遠端連進去。 使用git-bash檔案 先進到windows的網路介面設定-ipv4新增ip位置 在停用vmware的網路 在git-bash程式輸入ssh 10.6.x.5@student即可連到** 0926 --------------- 連至linux時 每個都會叫localhost 為了方便 可以修改主機名稱 **使用圖像化界面:** 1.先轉成root權限 2.關鍵指令 echo server1 > /etc/hostname cat /etc/hostname 3.記得一定要重新開機 **使用純文字系統:** 1.輸入nmtui 2.選擇第三個,輸入你想修改的名字 3.即可完成修改 **基本操作** ls-->查看檔案 cd-->進入檔案 cp-->複製檔案 touch -->指令建立空檔案 **vi 指令控制(很重要)** 存檔 :w 離開 :q 存檔後離開 :wq 不存檔離開 :q! 強制存檔 :w! (需要有相關權限) 尋找字串 /{word} ({word} 代表要找的字串) 10/3 --------------- **使用者與群組建立:** 新增使用者: useradd (name) 新增群組:groupadd (name) 如果一次要建立很多帳號密碼: mkdir lab1/; cd lab1/ (建立資料夾後進入) vi userlist (使用vi編輯) stuxxx:P@ssw0rd:1104:1001::/home/stuxxx:/bin/bash (輸入建立帳號密碼) newusers < userlist (newusers用來批次建立帳號) **密碼修改:** cd ~/lab1/ ---->(進去資料夾) vi newpass.txt ---->(打開vi檔) 即可更改 **移除使用者:** cd進去後 輸入 userdel xxx 即可完成 10/10 ---------------------------- 國慶日放假開心 10/17 ---------------------------- **權限設定(期末考會考)** 要自己判斷題目所需,給予權限的號碼 (對照表從老師筆記抓來的)  ls: 查看物件資訊 chown: 修改物件 Owner chgrp: 修改物件 Group chmod: 修改物件權限*(輸入判斷的權限號碼)* 10/24 ---------------------------- **校時很重要(期末考會考)** 調整時間有很多種方式 date 與 timedatectl 顯示目前系統時間 **安裝網路校時套件:** dnf install -y chrony systemctl enable --now chronyd **修改時區** timedatectl set-timezone Asia/Taipei 11/01 ------------------------------------ crontab -l --->查看目前使用者工作排程 rpm套件安裝指令繁瑣,直接查看老師筆記 **磁碟管理(期末考重點)** 1.查看可用磁碟列表 df -h 2.查看磁碟資訊 lsblk 3.格式化磁碟為 xfs 檔案系統 mkfs.xfs /dev/sdb 4.建立資料夾 mkdir /mydata/ 5.將 /dev/sdb 掛載到 /mydata 裡並使用 mount /dev/sdb /mydata/ ls -l /mydata/ touch /mydata/f1.txt ls -l /mydata/ 6.查看磁碟掛載資訊 df -h /mydata 11/7 --------------------- 直接看老師筆記即可 (面試題目分享及DNS 客戶端基本操作) 11/14 ------------------------- **HTTP 網頁服務** 1.安裝 httpd 套件 dnf install httpd 2.開機時啟動 httpd 服務 systemctl enable httpd systemctl start httpd 3.設定防火牆 firewall-cmd --permanent --add-service=http firewall-cmd --reload firewall-cmd --list-all | grep http server1可以開啟瀏覽器 連入 http://10.6.X.11/ 4.server2設定首頁檔案 *(php語法分只是範例 可以自行替換)* echo "Hello ServerX" > index.html root# ls -lh index.html -rw-r--r--. 1 root root 14 Nov 12 21:55 index.html **PHP功能安裝** 1.安裝 PHP 相關基本套件 dnf install -y php 2.首次安裝,需要重新啟動 httpd 套用相關設定檔案。 systemctl restart httpd 3.在 web1.domainX.linux.class 中,新增 PHP 測試程式 cd /var/www/html/web1.domainX.linux.class/ echo '<?php phpinfo(); ?>' > phpinfo.php (以上PHP在第二台完成) (接著要到第一台電腦測試!!!!) Server1 裡,開啟 Firefox後輸入 http://web1.domainX.linux.class/phpinfo.php 查看 PHP 資訊。 11/21 --------------------- **MariaDB 資料庫安裝(期末考會考)** 在第二台電腦安裝!! 1.查看系統中是否有 MariaDB 安裝套件 dnf list mariadb-server 2.安裝 MariaDB Server dnf install -y mariadb-server 3.查看資料庫實體檔,並建立初始化資料 ls -l /var/lib/mysql/ systemctl enable --now mariadb ls -l /var/lib/mysql/ 查看 MariaDB 服務狀態 systemctl status mariadb **設管理者密碼** 輸入 mysql_secure_installation 然後跑出來全部輸入Y(代表YES) 看到 MariaDB [(none)]> 後,代表已經成功登入並且可以開始進行資料庫操作 建立一個 classdb 資料庫 MariaDB [(none)]> CREATE DATABASE classdb; 刪除 classdb 資料庫 MariaDB [(none)]> DROP DATABASE classdb; **phpMyAdmin Web 管理介面** 1.安裝 Apache (httpd) 與 PHP (php-fpm) 服務。 dnf install -y httpd php-fpm 2.安裝 phpMyAdmin 需要的 PHP 模組。 dnf install -y php-pdo php-mysqli php-mbstring php-json php-xml 3.安裝解開 .tar.gz 的套件。 dnf install -y tar 4.重新啟動 php-fpm,讓剛才安裝好的模組生效。 systemctl restart php-fpm 安裝 phpMyAdmin (在第二台電腦安裝!!) cd /var/www/html/ curl -OJL https://files.phpmyadmin.net/phpMyAdmin/5.2.0/phpMyAdmin-5.2.0-all-languages.tar.gz tar -zxf phpMyAdmin-5.2.0-all-languages.tar.gz mv phpMyAdmin-5.2.0-all-languages sql 完成後即可登入囉!!! (在第一台電腦操作) 輸入http://10.6.X.11/sql/ 網址 剩下的PHPMYADMIN資料庫基本操作已經會了 不做筆記 11/28 ------------------------ **資料庫備份與還原** **測試資料** curl -OJL https://www.mysqltutorial.org/wp-content/uploads/2018/03/mysqlsampledatabase.zip sudo dnf install -y unzip sudo unzip mysqlsampledatabase.zip ls -lh mysql -u root -p -h localhost < mysqlsampledatabase.sql mysql -u root -p -h localhost MariaDB [(none)]> show databases; **備份** 在目錄中建立 db_backup 資料夾,並切換到該目錄。 cd; mkdir db_backup; cd db_backup/ mysqldump 指令進行備份 mysqldump -u root -p -h localhost classicmodels > classicmodels.sql mysqldump -uroot -pYOUR_PASS_WORD -h localhost classicmodels > classicmodels_001.sql ls **還原** 工作目錄切換到資料庫備份 cd ~/db_backup/ 建立一個新的資料庫,以供還原使用。 mysql -u root -p -h localhost MySQL> SHOW DATABASES; MySQL> CREATE DATABASE classdb; MySQL> SHOW DATABASES; MySQL> exit; mysql -u root -p -h localhost classdb < classicmodels.sql **NFS 網路檔案系統(重要!!期末考會考)** 安裝 nfs-utils 套件。 root# dnf list nfs-utils root# dnf install -y nfs-utils root# dnf list nfs-utils 建立檔案存放路徑。 root# mkdir /nfsshare 設定分享目錄路徑。 root# vi /etc/exports /nfsshare 10.6.X.5(rw) 以上設定了來自 10.6.X.5 的 IP,可以對 /nfsshare 進行讀寫(rw)。 設定開機自動啟動 NFS 服務,並設定防火牆可使用 NFS 連線進入。 root# systemctl enable --now nfs-server root# firewall-cmd --list-all root# firewall-cmd --permanent --add-service=nfs root# firewall-cmd --reload root# firewall-cmd --list-all **驗證** @Server1 建立掛載目錄,並測試將 Server1 中的 NFS 目錄掛載起來。 root# mkdir /nfs-mount root# mount -t nfs 10.6.X.11:/nfsshare /nfs-mount 在掛載目錄中測試新增檔案,會出現錯誤。 root# cd /nfs-mount root# touch file FAIL! @Server2 在 NFS Server 中,設定分享目錄的擁有者與群組均為 nobody。 root# chown -R nobody:nobody /nfsshare @Server1 在 Server1,再次測試新增檔案,此時應能順利新增。 root# cd /nfs-mount root# touch file 當 Server1 寫入檔案時,實際上應該會寫到 Server2 的分享目錄,可以使用 ls 進行確認檔案是否存在。 @Server2 root# ls -l /nfsshare **開機自動掛載** 若要在 Server1 中將 NFS 的分享目錄在開機時自動掛載,必須修改 /etc/fstab 檔案。 @Server1 root# vi /etc/fstab 最後新增 10.6.X.11:/nfsshare /nfs-mount nfs rw,soft 0 0 root# cd root# umount /nfs-mount root# df -h /nfs-mount root# mount -a root# df -h /nfs-mount mount -a 必須無錯誤 root# reboot root# df -h /nfs-mount 清除作業 在 Server1 中,還原 /etc/fstab 中的 NFS 掛載項目。 @Server1 root# vi /etc/fstab 刪除 nfs 掛載至 /nfs-mount 行 刪除此行: 10.6.X.11:/nfsshare /nfs-mount nfs rw,soft 0 0 存檔後離開 root# umount /nfs-mount @Server2 在 Server2 中,清空 NFS 設定檔,並移除相關套件。 root# &> /etc/exports root# systemctl disable nfs-server root# systemctl stop nfs-server root# dnf remove nfs-utils **設定磁碟掛載** @Server2 root# mkdir /mydata/ root# lsblk /dev/sdb root# blkid /dev/sdb blkid 必須為空 root# mkfs.xfs /dev/sdb root# blkid /dev/sdb /dev/sdb: UUID="542a5102-6747-41b2-b56c-e0511b6f8169" BLOCK_SIZE="512" TYPE="xfs" **記下 UUID 字串** root# vi /etc/fstab 最後一行新增 ... UUID=542a5102-6747-41b2-b56c-e0511b6f8169 /mydata xfs defaults 0 0 root# mount -a 必須沒有任何訊息出現 root# reboot (重新開機) 12/5 ----------------------------------------- # **Apache + NFS** **一、設定獨立儲存空間** @Server2 檢視並格式化 /dev/sdb。 root# lsblk /dev/sdb root# mkfs.xfs /dev/sdb 取得 /dev/sdb 格式化後的 UUID。 root# blkid /dev/sdb 將 UUID 資訊記錄下來,供 /etc/fstab 設定使用。 建立 NFS 分享目錄。 root# mkdir /web/ 設定磁碟自動掛載 root# vi /etc/fstab 最後一行新增 ... UUID=XXXX-YYY-ZZZ /web xfs defaults 0 0 確認 /etc/fstab 檔案設定正確 root# mount -a 如發生錯誤,必須再次檢查 /etc/fstab 配置是否正確。 此時 /web/目錄應有獨立可用空間。 root# df -h /web/ **二、設定 NFS 服務** @Server2 安裝 NFS 套件。 root# dnf install -y nfs-utils 設定 10.6.X.5 主機才能夠使用 /web 分享目錄,且只能使用唯讀方式存取。 root# vi /etc/exports /web 10.6.X.5(ro) 啟動 NFS 服務 root# systemctl enable --now nfs-server 設定防火牆讓 NFS 服務提供對外服務,讓其它主機可以連入。 root# firewall-cmd --permanent --add-service=nfs root# firewall-cmd --reload 檢視防火牆規則,確認有提供 nfs 可連入。 root# firewall-cmd --list-all | grep nfs 檢視 NFS 分享路徑 root# showmount -e localhost @Server2 為網站建立首頁檔案,該檔案放在 NFS Server 的分享目錄中。 root# cd /web root# echo helloX > index.html **三、設定 Web Server 服務** @Server1 安裝 Apache httpd 套件。 root# dnf install -y httpd 將 Server2 的 NFS 分享目錄掛載到 Server1 的 /var/www/html 網站根目錄中,並以唯讀方式掛載。 root# mount -t nfs -o ro 10.6.X.11:/web /var/www/html 啟動 httpd Web 服務 root# systemctl enable --now httpd 在 Server1 防火牆中新增規則,讓其它主機可以存取 http 服務。 root# firewall-cmd --permanent --add-service=http 重新載入防火牆規則,使其生效。 root# firewall-cmd --reload 檢視防火牆規則,應包含 http 服務。 root# firewall-cmd --list-all | grep http 初次檢視首頁,應無法檢視自訂網頁內容。 root# curl http://localhost FAIL! **四、設定 SELinux 規則** 打開 SELinux 規則中的 httpd_use_nfs 功能,讓 httpd 可以存取 NFS 內容。 檢視 httpd_use_nfs 目前規則,目前為 off 狀態。 root# getsebool -a | grep httpd_use_nfs 設定 httpd_use_nfs 為 on。 root# setsebool -P httpd_use_nfs on 再次檢視 httpd_use_nfs 目前規則,應顯示為 on。 root# getsebool -a | grep httpd_use_nfs 參考: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/sect-managing_confined_services-the_apache_http_server-configuration_examples **五、檢視 Web 網頁** 使用 curl 工具再次檢視網站首頁,應能顯示自訂內容。 root# curl http://localhost helloX **六、開機自動掛載 NFS 目錄** 在 Server1 主機中,設定重開機後能夠自動掛載 NFS 目錄。 @Server1 修改 /etc/fstab 檔案。 root# vi /etc/fstab 最後一行新增 ... 10.6.X.11:/web /var/www/html nfs ro 0 0 卸載 /var/www/html/ 目錄,供自動掛載測試。 root# umount /var/www/html/ 確認 /var/www/html/ 已無掛載。 root# df -h /var/www/html/ 測試 /etc/fstab 設定。 root# mount -a 確認 /var/www/html/ 順利掛載。 root# df -h /var/www/html/ 在 Server1 重開機確認各目錄與服務自動啟用。 root# reboot **七、再次檢視 Web 網頁** Server1 重開機後,使用 curl 工具再次檢視網站首頁,應能顯示自訂內容。 root# curl http://localhost helloX 剩餘SELinux的部分直接參考老師的筆記! 12/19 -------------------------------------- **Shell Script 簡介** ***Script 宣告*** #!/bin/bash ***取得上一程式執行結果狀態碼*** student$ ls -l /etc/passwd &> /dev/null student$ echo $? student$ ls -l /etc/passwd1 &> /dev/null student$ echo $? ***取得自己的 PID*** echo $$ ***把輸出結果存到變數,並使用之*** student$ date student$ mydate=$(date) student$ echo ${mydate} 程式流程的部分參考老師上課的筆記即可 While迴圈比較不會要多注意 接下來則是Lab練習1-練習3的部分,回去一定要練習 12/26 -------------------------------------- 今天老師在講解期末考試的事項,還有讓我們練習期末考的模擬試題 考試當天網路一定要連通不然無法評分! 1/2 -------------------------------------- 國慶日連假 不上課! 開心 新年快樂 1/9 ----------------------------------------- 殘酷的日子希望能考及格 阿蜜陀佛
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up