Linux一般會自帶httpd服務,但是版本一般不是最新,性能也不是最好,生產中建議手動安裝官方源碼包,安裝Apache官方包之前首先要停止之前的httpd服務,停止后也可以卸載之前的版本
准備工作做完,首先去官網下載Apache的源碼包,http://httpd.apache.org/ 這里下載的是最新的httpd-2.4.18.tar.bz2這個包
下載之后,上傳到服務器,釋放:
tar -jxvf httpd-2.4.18.tar.bz2
進入目錄:
cd httpd-2.4.18
執行配置幫助命令,可以依次查看相應的幫助:
./configure --help | more
執行寫入配置,其中apache24目錄不用自己創建,安裝過程會自動創建,后面也是一樣:
./configure --prefix=/usr/apache24
到這里發現出了個錯誤,
提示沒有APR這個組件,apr的作用就是維護相應的軟件安裝庫,已解決相應的平台缺陷等,之前Apache老版本不會出現這個問題,所以首先安裝apr,網址是:http://apr.apache.org/,這里包括apr、apr-util、apr-iconv這三個包
目前只下載前面兩個安裝就行,即apr和apr-util,下載好之后正式開始安裝
安裝apr:
$ tar -zxvf apr-1.5.2.tar.gz $ cd apr-1.5.2 $ ./configure --prefix=/usr/local/apr $ make $ make install
上面的配置參數--prefix就是指定安裝目錄,執行沒問題稍等一會就安裝好了,
繼續安裝apr-util:
$ tar -zxvf apr-util-1.5.4.tar.gz $ cd apr-util-1.5.4 $ ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr $ make $ make install
上面配置參數的--with-apr表示apr-util安裝需要依賴apr,所以指定apr的安裝目錄,到這里apr-util也安裝完成了
然后配置依賴安裝Apache:
./configure --prefix=/usr/apache24 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
沒想到又出錯了,看看錯誤提示:
可以看出,少了程序pcre,需要去http://pcre.org/ 獲取,那么現在應該訪問這個網站下載,進去網站之后很容易就找到下載鏈接:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
這里下載pcre-8.38.zip這個版本即可,其他的也是沒問題的
下載成功,安裝pcre:
$ unzip pcre-8.38.zip $ cd pcre-8.38 $ ./configure --prefix=/usr/local/pcre $ make $ make install
到現在,pcre也安裝成功了
現在開始安裝apache,進入源碼包目錄,執行命令:
$ ./configure --prefix=/usr/apache24 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre $ make $ make install
編譯過程時間有點長,耐心等待一下,執行完畢,Apache就安裝完成了,
注意:如果make中出現錯誤,必須執行make clean清除所有緩存文件后繼續,如果是在make install過程中出現錯誤,必須執行make clean並且刪除生成了安裝目錄,然后重新執行make和make install
安裝完成之后刪除原來釋放出來的那些目錄即可,如果以后要卸載,只要不忘記安裝目錄,直接刪除安裝目錄就可以,也不會出現任何殘留垃圾
原來Apache的源碼包下有個INSTALL文本文件,可以打開看一下:
這里可以看到最基本的安裝和啟動方法,當然,更多的參數的配置還需要參考安裝目錄下的幫助文檔或者官方在線文檔,這里就不詳細說了
現在可以進入啟動Apache httpd服務了:
/usr/apache24/bin/apachectl start
停止服務在安裝目錄下使用:
bin/apachectl stop
現在訪問對應的ip地址,看到It works!即表示安裝成功
服務器的默認根目錄在/usr/apache24/htdocs/
需要注意,第一次如果啟動出現錯誤,要關閉系統自帶的httpd服務,然后用vim打開conf/httpd.conf文件找到#ServerName www.example.com:80
把這行代碼前面的#去掉,保存退出,然后重新啟動Apache就可以正常運行了