【問題記錄】 Linux 安裝 apache 遇到的一些問題


以下為linux上安裝apache時自己遇到的一些問題,記錄在這,以后遇到時也會不定時更新...

一.安裝Apache提示APR not found的解決辦法

解決方法:

1. 網站 http://apr.apache.org/download.cgi 下載 apr-1.5.1.tar.gzapr-util-1.5.4.tar.gz

2. 網站 http://www.pcre.org/ 下載 pcre-8.36.tar.gz

3.依次解壓、安裝

附相關命令:

1 [root@test ~]# tar -zxvf xxx.tar.gz
2 [root@test ~]# ./configure --prefix=path  //path為安裝路徑
3 [root@test ~]# make
4 [root@test ~]# make install

4. apache 設置指定庫位置

1 [root@test ~]#  ./configure --prefix=/usr/local/httpd-2.4.10 --with-apr=apr-path  --with-apr-util=aprutil-path  --with-pcre=pcre-path  --enable-so  //把path修改成各自的安裝路徑即可

5. make && make install

 

二、/xxx/httpd-2.4.x/support/ab.c:2273: undefined reference to `TLSv1_2_client_method'、/xxx/httpd-2.4.x/support/ab.c:2271: undefined reference to `TLSv1_1_client_method'

錯誤日志:

...
ab.o: In function `main': /xxx/httpd-2.4.x/support/ab.c:2273: undefined reference to `TLSv1_2_client_method' /xxx/httpd-2.4.x/support/ab.c:2271: undefined reference to `TLSv1_1_client_method' collect2: ld returned 1 exit status make[2]: *** [ab] Error 1 make[2]: Leaving directory `/xxx/httpd-2.4.x/support' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/xxx/httpd-2.4.x/support' make: *** [all-recursive] Error 1

 

解決方法:

open-ssl 庫有問題, 安裝時需要加上

 

1 [root@test ~]# ./config -fPIC --prefix=path enable-shared
2 [root@test ~]# ./config -t
3 [root@test ~]# make depend
4 [root@test ~]# make
5 [root@test ~]# make test 
6 [root@test ~]# make install

然后安裝apache時指定

1 [root@test ~]# ./configure --prefix=/usr/local/httpd-2.4.10  --with-ssl=openssl-path --enable-so

 

三、relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC

錯誤日志:

 1 make[4]: Entering directory `/home/zfh/httpd-2.2.9/modules/filters'
 2 /home/user/httpd-2.2.9/srclib/apr/libtool --silent --mode=link gcc -g -O2 -pthread    -L/usr/local/zlib//lib      -o mod_deflate.la -rpath /usr/local/apache2/modules -module -avoid-version  mod_deflate.lo -lz
 3 /usr/bin/ld: /usr/local/zlib//lib/libz.a(crc32.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
 4 /usr/local/zlib//lib/libz.a: could not read symbols: Bad value //注意這行  5 collect2: ld returned 1 exit status
 6 make[4]: *** [mod_deflate.la] Error 1
 7 make[4]: Leaving directory `/home/zfh/httpd-2.2.9/modules/filters'
 8 make[3]: *** [shared-build-recursive] Error 1
 9 make[3]: Leaving directory `/home/zfh/httpd-2.2.9/modules/filters'
10 make[2]: *** [shared-build-recursive] Error 1
11 make[2]: Leaving directory `/home/zfh/httpd-2.2.9/modules'
12 make[1]: *** [shared-build-recursive] Error 1
13 make[1]: Leaving directory `/home/zfh/httpd-2.2.9'
14 make: *** [all-recursive] Error 1
15 [root@localhost httpd-2.2.9]# 

錯誤為zlib庫有問題,錯誤中有提示 recompile with -fPIC 即加上 -fPIC進行編譯。

 

解決方法:

1. 找到zlib的源碼安裝包,或者直接下載一個 。地址:http://www.zlib.net/

2. 執行以下相關命令

[root@test ~]# tar -zxvf zlib-1.2.3.tar.gz
[root@test ~]# cd zlib-1.2.3
[root@test ~]# ./configure --prefix=path //path為自定義安裝路徑
[root@test ~]# vi Makefile
[root@test ~]# 找到 CFLAGS=-O3 -DUSE_MMAP
[root@test ~]# 在后面加入-fPIC,即變成CFLAGS=-O3 -DUSE_MMAP -fPIC
[root@test ~]# make && make install

3. 安裝apache,添加 --with-zlib-1.2.3=zlib-path 參數

1 [root@test ~]#  ./configure --prefix=/usr/local/httpd-2.4.10 --with-zlib-1.2.3=zlib-path  --enable-so  //把path修改成各自的安裝路徑即可

 

 

未完待續...

 


免責聲明!

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



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