apache源碼編譯安裝


源碼安裝apche
  下載apache的源碼包文件
訪問 http://mirror.bit.edu.cn/apache/httpd/,復制如下gz文件的鏈接地址,並使用wget下載到本地
wget -P /usr/local/src/ http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.37.tar.bz2(各位不要直接復制我的下載地址,因為隨着httpd的版本更新,這些地址會變化的)
 
[root@centos-linux-02 ~]# cd /usr/local/src/
[root@centos-linux-02 src]# ls
httpd-2.4.37.tar.bz2
這時候去解壓,解壓命令:
tar -xvf httpd-2.4.37.tar.bz2
 
[root@centos-linux-02 src]# ls
httpd-2.4.37 httpd-2.4.37.tar.bz2
 
進入到httpd-2.4.37目錄下執行:./configure
這個時候你就會發現報錯嘍,顯示如下:
[root@centos-linux-02 httpd-2.4.37]# ./configure
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
configure:
configure: Configuring Apache Portable Runtime library...
configure:
checking for APR... no
configure: error: APR not found. Please read the documentation
 
好吧,通過提示,我們可以看到缺少APR,接下來去下載APR包
瀏覽器訪問: http://mirror.bit.edu.cn/apache/apr/,去下載apr包和apr-unit包

 

解壓所下載的包后,我們先去安裝apr
[root@centos-linux-02 src]# cd apr-1.6.5/
[root@centos-linux-02 apr-1.6.5]# ./configure
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
Configuring APR library
Platform: x86_64-pc-linux-gnu
checking for working mkdir -p... yes
APR Version: 1.6.5
checking for chosen layout... apr
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/usr/local/src/apr-1.6.5':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
這個時候又看到報錯啦,好吧,通過提示我們可以看到缺少gcc環境,為此安裝gcc編譯環境
yum install gcc
ok,然后再次去執行./configure
然后編譯安裝:make && make install
[root@centos-linux-02 apr-1.6.5]# ls /usr/local/apr/
bin build-1 include lib
此時代表安裝成功apr
 
安裝apr-unit
去apr-unit目錄下去執行./configure
[root@centos-linux-02 apr-util-1.6.1]# ./configure
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking for working mkdir -p... yes
APR-util Version: 1.6.1
checking for chosen layout... apr-util
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
Applying apr-util hints file rules for x86_64-pc-linux-gnu
checking for APR... no
configure: error: APR could not be located. Please use the --with-apr option
好吧,又報錯哈哈,通過提示我們可以看到這是讓我們使用--with-apr參數去指定剛剛安裝完的apr路徑,那么開始吧
./configure --help去查看執行命令參數與含義
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-apr=PATH prefix for installed APR or the full path to apr-config
嗯,現在知道該怎么寫了,
./configure --with-apr=/usr/local/apr
然后去編譯並安裝
make && make install
好吧,這次在編譯的時候,出現了錯誤,錯誤如下:
xml/apr_xml.c:35:19: 致命錯誤:expat.h:沒有那個文件或目錄
#include <expat.h>
^
編譯中斷。
make[1]: *** [xml/apr_xml.lo] 錯誤 1
make[1]: 離開目錄“/usr/local/src/apr-util-1.6.1”
make: *** [all-recursive] 錯誤 1
通過報錯分析,應該是缺少expat,好吧,我們百度一下看看這是咋回事呢

 

那我們知道原因后,就安裝唄
yum install expat-devel
這次編譯安裝過程就舒服多了,最后我們看到如下提示:
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/apr/lib
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the 'LD_RUN_PATH' environment variable
during linking
- use the '-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to '/etc/ld.so.conf'
 
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
好吧,一看就知道安裝到/usr/local/apr/lib下了
 
既然都裝完了,那么我們去安裝httpd去唄
在httpd下執行./configure
又報錯了:
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for gcc option to accept ISO C99... -std=gnu99
checking for pcre-config... false
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
這次錯誤顯然就是PCRE沒有安裝啊,嗯,源碼編譯真煩呢,為啥我不直接yum呢,哈哈
 
下載PCRE:

 

下載並解壓:
tar -xvf pcre-8.42.tar.gz
進入pcre目錄執行:./configure
查看執行結果發現,又不稱心如意
configure: error: Invalid C++ compiler or C++ compiler flags
這明顯是還需要gcc-c++環境啊,果斷安裝:
yum install gcc-c++
編譯安裝:
make && make install
 
這次終於可以去httpd目錄執行./configure了吧,然后沒有發現報錯呢
編譯安裝httpd:
make && make install
好了,幾經波折,我們去 /usr/local/apache2/bin 目錄下找apachectl
執行啟動腳本:
./apachectl
查看進程:
[root@centos-linux-02 bin]# ps -ef|grep httpd
root 16123 1 0 17:59 ? 00:00:00 /usr/local/apache2/bin/httpd
daemon 16124 16123 0 17:59 ? 00:00:00 /usr/local/apache2/bin/httpd
daemon 16125 16123 0 17:59 ? 00:00:00 /usr/local/apache2/bin/httpd
daemon 16126 16123 0 17:59 ? 00:00:00 /usr/local/apache2/bin/httpd
root 16209 4151 0 17:59 pts/0 00:00:00 grep --color=auto httpd
到此,apache的源碼安裝結束。
 
ok,最后我們來總結一下需要用到的源碼包和編譯環境

apr-1.6.5.tar.bz2

apr-util-1.6.1.tar.bz2

httpd-2.4.37.tar.bz2

pcre-8.42.tar.gz

gcc

gcc-c++

PCRE

expat-devel


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM