“SCSA-S學(xué)習(xí)導(dǎo)圖+”系列:Windows下的WEB系統(tǒng)環(huán)境搭建
時(shí)間:2023-04-30 13:21:01 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2023-04-30 13:21:01 來(lái)源:網(wǎng)站運(yùn)營(yíng)
“SCSA-S學(xué)習(xí)導(dǎo)圖+”系列:Windows下的WEB系統(tǒng)環(huán)境搭建:本期學(xué)習(xí)重點(diǎn):網(wǎng)絡(luò)安全基礎(chǔ)
Windows操作系統(tǒng)
學(xué)習(xí)導(dǎo)圖證書(shū)樣本自推出深信服技術(shù)認(rèn)證A級(jí)不同方向(SCSA-S、SCSA-T、SCCA-C)的學(xué)習(xí)導(dǎo)圖,反響熱烈,讓很多同學(xué)心里“有譜”,對(duì)于體系化學(xué)習(xí)網(wǎng)絡(luò)安全知識(shí)、更快入門(mén)更有信心。
為幫助大家更高效地學(xué)習(xí),盡快通過(guò)深信服技術(shù)認(rèn)證考試,更好地掌握網(wǎng)絡(luò)安全入門(mén)知識(shí)、技能,與實(shí)際工作實(shí)踐相結(jié)合,滿足崗位需求,深信服教學(xué)教研中心的老師推出“SCSA-S學(xué)習(xí)導(dǎo)圖+”系列文章,為大家詳細(xì)講解,
并在文末附有練習(xí)題,讓大家邊學(xué)邊練哦!本期引言:對(duì)于初學(xué)網(wǎng)絡(luò)安全的小伙伴,一直覺(jué)得Linux下的LAMP(Linux+Apache+Mysql+PhP)使用起來(lái)不太方便,不能很好地適應(yīng)命令行界面,也不能忍受Linux圖形界面的設(shè)計(jì)。所以今天我們就來(lái)搭建一套基于Windows的Apache+Mysql+PhP環(huán)境。
很多朋友看到這里,會(huì)推薦使用一些集成度較高的學(xué)習(xí)環(huán)境,比如Apache官方網(wǎng)站上會(huì)推薦的Wamp或XAMPP。但是從網(wǎng)絡(luò)安全的學(xué)習(xí)角度,這樣并不利于理解軟件之間協(xié)同工作原理與軟件的配置,不利于后續(xù)網(wǎng)絡(luò)安全的相關(guān)學(xué)習(xí),下面我們一起開(kāi)始吧~
01軟件下載建議嚴(yán)格從使用官方網(wǎng)站下載。這對(duì)網(wǎng)安初學(xué)者而言,是有些困難的。因?yàn)殚_(kāi)源軟件的官網(wǎng)基本上都沒(méi)有中文界面,同時(shí)想找到下載鏈接也還有些困難, 再者需要針對(duì)一些兼容性并不太好的軟件,需要選擇合適的版本,也會(huì)有一些挑戰(zhàn)。
1. 1 下載Apache通過(guò)搜索引擎,搜索“Apache官網(wǎng)” ,可以非常容易找到官網(wǎng)。進(jìn)去之后可以找到Windows下載頁(yè)面。
但是,進(jìn)去后發(fā)現(xiàn)Apache官網(wǎng)并沒(méi)有提供編譯好的Windows安裝包,只有一些推薦網(wǎng)站。
這里,我們選擇ApacheHaus進(jìn)行下載。下載時(shí)注意下載的位數(shù)與編譯環(huán)境。
下載軟件通常分為32位和64位兩個(gè)版本,如果是64位系統(tǒng)可以運(yùn)行32位軟件,32位系統(tǒng)“不能”運(yùn)行64位軟件,注意有些軟件還提供arm版本,即可以在如手機(jī)等arm平臺(tái)運(yùn)行(這類(lèi)我們暫時(shí)用不到)。
一般標(biāo)識(shí)x86的為32位軟件,標(biāo)識(shí)為x64或amd64的為64位版本,再有其他信息就是一些編譯環(huán)境,編譯環(huán)境決定了你本機(jī)需要安裝的基礎(chǔ)庫(kù)文件。比如在Windows下常見(jiàn)的就.net framework 和 vc ++ 。沒(méi)有.net和vc++,Windows下很多軟件都是無(wú)法使用的。比如下圖中:
這樣看來(lái),在Linux中使用yum 安裝軟件是不是非常方便呢?我們今天的服務(wù)器從Windows server 2003以后,基本上全是64位系統(tǒng),所以我們通常下載64位軟件。
1.2 下載PHP同樣使用搜索引擎搜索“PHP官網(wǎng)” ,從搜索的域名來(lái)判斷,最像官網(wǎng)的就是了,比如這里是
http://www.php.net。
選擇PHP版本,這一步非常重要,因?yàn)镻HP的不同版本之間,兼容性并不太好。這里,因?yàn)槲易詈笮枰惭b的應(yīng)用比較老舊,所以我希望下載一個(gè)PHP 5.X 的版本。那么怎么找到這樣的版本呢?
點(diǎn)擊下載頁(yè)面,我們可以在頁(yè)面上搜索“archive” ,通常表示舊版本的備份。
進(jìn)去后發(fā)現(xiàn)有很多的舊版本,這里注意,因?yàn)槲覀僡pache選擇了64位,所以PHP必須配套選擇64位,否則apache在調(diào)用php時(shí)會(huì)出現(xiàn)異常。然后這里有nts的版本,我們也不太明白可以去通過(guò)搜索引擎去搜索,發(fā)現(xiàn)是環(huán)境下的安全問(wèn)題,大家再根據(jù)搜索引擎自行判斷就好。
1.3 下載MySQL同樣方法找到MySQL官網(wǎng),現(xiàn)在的MySQL因?yàn)楸籵racle收購(gòu),所以會(huì)看到一些oracle的元素,不太影響。這里同樣為了保障兼容性,不要選擇太新的版本。同時(shí)我們初學(xué)者研究的版本不宜太新。
進(jìn)入下載頁(yè)面后,上面都是商業(yè)化版本(收費(fèi))的下載,在下面找到繼續(xù)開(kāi)源的MySQL版本。
我選了MySQL Install for Windows 安裝版本,希望安裝時(shí)能設(shè)置更多的系統(tǒng)配置,而避免出現(xiàn)問(wèn)題。(后面發(fā)現(xiàn),還是有坑)
這里我同樣選擇了一個(gè)比較舊的版本下載。
到此,我們從官網(wǎng)下載了我們需要的軟件,可以發(fā)現(xiàn)軟件下載本身也是一項(xiàng)需要時(shí)間與耐心的工作。這里大家可以配合瀏覽器的翻譯功能,可能有一定幫助。
02軟件安裝2.1 Apache安裝
這里下載的Apache是即開(kāi)即用式,解壓后就可以直接使用。需要注意的一點(diǎn)是,將Apache注冊(cè)為服務(wù),方便管理Apache的啟動(dòng)與停止。在Apache目錄下,使用命令“httpd-k install” 即可安裝Apache服務(wù)。
2.2 PHP安裝PHP只需解壓即可,使用完全不用安裝,因?yàn)樗茿pache的所使用的一個(gè)組件,重點(diǎn)是要配置PHP的配置文件。這點(diǎn)在3.2章節(jié)中會(huì)提到。
2.3 MySQL的安裝這里下載的是MySQL的msi版本,msi版本壓縮程度較高,雙擊后需要解壓縮,進(jìn)程會(huì)出現(xiàn)無(wú)響應(yīng),這里多等一會(huì)即可。
同時(shí)msi版本里面功能較多,這里我們只用選擇我們需要的功能即可。更多的功能需要更多的環(huán)境,比如MySQL對(duì)python的支持,這種功能我們暫時(shí)是用不到的,建議這里手動(dòng)先補(bǔ)齊環(huán)境后再進(jìn)行安裝。不要嘗試讓MySQL安裝程序自動(dòng)去下載環(huán)境,這樣可能會(huì)導(dǎo)致等待更久,且無(wú)法看到進(jìn)度。這里我們安裝了以下組件。
03軟件配置3.1配置Apache
Apache的配置主要通過(guò)配置文件httpd.conf進(jìn)行,這點(diǎn)與Linux一致。配置文件的原理也類(lèi)似。重點(diǎn)配置以下幾點(diǎn):
(1)配置apache所在目錄:
(2)配置php的dll文件與ini文件的路徑:
(3)配置網(wǎng)站的路徑,這里設(shè)為apache目錄下的cms文件夾:
(4)配置apache默認(rèn)訪問(wèn)的頁(yè)面,默認(rèn)只有一個(gè)index.html因?yàn)槲覀兗尤肓藀hp所以這里要加一項(xiàng)index.php。
3.2 配置PHP
PHP的配置主要配置php的ini文件。
解壓PHP,放到上述apache配置中一致的路徑中,同時(shí)在PHP目錄下找到一個(gè)php的配置文件,復(fù)制為php.ini。
配置php.ini重點(diǎn)是以下幾點(diǎn):
(1)關(guān)閉PHP的錯(cuò)誤提示,因?yàn)槲覀兪菧y(cè)試環(huán)境。不需要在前端顯示錯(cuò)誤。在某些PHP版本不太兼容的場(chǎng)景下,錯(cuò)誤會(huì)影響頁(yè)面的執(zhí)行。比如我后面的測(cè)試demo中就遇到了,這里提前配置上。
(2)加PHP的一些常用模塊,如mysql,gd2等。
其中mysql用來(lái)連接數(shù)據(jù)庫(kù);其中mysqli是更高版本的mysql庫(kù),相對(duì)更安全,我們現(xiàn)在無(wú)法確定PHP代碼中會(huì)使用什么版本,可以先開(kāi)啟;其中g(shù)d2用來(lái)處理一些圖片,比如登錄時(shí)的驗(yàn)證碼。
(3)指定PHP加載模塊的路徑。
我們需要告訴PHP,上面這些dll文件在哪里,通常是在PHP目錄下ext中,配置下圖:
(4)配置PHP的Session保存目錄
PHP自帶有會(huì)話管理功能,很多WEB系統(tǒng)會(huì)直接使用PHP的會(huì)話管理。這里需要配置PHP保存會(huì)話的路徑。
3.3 配置Mysql數(shù)據(jù)庫(kù)
配置數(shù)據(jù)庫(kù)首先要找到數(shù)據(jù)庫(kù)的配置文件。這里數(shù)據(jù)庫(kù)安裝并運(yùn)行后,我們可以使用一個(gè)小技巧找到數(shù)據(jù)庫(kù)的配置文件。
在Linux下,配置文件默認(rèn)在/etc/my.ini中,或者我們可以通過(guò)查看進(jìn)程的具體參數(shù)獲取配置文件路徑。
在Windows中因?yàn)闆](méi)有默認(rèn)的配置文件路徑,比較好的方法是獲取進(jìn)程的運(yùn)行參數(shù),我們可以使用任務(wù)管理器 詳細(xì)信息的命令行查看,如圖:
這里實(shí)際上MySQL的配置文件位于:C:/ProgramData/MySQL/MySQL Server 5.6/my.ini
找到配置文件后,配置數(shù)據(jù)庫(kù)的編碼格式比較重要,因?yàn)椴煌幋a可能會(huì)導(dǎo)致亂碼,通常我們使用UTF8這種編碼格式。這里確保不同的功能塊中都使用utf8作為默認(rèn)編碼,如下圖:
client和mysql 塊中使用utf8。mysqld塊中使用utf8,這點(diǎn)非常重要,mysqld就是指服務(wù)器。且這里的設(shè)置字段為character-set-server=utf8,和前面的有些區(qū)別。
接下來(lái),我們連接數(shù)據(jù)庫(kù),查看數(shù)據(jù)庫(kù)默認(rèn)編碼:
(1)創(chuàng)建用戶如圖創(chuàng)建了個(gè)名為sangfor的用戶,允許sangfor在本地登錄,密碼為Sangfor!1234
(2)創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建名為cms_db的數(shù)據(jù)庫(kù)
(3)將數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)從數(shù)據(jù)庫(kù)備份的sql文件中還原數(shù)據(jù)庫(kù)
(4) 數(shù)據(jù)庫(kù)授權(quán)給用戶將cms_db庫(kù)下所有的表的所有權(quán)限授權(quán)給sangfor用戶
04部署應(yīng)用并測(cè)試在配置好上述所有配置后,我們只需要在WEB應(yīng)用中,配置對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接賬號(hào)密碼,數(shù)據(jù)庫(kù)就可以正常工作的了。通常PHP的WEB系統(tǒng)中,數(shù)據(jù)庫(kù)會(huì)放在include的文件夾中。如圖:
部署完成后,正常的訪問(wèn)頁(yè)面如下:
05填坑歷程5.1 數(shù)據(jù)庫(kù)亂碼
表現(xiàn)如圖:
原因:雖然我們?cè)O(shè)置了數(shù)據(jù)庫(kù)的默認(rèn)編碼,為utf8,但是有些客戶端連接時(shí),客戶端仍然會(huì)使用自己的編碼格式。
如圖,我們使用set names utf8;將當(dāng)前的客戶端連接編碼改為utf8。
這個(gè)步驟,必須在導(dǎo)入數(shù)據(jù)庫(kù)之前進(jìn)行。
5.2 網(wǎng)站驗(yàn)證碼沒(méi)有顯示
問(wèn)題如圖:
原因是因?yàn)樽铋_(kāi)始PHP的默認(rèn)配置里面沒(méi)有啟用gd2的圖形庫(kù),即php.ini配置文件中的。
5.3 打開(kāi)網(wǎng)站各種錯(cuò)誤
登錄后臺(tái)之后,表現(xiàn)如下
原因如下:
因?yàn)镻HP版本兼容的問(wèn)題,環(huán)境中使用的PHP版本較新,而代碼中的PHP的版本老舊,導(dǎo)致PHP遇上錯(cuò)誤后,停止了執(zhí)行。這里要關(guān)閉錯(cuò)誤的顯示。如圖配置php.ini即可。
06總結(jié)通過(guò)此文,大家可以發(fā)現(xiàn)在Windows下安裝apache、php、mysql等軟件的過(guò)程與原理其實(shí)與在Linux下類(lèi)似。因?yàn)檫@些軟件設(shè)計(jì)之初就是為了Linux設(shè)計(jì)。在某些條件下,可能會(huì)發(fā)現(xiàn)Linux下的安裝與配置會(huì)更加容易。比如Linux使用yum安裝,Linux下的配置文件都在/etc目錄下。其實(shí),只要我們能理解Linux下的軟件安裝配置原理,在Windows下也是類(lèi)似的過(guò)程。所以學(xué)好Linux對(duì)Windows而言,也是一件非常有必要且有幫助的事情。
練習(xí)題如果對(duì)此章節(jié)內(nèi)容有興趣的同學(xué),可以嘗試去做一下本實(shí)驗(yàn)。
另外可以將文中apache換成nginx ,php與MySQL不變,進(jìn)行環(huán)境的安裝與配置,注意nginx對(duì)php的調(diào)用過(guò)程不一樣哦!
對(duì)于本期講解內(nèi)容,以及
你還期待的學(xué)習(xí)內(nèi)容可在公眾號(hào)后臺(tái)回復(fù),不僅
有老師在線答疑,我們也會(huì)根據(jù)大家的提議調(diào)整每期學(xué)習(xí)內(nèi)容哦~歡迎關(guān)注!
本期作者:黃浩本期作者:黃浩深信服教學(xué)教研中心副主任、深信服安全服務(wù)認(rèn)證專(zhuān)家(SCSE-S)
CISSP認(rèn)證注冊(cè)信息系統(tǒng)安全師,中國(guó)計(jì)算機(jī)學(xué)會(huì)會(huì)員,暨南大學(xué)網(wǎng)絡(luò)空間學(xué)院校外實(shí)踐指導(dǎo)老師,杭州大學(xué)專(zhuān)業(yè)學(xué)位研究生校外導(dǎo)師,杭州信息職業(yè)技術(shù)學(xué)院產(chǎn)業(yè)學(xué)院副教授,湖南省數(shù)字經(jīng)濟(jì)促進(jìn)會(huì)特聘講師;對(duì)企業(yè)網(wǎng)絡(luò)安全框架設(shè)計(jì)、業(yè)務(wù)邏輯安全與防御體系有深刻認(rèn)識(shí);擅長(zhǎng)DDoS攻擊防御、操作系統(tǒng)安全防護(hù)、密碼學(xué)、企業(yè)安全架構(gòu)、取證溯源、應(yīng)急響應(yīng)等多個(gè)方向的課程。
關(guān)鍵詞:系統(tǒng),環(huán)境,學(xué)習(xí),系列