天天看點

源碼安裝apache執行個體

   在Redhat/Centos系統中一個軟體包的安裝一般分為兩種方式RPM與compile安裝。

RPM安裝方式:    

優點 : 提供快速安裝,減少編譯安裝偵錯、困擾。

缺點 : 因為相關設定需考量普遍性之問題,常以基本通用設定安裝,遇有特殊用途或功能易出現不足之處。

注意事項 : 在安裝RPM包時,應特别注意包适用的系統版本。

compile安裝方式:

優點:編譯安裝過程,可以設定參數,按照需求,進行安裝,并且安裝的版本,可以自己選擇,靈活性比較大。

缺點:由于安裝包過新或者是其他問題,導緻依賴的包沒有,或者版本過低。這個時候就要解決包的依賴問題。

注意事項:源碼安裝的多了,更新系統後,可能會導緻以前手動裝的東西無法使用。

安裝一個源碼包,通常需要三個步驟:

1. ./config 在這一步可以定制功能,加上相應的選項即可,具有有什麼選項可以通過”./config --help ”指令來檢視。在這一步會自動檢測你的linux系統與相關的包是否有編譯該源碼包時需要的庫,因為一旦缺少某個庫就不能完成編譯。隻有檢測通過後才會生成一個Makefile檔案。

2. make 使用這個指令會根據Makefile檔案中預設的參數進行編譯,這一步其實就是gcc在工作了。

3. make install 安裝步驟,生成相關的軟體存放目錄和配置檔案的過程。

上面介紹的3步并不是所有的源碼包軟體都一樣的,也可能有安裝步驟不是這樣的,也就是說源碼包的安裝并非具有一定的标準安裝步驟。這就需要你拿到源碼包解壓後,然後進入到目錄找相關的幫助文檔,通常會以INSTALL或者README為檔案名。要詳細看一下他們的說明文檔。

1

2

3

4

5

6

7

8

9

10

11

<code>#本機版本</code>

<code>[root@localhost /]</code><code># lsb</code>

<code>lsblk        lsb_release</code>

<code>[root@localhost /]</code><code># lsb_release -a</code>

<code>LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch</code>

<code>Distributor ID: CentOS</code>

<code>Description:    CentOS release 6.5 (Final)</code>

<code>Release:    6.5</code>

<code>Codename:   Final</code>

<code>[root@localhost /]</code><code># rpm -e httpd</code>

<code>#預設安裝,先行解除安裝</code>

下面将以源代碼方式安裝apache

1、第一步

2、第二步

使用tar指令解壓

12

13

14

15

<code>[root@localhost Download]</code><code># tar xf httpd-2.2.26.tar.gz</code>

<code>[root@localhost Download]</code><code># ls</code>

<code>httpd-2.2.26  httpd-2.2.26.</code><code>tar</code><code>.gz</code>

<code>[root@localhost Download]</code><code># cd httpd-2.2.26</code>

<code>[root@localhost httpd-2.2.26]</code><code># ls</code>

<code>ABOUT_APACHE   configure.</code><code>in</code>    <code>LAYOUT         os</code>

<code>acinclude.m4   docs            libhttpd.dep   README</code>

<code>Apache.dsw     emacs-style     libhttpd.dsp   README.platforms</code>

<code>build          httpd.dep       libhttpd.mak   README-win32.txt</code>

<code>BuildAll.dsp   httpd.dsp       LICENSE        ROADMAP</code>

<code>BuildBin.dsp   httpd.mak       Makefile.</code><code>in</code>    <code>server</code>

<code>buildconf      httpd.spec      Makefile.win   srclib</code>

<code>CHANGES        include         modules        support</code>

<code>config.layout  INSTALL         NOTICE         </code><code>test</code>

<code>configure      InstallBin.dsp  NWGNUmakefile  VERSIONING</code>

3、運作configure腳本(./configure)

   (./configure是用來檢查環境變量及配置編譯選項的)

 檢視./configure --help擷取configure使用說明。下述./configure部配置設定置選項

    --prefix=PREFIX

           &lt;目錄&gt;:指定Apache的安裝目錄。

    --exec-prefix=EPREFIX

           體系相關檔案的頂級安裝目錄EPREFIX ,把體系相關的檔案安裝到不同的位置可以友善地在不同主機之間共享體系相關的檔案

    --bindir=DIR

           使用者可執行目錄DIR 。用于存放對網站管理者很有幫助的htpasswd, dbmmanage之類的支援程式。  

    --includedir=DIR

           Apache的頭檔案目錄DIR

    --libdir=DIR

           對象代碼庫目錄DIR 。

    --mandir=DIR

           手冊文檔目錄DIR 。

    --sbindir=DIR

           系統管理者可執行目錄DIR ,用于存放運作HTTP伺服器所必須的httpd, apachectl, suexec之類的服務程式。

   --sysconfdir=DIR

隻讀的單一機器資料目錄DIR ,用于存放httpd.conf和mime.types之類的伺服器配置檔案。

<code>[root@localhost httpd-2.2.26]</code><code>#./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so</code>

編譯無錯誤

然後執行

<code>[root@localhost httpd-2.2.26]</code><code># make &amp;&amp;make install</code>

<code>Installing configuration files</code>

<code>[PRESERVING EXISTING HTDOCS SUBDIR: </code><code>/usr/local/apache/htdocs</code><code>]</code>

<code>[PRESERVING EXISTING ERROR SUBDIR: </code><code>/usr/local/apache/error</code><code>]</code>

<code>[PRESERVING EXISTING ICONS SUBDIR: </code><code>/usr/local/apache/icons</code><code>]</code>

<code>[PRESERVING EXISTING CGI SUBDIR: </code><code>/usr/local/apache/cgi-bin</code><code>]</code>

<code>Installing header files</code>

<code>Installing build system files</code>

<code>Installing </code><code>man</code> <code>pages and online manual</code>

<code>make</code><code>[1]: Leaving directory `</code><code>/root/Download/httpd-2</code><code>.2.26'</code>

make是用來将源代碼編譯成二進制檔案的,而make install則會将make編譯出來的檔案安裝到指定位置(或預設位置)。

長久:所有使用者都有效則

/etc/profile

添加二進制檔案引用路徑

<code>[root@localhost apache]</code><code># vim /etc/profile.d/apache.sh</code>

<code>PATH=$PATH:</code><code>/usr/local/apache/bin</code>

<code>export</code> <code>PATH</code>

重新讀取環境變量,以便可以正常apachectl指令啟動服務

<code>[root@localhost bin]</code><code># . /etc/profile.d/apache.sh</code>

<code>#也可以使用source /etc/profile.d/apache.sh</code>

針對某使用者有效  ~/.bash_profile

臨時:

   export PATH=$PATH:/usr/local/apache/bin

<code>#啟動服務</code>

<code>[root@localhost bin]# apachectl start</code>

<code>[root@localhost apache]# netstat -tnl |grep </code><code>80</code>

<code>tcp        </code><code>0</code>      <code>0</code> <code>:::</code><code>80</code>                       <code>:::*                        LISTEN</code>

<code>[root@localhost bin]# elinks http:</code><code>//192.168.1.113</code>

<a href="http://s3.51cto.com/wyfs02/M00/12/A9/wKioL1MLWd6yu6Q9AABGXCbShjY250.jpg" target="_blank"></a>

<code>#導入頭檔案</code>

<code>[root@localhost /]</code><code># ln -sv /usr/local/apache/include/ /usr/include/httpd/</code>

<code>`</code><code>/usr/include/httpd/include</code><code>' -&gt; `/usr/local/apache/include/'</code>

<code>#導入庫檔案</code>

<code>[root@localhost apache]</code><code># ln -sv /usr/local/apache/lib /usr/lib/http</code>

<code>`</code><code>/usr/lib/http</code><code>' -&gt; `/usr/local/apache/lib'</code>

<code>[root@localhost ~]</code><code># vim /etc/ld.so.conf.d/httpd.conf</code>

<code>[root@localhost ~]</code><code># cat /etc/ld.so.conf.d/httpd.conf</code>

<code>/usr/local/apache/lib</code>

<code>[root@localhost /]</code><code># ldconfig -v</code>

<code>#重讀庫檔案</code>

<code>/usr/local/apache/lib</code><code>:</code>

<code>    </code><code>libexpat.so.0 -&gt; libexpat.so.0.5.0</code>

<code>    </code><code>libapr-1.so.0 -&gt; libapr-1.so.0.4.8</code>

<code>    </code><code>libaprutil-1.so.0 -&gt; libaprutil-1.so.0.5.2</code>

<code>#導入man手冊</code>

<code>[root@localhost /]# vim /etc/man.config</code>

<code>MANPATH /usr/local/apache/man</code>

=======================================完============================================

本文轉自 jinlinger 51CTO部落格,原文連結:http://blog.51cto.com/essun/1362946,如需轉載請自行聯系原作者

繼續閱讀