以下為linux上安裝apache時(shí)自己遇到的一些問(wèn)題,記錄在這,以后遇到時(shí)也會(huì)不定時(shí)更新...一.安裝Apache提示APR not found的解決辦法
解決方法:
1. 網(wǎng)站 http://apr.apache.org/download.cgi 下載 apr-1.5.1.tar.gz 、apr-util-1.5.4.tar.gz
2. 網(wǎng)站 http://www.pcre.org/ 下載 pcre-8.36.tar.gz
3.依次解壓、安裝
附相關(guān)命令:
1 [root@test ~]# tar -zxvf xxx.tar.gz2 [root@test ~]# ./configure --prefix=path //path為安裝路徑3 [root@test ~]# make4 [root@test ~]# make install
4. apache 設(shè)置指定庫(kù)位置
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'錯(cuò)誤日志:
...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 statusmake[2]: *** [ab] Error 1make[2]: Leaving directory `/xxx/httpd-2.4.x/support'make[1]: *** [all-recursive] Error 1make[1]: Leaving directory `/xxx/httpd-2.4.x/support'make: *** [all-recursive] Error 1
解決方法:
open-ssl 庫(kù)有問(wèn)題, 安裝時(shí)需要加上
1 [root@test ~]# ./config -fPIC --prefix=path enable-shared2 [root@test ~]# ./config -t3 [root@test ~]# make depend4 [root@test ~]# make5 [root@test ~]# make test 6 [root@test ~]# make install
然后安裝apache時(shí)指定
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
錯(cuò)誤日志:
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 111 make[2]: Leaving directory `/home/zfh/httpd-2.2.9/modules'12 make[1]: *** [shared-build-recursive] Error 113 make[1]: Leaving directory `/home/zfh/httpd-2.2.9'14 make: *** [all-recursive] Error 115 [root@localhost httpd-2.2.9]#
錯(cuò)誤為zlib庫(kù)有問(wèn)題,錯(cuò)誤中有提示 recompile with -fPIC 即加上 -fPIC進(jìn)行編譯。
解決方法:
1. 找到zlib的源碼安裝包,或者直接下載一個(gè) 。地址:http://www.zlib.net/
2. 執(zhí)行以下相關(guān)命令
[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 參數(shù)
1 [root@test ~]# ./configure --prefix=/usr/local/httpd-2.4.10 --with-zlib-1.2.3=zlib-path --enable-so //把path修改成各自的安裝路徑即可
未完待續(xù)...
新聞熱點(diǎn)
疑難解答
圖片精選