目錄 php
準備工做html
安裝linux系統前端
重置root管理員密碼node
源代碼編譯linux
RPMc++
YUM軟件倉庫shell
配置本地YUM倉庫數據庫
初始化及啓動進程apache
參考資料centos
準備工做
電腦:個人配置是24G內存+i7+512G SSD+1060顯卡 (注意:內存必定要8G以上,SSD硬盤)
CPU須要支持VT(Virtualization Technology,虛擬化技術):VT,指的是讓單臺計算機可以分割出多個獨立資源區,並讓每一個資源區按照須要模擬出系統的一項技術,其本質就是經過中間層實現計算機資源的管理和再分配,讓系統資源的利用率最大化。
軟件:VMware WorkStation Pro 12 (老劉推薦的,RHCE 7.0考試環境用的VM12)
安裝虛擬機:略,網上教程不少
鏡像或工具校驗:保證軟件包的安全與完整性 (linux的鏡像能夠去阿里雲或網易去下載)
安裝linux系統
1.虛擬機設置
新建虛擬機
步驟:建立新的虛擬機--新建虛擬機嚮導--稍後安裝操做系統--操做系統「Linux」,版本爲「Red Hat Enterprise Linux 7 64位—填寫虛擬機名稱和安裝路徑--「最大磁盤大小」設置爲20.0GB(默認便可)
虛擬機設置
步驟:虛擬機設置--硬件--內存(最低1G)--處理器(開啓虛擬化功能,核心保持與物理機一致能夠提升性能)--光驅(使用IOS鏡像)--網絡適配器(僅主機模式)--顯示器(自動檢測)
圖2-1 處理器,光驅設置
圖2-2 網卡,顯示器設置
橋接模式:至關於在物理主機與虛擬機網卡之間架設了一座橋樑,從而能夠經過物理主機的網卡訪問外網。
NAT模式:讓VM虛擬機的網絡服務發揮路由器的做用,使得經過虛擬機軟件模擬的主機能夠經過物理主機訪問外網,在真機中NAT虛擬機網卡對應的物理網卡是VMnet8。
僅主機模式:僅讓虛擬機內的主機與物理主機通訊,不能訪問外網,在真機中僅主機模式模擬網卡對應的物理網卡是VMnet1。
注意:把USB控制器、聲卡、打印機設備等不須要的設備通通移除掉。移掉聲卡後能夠避免在輸入錯誤後發出提示聲音,確保本身在從此實驗中思緒不被打擾。
2.安裝linux系統
進入安裝界面,選擇Install Red Hat Enterprise Linux 7.0選項來直接安裝Linux系統。
步驟:安裝嚮導的初始化--選擇系統的安裝語言--安裝系統界面--選擇系統軟件類型--配置網絡和主機名--系統安裝媒介的選擇-- RHEL 7系統的安裝界面--設置root管理員的密碼--建立本地的普通用戶--系統安裝完成,重啓—啓用Kdump服務--系統的歡迎界面
圖2-3 安裝界面選擇
圖2-4 安裝界面,選擇系統軟件
圖2-5 網絡,主機名,硬盤設置
圖2-6 系統安裝過程,root密碼設置
圖2-7 啓用Kdump服務
圖2-8 系統的歡迎界面
重置root管理員密碼
1.查看當前系統版本
[root@redhat7 桌面]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.0 (Maipo)
2.重置root管理員密碼(redhat7.0)
步驟:引導界面經過按鍵e進入內核編輯界面--在linux16這一行最後插入 rd.break (注意,rd.break前面要加個 \)--ctrl+x重啓進入緊急救援模式--依次輸入一下命令:
mount -o remount,rw /sysroot
chroot /sysroot
passwd
touch /.autorelabel
exit
reboot
圖2-9 引導界面
圖2-10 內核編輯界面
圖2-11 緊急救援模式界面
圖2-12 密碼重置,舊密碼已失效
3.重置root管理員密碼(redhat6.4)
重啓系統,按E或ESC進入GRUB啓動菜單
按E進入編輯界面,修改啓動參數
編輯內核啓動參數;能夠在行尾添加single 或 1,表示進入單用戶模式;按enter鍵確認後按b鍵進入boot模式
修改系統密碼;完成後輸入重啓命令
從新登錄系統
源代碼編譯
優勢:得到最新的軟件版本,及時修復bug;根據用戶須要,靈活定製軟件功能
應用場合
安裝較新版本的應用程序時;自由軟件的最新版本大都以源碼的形式最早發佈
當前安裝的程序沒法知足須要時;編譯安裝可由用戶自行修改、定製功能
須要爲應用程序添加新的功能時;用戶能夠從新配置、自由修改源代碼,加入新的功能
1.編譯安裝源代碼包
完整性校驗:md5sum校驗工具;計算MD5校驗和,並與官方提供的值相比較,判斷是否一致;對於下載回來的軟件包文件,若是MD5校驗和與官方提供的不一致,則說明該軟件包在網絡傳輸過程當中可能被非法改動過
對於校驗和不一致的軟件包,應儘可能不要使用,以避免帶來病毒、木馬等不安全因素
2.編譯安裝的基本過程
環境:需安裝支持C/C++程序語言的編譯器,如:gcc-4.4.7-4.el六、gcc-c++-4.4.7-4.el6 ;make-3.81-20.el6.……
步驟1.解包:習慣上將軟件包釋放到/usr/src/ 目錄;解包後的源代碼文件位置: /usr/src/軟件名-版本號/
步驟2. 配置:使用源碼目錄中的configure 腳本;執行「./configure --help」 能夠查看幫助;典型的配置選項: --prefix=軟件安裝目錄。在linux系統中經過源代碼方式安裝軟件時,也能夠將全部程序文件安裝到同一個文件夾,如:(/configure—prefix=/usr/local/apache)中。
步驟3. 編譯:執行make 命令
步驟4. 安裝:執行make install 命令
圖2-13 源代碼安裝步驟
在linux中編譯源代碼須要使用gcc. Make編譯環境;從源代碼安裝應用程序的基本過程包括解包. 配置. 編譯. 安裝這四個步驟。
3.configure腳本的通用功能
configure通常都會接受如下幾個編譯選項:
--prefix= :指定安裝的路徑
--sysconfdir= :指定配置文件目錄
--enable-feature :啓用某個特性
--disable-fecture :禁用特性
--with-function :啓用某功能
--without-function :禁用某功能
不一樣的程序,其configure選項不盡相同,應使用"./configure --help"獲取具體的信息。
4.源碼編譯安裝須知
4.1.上面的每個步驟都不能出錯,不然後一步都不能正常進行。
4.2.上面的步驟每一步若是出現警告或錯誤,若是步驟未中止而是繼續,則屬於可忽略錯誤或警告,不影響安裝。可是進行的步驟中止了出現警告或錯誤,則根據步驟考慮對策。可使用「$?」命令查看上一個命令是否正確執行,若是是返回0則是正確,其餘的則是錯誤。
4.3.卸載時,只需刪除安裝目錄便可。
所以,若要便於刪除,最好將源碼程序安裝在/usr/local/對應的目錄下。例如apache2安裝在/usr/local/apache2下。
4.4.經過源碼編譯的軟件,須要作一些後續操做,雖非必須,可是都是個性化定製,方便之後的操做。個性化定製大體包括如下幾項:
4.4.1.將安裝路徑下的命令路徑加入到環境變量。
shell> echo "export PATH=/usr/local/apache/bin:$PATH" > /etc/profile.d/apache.sh
shell> chmod +x /etc/profile.d/apache.sh
shell> source /etc/profile.d/apache.sh
4.4.2.按需求定製服務啓動腳本,並考慮是否加入開機啓動項。
4.4.3.輸出頭文件和庫文件。頭文件庫文件不少時候只是爲其餘程序提供的,因此可能不輸出它們的路徑也不會影響該程序的運行。
# 輸出頭文件 shell> ln -s /usr/local/apache/include /usr/include/apache
# 輸出庫文件
shell> echo "/usr/local/apache/lib" >/etc/ld.so.conf.d/apache.conf
shell> ldconfig
4.4.4.導出man路徑 shell> echo "MANPATH /usr/local/apache/man" >> /etc/man.conf
RPM(紅帽軟件包管理器)
rpm=源代碼+安裝規則-->下降軟件安裝難度(經過將程序源代碼與安裝規則打包到一塊兒,無需用戶手動設置)
命名格式:軟件名-軟件版本-發佈次數.操做系統類型.硬件架構類型.rpm
圖2-14 RPM命名格式
1.查詢 RPM 軟件包信息
1.1.查詢已安裝的rpm軟件信息
語法:rpm -q[子選項] [軟件名]
用法:結合不一樣的子選項完成不一樣查詢
-qa:查看系統中已安裝的全部RPM軟件包列表
-qi:查看指定軟件的詳細信息(--info)
-ql:查詢指定軟件包所安裝的目錄、文件列表(--list)
1.2.查詢文件或目錄屬於哪一個RPM 軟件
語法:rpm - qf文件或目錄名
1.3.查詢未安裝的RPM 包文件
語法:rpm - qp[子選項] RPM包文件
用法: -qpi:經過.rpm包文件查看該軟件的詳細信息
-qpl:查看.rpm安裝包內所包含的目錄、文件列表
注意:使用rpm命令只能查詢經過 RPM方式安裝的軟件包信息用其餘途徑安裝到系統中的軟件包,rpm命令將沒法獲取相關信息
2. 安裝、升級、卸載 RPM 軟件包
2.1.安裝或升級RPM軟件
語法:rpm [選項] RPM包文件...
用法:-i:安裝一個新的rpm 軟件包
-U:升級某個rpm 軟件,若本來未裝,則進行安裝
-h:以「#」號顯示安裝的進度
-v:顯示安裝過程當中的詳細信息
2.2.卸載指定的RPM軟件
語法:rpm -e 軟件名
--nodeps:刪除軟件包,即便有依賴關係的軟件包任然安裝在系統上
--test:不執行任何動做,只打印輸出
3. 維護RPM數據庫
linux中保留了當前安裝軟件的數據庫,該數據庫位於/var/lin/rpm/目錄中。使用file /var/lib/rpm/*命令查看目錄內容,能夠看到都是二進制形式的散列數據庫文件。
查看數字簽名
4.解決軟件包依賴關係
安裝有依賴關係的多個軟件時:被依賴的軟件包須要先安裝;可同時指定多個.rpm 包文件進行安裝
卸載有依賴關係的多個軟件時:依賴其餘程序的軟件包須要先卸載;可同時指定多個軟件名進行卸載
忽略依賴關係:結合「--nodeps」選項,但可能致使軟件異常
擴展:RPM相關注意事項
RPM軟件包的先決條件能夠運用命令行選項—requires和—provides直接查看
安裝vsftpd的先決條件: 命令rpm -q -requires vsftpd
顯示軟件包顯性提供內容:命令rpm -q -provides vsftpd
顯示vsftpd的安裝腳本: 命令rpm -q --scripts vsftpd
按時間順序顯示系統上安裝的RPM包:命令rpm -qa –last
解決RPM的些常見問題(訪問數據庫)
Killall-9 rpm 命令殺死全部當前掛起的rpm進程
將RPM數據庫目錄(/var/lib/rpm/)中全部以 _db. 開頭的文件刪除
注意:RPM安裝方式在實際生產環境中並不經常使用(依賴關係太多,不如yum方便),通常經常使用的安裝方式爲源碼,yum及腳本安裝。
YUM軟件倉庫
Yum(全稱爲 Yellow dog Updater, Modified)是Linux系統中的Shell前端軟件包管理器。基於RPM包管理,可以從指定的服務器(YUM軟件倉庫)自動下載RPM包而且安裝,能夠自動處理依賴性關係,而且一次安裝全部依賴的軟件包。
簡單來講就是:進一步下降軟件的安裝難度。(經過將大量的、經常使用的RPM軟件包存放到一塊兒,根據用戶的需求而進行自動安裝)。
圖2-15 Yum軟件倉庫技術拓撲
yum提供了查找、安裝、刪除某一個、一組甚至所有軟件包的命令,並且命令簡潔而又好記。
語法: yum (選項) (參數)
選項: -y:對全部的提問都回答「yes」;
-c:指定配置文件;
-q:安靜模式;
參數: install: 安裝rpm軟件包;
update: 更新rpm軟件包;
check-update: 檢查是否有可用的更新rpm軟件包;
remove/erase: 刪除指定的rpm軟件包;
list: 顯示軟件包的信息;
search: 檢查軟件包的信息;
info: 顯示指定的rpm軟件包的描述信息和概要信息;
clean: 清理yum過時的緩存;
resolvedep: 顯示rpm軟件包的依賴關係;
localupdate: 顯示本地rpm軟件包進行更新;
deplist: 顯示rpm軟件包的全部依賴關係。
實例,部分經常使用的命令包括:
自動搜索最快鏡像插件:yum install yum-fastestmirror
安裝yum圖形窗口插件:yum install yumex
查看可能批量安裝的列表:yum grouplist
yum groupinsall group1 #安裝程序組group1
yum check-update #檢查可更新的程序
yum upgrade package1 #升級指定程序包package1
yum groupinfo group1 #顯示程序組group1信息
yum search string #根據關鍵字string查找安裝包
配置本地YUM倉庫(基於iOS鏡像)
/etc/yum.conf是yum的默認文件,裏面配置的也是全局默認項。
[root@server2 ~]# cat /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever <==緩存目錄
keepcache=0 <==是否保留緩存,設置爲1時,安裝包時所下載的包將不會被刪除
debuglevel=2 <==調試信息的級別
logfile=/var/log/yum.log <==日誌文件位置
exactarch=1 <==設置爲1將只會安裝和系統架構徹底匹配的包
obsoletes=1 <==是否容許更新舊的包
gpgcheck=1 <==是否要進行gpg check
plugins=1 <==是否容許使用yum插件
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release <==指定基準包,yum會根據這個包判斷髮行版本
1.軟件倉庫的提供方式 :FTP服務:ftp://...... ;HTTP服務:http://...... ;本地目錄:file:///.......
2.RPM軟件包的來源 :Red Hat發佈的RPM包集合 ;第三方組織發佈的RPM包集合 ;用戶自定義的RPM包集合
3.構建RHEL 6軟件倉庫(本地源):RPM包來自RHEL 6 DVD光盤,經過FTP、HTTP
或本地目錄提供給客戶機
3.1.建立文件夾/cdrom,將光盤文件複製到/cdrom
[root@RedHat6 桌面]# mkdir /cdrom
[root@RedHat6 桌面]# cp -rf /media/RHEL_6.4\ x86_64\ Disc\ 1/* /cdrom/
3.2.進入/etc/yum.reposd/目錄刪除原有文件
[root@RedHat6 桌面]# cd /etc/yum.repos.d/
[root@RedHat6 yum.repos.d]# rm -rf *
3.3.編輯配置文件local.reop
[root@RedHat6 yum.repos.d]# cat local.repo
[cdrom] <==倉庫類別
name=cdrom <==倉庫名稱(說明)
baseurl=file:///cdrom <==URL訪問路徑
enabled=1 <==啓用此軟件倉庫
gpgcheck=0 <==驗證軟件包的簽名(1是,0否)
3.4.獲取yum列表:驗證yum配置是否成功
[root@RedHat6 yum.repos.d]# yum clean all <==清空緩存
[root@RedHat6 yum.repos.d]# yum makecache <==生成元數據緩存
[root@RedHat6 yum.repos.d]# yum list <==查詢軟軟件包列表
YUM緩存目錄:存放下載的軟件包、倉庫信息等數據,位於/var/cache/yum/$basearch/$releasever
初始化及啓動過程
Linux操做系統的開機過程是這樣的,即從BIOS開始,而後進入Boot Loader,再加載系統內核,而後內核進行初始化,最後啓動初始化進程。初始化進程做爲Linux系統的第一個進程,它須要完成Linux系統中相關的初始化工做,爲用戶提供合適的工做環境。
圖2-13 linux6.0 初始化過程
1.詳細步驟:( centos6)
1.加載BIOS的硬件信息,獲取第一個啓動設備
2.讀取第一個啓動設備MBR的引導加載程序(grub)的啓動信息
3.加載核心操做系統的核心信息,核心開始解壓縮,並嘗試驅動全部的硬件設備
4.核心執行init程序,並獲取默認的運行信息
5.init程序執行/etc/rc.d/rc.sysinit文件
6.啓動核心的外掛模塊
7.init執行運行的各個批處理文件(scripts)
8.init執行/etc/rc.d/rc.local
9.執行/bin/login程序,等待用戶登陸
10.登陸以後開始以Shell控制主機
2.CentOS7與6版本的不一樣之處:
6 : grub0.9和upstart
7 : grub2和systemd
3.詳細步驟:( centos7)
1.UEFi或BIOS初始化,運行POST開機自檢
2.選擇啓動設備
3.引導裝載程序:grub2
4.加載裝載程序的配置文件:/boot/grub2/grub.cfg
5.加載initramfs驅動模塊:/boot/initramfs-3.10.0-693.el7.x86_64.img
6.加載內核:/boot/vmlinuz-3.10.0-693.el7.x86_64
7.內核初始化:systemd
8.執行initrd.target全部單元,包括掛載/etc/fstab
9.從initramfs根文件系統切換到磁盤根目錄
10.systemd執行默認target配置,配置文件/etc/systemd/system/default.target
11.systemd執行sysinit.target初始化系統及basic.target準備操做系統
12.systemd啓動multi-user.target下的本機與服務器服務
13.systemd執行multi-user.target下的/etc/rc.d/rc.local
14.Systemd執行multi-user.target下的getty.target及登陸服務
15.若是啓動圖形界面systemd執行graphical須要的服務
4. centOS 6 與 centOS 7的區別
System V init運行級別 |
systemd目標名稱 |
做用 |
0 |
runlevel0.target, poweroff.target |
關機 |
1 |
runlevel1.target, rescue.target |
單用戶模式 |
2 |
runlevel2.target, multi-user.target |
等同於級別3 |
3 |
runlevel3.target, multi-user.target |
多用戶的文本界面 |
4 |
runlevel4.target, multi-user.target |
等同於級別3 |
5 |
runlevel5.target, graphical.target |
多用戶的圖形界面 |
6 |
runlevel6.target, reboot.target |
重啓 |
emergency |
emergency.target |
緊急Shell |
表1-1 systemd與System V init的區別和做用
System V init命令(RHEL 6系統) |
systemctl命令(RHEL 7系統) |
做用 |
service foo start |
systemctl start foo.service |
啓動服務 |
service foo restart |
systemctl restart foo.service |
重啓服務 |
service foo stop |
systemctl stop foo.service |
中止服務 |
service foo reload |
systemctl reload foo.service |
從新加載配置文件(不終止服務) |
service foo status |
systemctl status foo.service |
查看服務狀態 |
表1-2 systemctl管理服務的啓動、重啓、中止、重載、查看狀態等經常使用命令
System V init命令(RHEL 6系統) |
systemctl命令(RHEL 7系統) |
做用 |
chkconfig foo on |
systemctl enable foo.service |
開機自動啓動 |
chkconfig foo off |
systemctl disable foo.service |
開機不自動啓動 |
chkconfig foo |
systemctl is-enabled foo.service |
查看特定服務是否爲開機自動啓動 |
chkconfig --list |
systemctl list-unit-files --type=service |
查看各個級別下服務的啓動與禁用狀況 |
表1-3 systemctl設置服務開機啓動、不啓動、查看各級別下服務啓動狀態等經常使用命令
5.centos7相比centos6作了哪些改進?
5.1.systemd取代了init,成爲系統的第一個進程,而且init是串行啓動,而systemd是並行啓動
5.2.內核版本的升級,系統安全補丁獲得加強。
5.3.文件系統由ext4升級到xfs,XFS比EXT4更適合大文件處理,但消耗的CPU資源是EXT4的兩倍
5.4.防火牆firewalld代替了iptables
6. RHEL 7修改默認級別方法(老劉書上只有一條命令,不是很清楚)
6.1.打開inittab,發現熟悉的inittab中沒有了修改默認運行級別,中間沒有了熟悉的 id:5:initdefault 。
圖2-14 inittabp默認配置
6.2.RHEL7 使用systemd建立符號連接指向默認運行級別
步驟:
1.首先刪除已經存在的符號連接 rm /etc/systemd/system/default.target
2.默認級別轉換爲3(文本模式) ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
或者默認級別轉換爲5(圖形模式) ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
3.重啓 reboot
圖2-15 默認級別轉換測試
這裏曬下讀書筆記
參考資料
劉瑞 Linux就該怎麼學
駿馬金龍 http://www.javashuo.com/article/p-aobxvaow-m.html