天天看點

源碼安裝Apache伺服器遇到的問題及解決方法

   Linux下安裝軟體的方式有很多種其中常用的有三種:源碼安裝、RPM安裝、yum安裝針對于後兩種的安裝都比較友善,隻要有rpm軟體包就可以輕易安裝,今天我來談談使用源碼的方式來實作對apache軟體的安裝(原有的版本太低,想安裝一個新版本),但是第一次安裝的時候便遇到了很多問題,于是我便把這些問題記錄下來了,相信一定會對你以後想安裝新版本的apache伺服器有幫助

    然後将源碼解壓到/usr/local/src目錄下,友善以後的管理

tar -jxvf httpd-2.4.4.tar.bz2 -C /usr/local/src/

切換到相應目錄

cd /usr/local/src/httpd-2.4.4/

源碼安裝三步走起:1)./configure  2) make   3) make install

./configure --prefix=/usr/local/apache 然後麻煩就出現了

<a href="http://blog.51cto.com/attachment/201303/135939990.png" target="_blank"></a>

錯誤提示的很明顯

checking for APR... no

configure: error: APR not found.  Please read the documentation.

Apache Portable Runtime 1.4.6 Released

點選下載下傳就是了apr-1.4.6.tar.gz,并且将其解壓到/usr/local/src目錄下

tar -zxvf apr-1.4.6.tar.gz -C /usr/local/src/

切換到目錄下

cd /usr/local/src/apr-1.4.6/

當然這個運作庫也是源碼安裝的,同樣是三步曲,走起

./configure

make

make install

然後再切換到httpd的源碼目錄下再次執行./configure時加上apr的配置路徑./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/bin/apr-1-config   你會發現又出現了問題

<a href="http://blog.51cto.com/attachment/201303/135953990.png" target="_blank"></a>

Apache Portable Runtime Utility 1.5.1 Released

下載下傳安裝就是了apr-util-1.5.1.tar.gz 先解壓到/usr/local/src目錄下

tar -zxvf apr-util-1.5.1.tar.gz -C /usr/local/src/

切換到源碼目錄下cd /usr/local/src/apr-util-1.5.1/

然後是老三步

./configure --with-apr=/usr/local/src/apr-1.4.6/apr-1-config(加上apr的路徑)

然後到httpd源碼的目錄下執行./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/bin/apr-1-config還會遇到問題

<a href="http://blog.51cto.com/attachment/201303/140005649.png" target="_blank"></a>

說pcre(Perl Compatible Regular Expressions是一個Perl庫,包括 perl 相容的正規表達式庫)沒發現,當然處理方法相同下載下傳源碼,解壓,安裝

unzip pcre-8.32.zip

cd pcre-8.32

然後到httpd源碼的目錄下執行./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/bin/apr-1-config --with-pcre=/usr/local/pcre/

make &amp;&amp; make install

一切安裝完成之後我們還要涉及到一個httpd的運作管理問題,我模仿linux原有的管理腳本自己寫了一個簡易的管理腳本httpd内容如下:

#!/bin/bash

# chkconfig: 35 80 30

# description: Apache server

HTTPD=/usr/local/apache/bin/httpd

LOCKFILE='/var/lock/subsys/httpd'

. /etc/init.d/functions

function start(){

        [ -e $LOCKFILE ] &amp;&amp; echo "httpd is running ......." &amp;&amp; exit

        echo -n "httpd is starting ......"

        sleep 1

        $HTTPD -k start

}

function stop(){

        echo -n "httpd is stoping......"

        killproc $HTTPD &amp;&gt;/dev/null

[ $? -eq 0 ] &amp;&amp; rm -rf $LOCKFILE &amp;&amp; echo -e "\033[31m [ok] \033[0m" ||echo -e "\033[31m [fail] \033[0m"

function status(){

        [ -e $LOCKFILE ]&amp;&amp; echo "httpd is running ......" || echo "httpd is stoped"

case $1 in

start)

        start

        ;;

stop)

        stop

restart)

status)

        status

*)

echo "httpd Usage: {start|stop|restart}"

esac之後将其拷貝到/etc/rc.d/init.d/目錄下

cp httpd /etc/rc.d/init.d/

chkconfig --add httpd

chkconfig –level 35 httpd on

chkconfig --list httpd

<a href="http://blog.51cto.com/attachment/201303/140034729.png" target="_blank"></a>

接下來就是測試了

service httpd start

<a href="http://blog.51cto.com/attachment/201303/140045537.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201303/140057574.png" target="_blank"></a>

然後在其他電腦上通路

<a href="http://blog.51cto.com/attachment/201303/140106997.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201303/140117241.png" target="_blank"></a>

到此全部工作已經完成,當然對于vsftp伺服器同樣能做,不過vsftp的安裝方式比較簡單,這裡就不細說了,當然我也寫了一個管理腳本,如果有興趣的話可以讀一讀,内容如下

# chkconfig: 35 83 30

# description: vsftpd server

VSFTPD='/usr/local/sbin/vsftpd'

LOCKFILE='/var/lock/subsys/ftp'

        [ -e $LOCKFILE ] &amp;&amp; echo "vsftpd is running ......." &amp;&amp; exit

        echo -n "vsftpd is starting ......"

        $VSFTPD &amp;

        echo -n "Vsftpd is stoping......"

        killproc $VSFTPD &amp;&gt;/dev/null

        [ -e $LOCKFILE ]&amp;&amp; echo "vsftpd is running ......" || echo "vsftpd is stoped"

echo "vsftp Usage: {start|stop|restart}"

esac

在下一篇部落格中我将會介紹一下mysql的安裝配置,盡情期待。。。。。

本文轉自 chenming421  51CTO部落格,原文連結:http://blog.51cto.com/wnqcmq/1160274