實驗目的:使用手工編譯的方式搭建httpd服務。
實驗步驟:共享源代碼安裝包、解壓縮源代碼内容、./configure配置各種參數項、make編譯、make install安裝。然後就是配置httpd的主配置檔案内容,下面是詳細步驟。
首先是準備工作,如下圖所示把這幾個源碼包下載下傳下來,放在一個檔案夾裡面,然後共享出來,使linux主機可以正常通路(或者使用其他方法,不知道怎麼操作就看我的上一篇部落格)。
然後是解壓縮軟體包,把上面三個下載下傳好的軟體包全部解壓到opt目錄下。
然後切換到解壓目錄下,複制其中的apr和apr-util檔案夾到本目錄的httpd-2.4.2/srclib目錄下,後面再加個檔案名稱。
然後就是需要安裝httpd所必須的一些語言環境和安裝環境了。使用rpm安裝c語言和c++時會有依賴性關系,是以在這裡我直接建立了yum倉庫來解決依賴性關系vim /etc/yum.repos.d/abc.repo。
在建立的yum倉庫中輸入如下圖所示的内容,wq儲存并退出。
如果要檢視yum倉庫是否安裝成功,可以使用yum list,如果成功這裡面的安裝封包件會很多很多。
下面就是使用yum install來安裝gcc的編譯語言環境軟體包。
然後使用yum install安裝gcc-c++編譯語言環境。
接着使用rpm -q檢查make源代碼編譯軟體是否安裝。再使用rpm安裝pcre-devel軟體包也是必須(當然在這之前需要挂載CD光牒)。
然後切換到安裝目錄/opt/http-2.4.2目錄下檢視configure配置檔案,确定有這個檔案之後,在此目錄下完成源代碼的配置工作。如下圖所示。
完成配置以後,執行make進行編譯,把配置完成的源代碼轉換為可執行的程式的一個過程。
然後make install完成最後的安裝過程,其實也就是複制到目錄預設存放的一個過程(由配置時的--prefix選項指定)。
然後可以切換的“--prefix”項所指定的安裝目錄下,檢視安裝的所有檔案目錄,以及所有配置檔案、日志檔案都在這裡。
然後使用grep過濾掉以#号開頭的/usr/local/apache/bin/apachectl檔案中的注釋條目,重定向配置檔案到/etc/init.d/目錄下,作為系統服務啟動。然後編輯/etc/init.d/目錄中重定向後的配置檔案httpd。
在配置檔案的開頭添加chkconfig識别配置,以便通過chkconfig進行管理。其中# description:apache is a world wide web server.隻是系統服務描述資訊。
chkconfig系統服務中,然後使用chkconfig --list httpd檢視目前的運作狀态(當然是沒有開啟了),然後使用chkconfig --level 35 httpd on來開啟3、5運作級别的狀态。
再次切換到安裝目錄下。到其中的配置主配置檔案中,編輯其中的主配置檔案httpd.onf。
設定監聽ipv4的端口“listen 192.168.100.50:80”去掉前面的注釋資訊,把下面的ipv6的監聽用“#listen 80”注釋掉。
然後查找其中的servername配置參數,格式為“servername 主機名.域名:80”。
當然如果閑上面的路徑太過複雜,配置不友善可以建立一個軟連結,下次進行編輯的時候就沒必要輸入那麼長的路徑了。
然後就是“service httpd start”開啟httpd的服務,如果沒有報錯資訊的話就說明已經是ok的了。然後也可以檢視網站的預設首頁,使用指令“cat /usr/local/apache/htdocs/index.html ”,可以看到html的代碼為<html><body><h1>it works!</h1></body></html>(你應該能夠看懂)。
然後關閉linux虛拟機的防火牆功能以及selinux政策。切換至日志檔案目錄,是為了等會成功通路網頁之後進行檢視的。
在windows主機的浏覽器中,輸入linux的ip位址通路linux網站的内容,能夠通路表示已經ok了。
然後此時檢視通路成功的日志檔案access_log,可以看到本機通路linux網站的ip位址資訊等。通路失敗的日志檔案在error_log裡面。
ok實驗到此結束!謝謝大家!請多多支援!