Apache源码包在LINUX(CENTOS6.8)中的安装(出现问题及解决)
任務(wù):在CENT6.8系統(tǒng)中安裝Apache(版本為:httpd-2.4.41)
前提:由于源碼包必須先編譯后安裝,所以必須先安裝編譯器:gcc
理論步驟:
1.檢測gcc軟件包,如果不存在則進(jìn)行安裝。
2.下載Aache的源碼包(壓縮包形式)并上傳到CENTOS服務(wù)器中
3.解壓源碼包后進(jìn)入解壓后的目錄,執(zhí)行配置,編譯,安裝。
3.1 配置:使用 ./configure 進(jìn)行安裝目錄的設(shè)置
? ? ? ?3.2 編譯:使用 make 命令直接執(zhí)行
? ? ? ?3.3 安裝:使用 make install 命令直接執(zhí)行。
4.如果無意外,按照“理論步驟',完成后即可在CENTOS服務(wù)器啟用httpd服務(wù)(運行apache)中,使用瀏覽器訪問:
? ? ?http://localhost/? ? ? ?或? ?http://127.0.0.1? ? ? ?或? ? http://192.168.253.129? ??
?
實際過程:
?
檢測gcc服務(wù)包:
[root@cent001 ~]# rpm -q gcc
gcc-4.4.7-23.el6.x86_64
說明gcc服務(wù)包已經(jīng)安裝。進(jìn)入”理論步驟“2
?
下載Aache的源碼包(壓縮包形式)并上傳到CENTOS服務(wù)器中:
訪問:http://mirror.bit.edu.cn/apache/httpd/??
找到:httpd-2.4.41.tar.gz? 然后下載到本地。
然后通過FTP上傳到CENTOS的個人源碼包專用目錄/usr/local/src? 下邊。進(jìn)入”理論步驟“3
?
解壓源碼包
進(jìn)入源碼包壓縮包的存儲目錄:
[root@cent001 ~]# cd /usr/local/src
解壓httpd-2.4.41.tar.gz源碼壓縮包(會生成httpd-2.4.41目錄):
[root@cent001 src]# tar -zxvf httpd-2.4.41.tar.gz?
查看解壓后的源碼包大小:(此操作不是必須)
[root@cent001 src]# du -sh httpd-2.4.41
46M httpd-2.4.41
進(jìn)入源碼包解壓后目錄:
[root@cent001 src]# cd httpd-2.4.41
開始進(jìn)行”理論步驟“3.1
?
配置:使用 ./configure 進(jìn)行安裝目錄的設(shè)置
執(zhí)行命令進(jìn)行配置:(注意:官方手冊推薦使用 /usr/local/apache2 作為httpd的源碼安裝路徑)
[root@cent001 httpd-2.4.41]# ./configure --prefix=/usr/local/apache2
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /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.
出現(xiàn)問題,大概意思是說apr軟件包不存在,導(dǎo)致配置不成功,它還說讓我們?nèi)プx安裝說明文檔(目錄中的INSTALL、README文檔)
?
首先確認(rèn)一下,是否apr軟件包真不存在:
[root@cent001 httpd-2.4.41]# rpm -q apr
apr-1.3.9-5.el6_9.1.x86_64
很明顯,apr軟件包已經(jīng)存在了,這跟配置出錯提示的”APR not found“根本兩相矛盾了。
所以,這時你就猜測地想到:依賴的apr版本沖突了,是完成操作,必須依賴于其它版本的apr。那重新指定依賴的版本行了吧,不使用默認(rèn)的,于是:
[root@cent001 httpd-2.4.41]# ./configure -help | grep apr
--with-included-apr Use bundled copies of APR/APR-Util
--with-apr=PATH prefix for installed APR or the full path to
apr-config
--with-apr-util=PATH prefix for installed APU or the full path to
可以知道,利用--width-apr=PATH 可以通過配置apr安裝目錄來指定特定版本的apr,于是 ./configure 操作可以重新執(zhí)行為如下形式:
[root@cent001 httpd-2.4.41]# ./configure --prefix=/usr/local/apache2 --with-apr=能被正確依賴的apr版本的安裝目錄
這時要解決的問題是:
哪個(哪些)版本的apr能夠被正確依賴(由于兼容性原因,猜測的話,一般最新版本最好,當(dāng)然不排除最新版本的apr不兼容老舊版本的httpd的情況)
?
由于不是十分肯定是否最新版本apr(或其它軟件包)能被正確依賴,我們在解決辦法有兩個:
辦法-1。按照“Please read the documentation”的提示,去讀INSTALL、README文檔,以便確定肯定我們上邊的猜測。
辦法-2。嘗試安裝某些版本的apr(或其它軟件包)直到可行,比如嘗試:apr-1.4.2等等。
? ?*****先按照辦法-1來進(jìn)行,如果不行的話則進(jìn)入辦法-2。******
?
?
先按辦法-1去做:
[root@cent001 httpd-2.4.41]# vim INSTALL
然后/apr 搜索一下,可以以下相關(guān)內(nèi)容:
* Consider if you want to use a previously installed APR and
APR-Util (such as those provided with many OSes) or if you
need to use the APR and APR-Util from the apr.apache.org
project. If the latter, download the latest versions and
unpack them to ./srclib/apr and ./srclib/apr-util (no
version numbers in the directory names) and use
./configure's --with-included-apr option. This is required
if you don't have the compiler which the system APR was
built with. It can also be advantageous if you are a
developer who will be linking your code with Apache or using
a debugger to step through server code, as it removes the
possibility of version or compile-option mismatches with APR
and APR-Util code. As a convenience, prepackaged source-code
bundles of APR and APR-Util are occasionally also provided
as a httpd-2.X.X-deps.tar.gz download.
這段內(nèi)容的大概意思是:
。。。。。。(不說了,看下邊)==>
官方在線的安裝說明文檔(http://httpd.apache.org/docs/2.4/install.html)中還有一個比較簡要的說明:
APR and APR-Util
Make sure you have APR and APR-Util already installed on your system. If you don't, or prefer to not use the system-provided versions, download the latest versions of both APR and APR-Util from?Apache APR, unpack them into?/httpd_source_tree_root/srclib/apr?and?/httpd_source_tree_root/srclib/apr-util?(be sure the directory names do not have version numbers; for example, the APR distribution must be under /httpd_source_tree_root/srclib/apr/) and use?./configure's?--with-included-apr?option. On some platforms, you may have to install the corresponding?-dev?packages to allow httpd to build against your installed copy of APR and APR-Util.
apr 和 apr-Util
確保你系統(tǒng)中已經(jīng)安裝了apr和apr-Util。如果沒有安裝過,或者安裝了卻不想用它,那就下載最新版本的apr和apr-Util的源碼壓縮包并解壓后放到:httpd源碼目錄/srclib/apr與 和 httpd源碼目錄/srclib/apr-util (命名中不要帶版本號)。例如:
apr源碼必須放在:httpd源碼目錄/srclib/apr 中,并且執(zhí)行./configure時使用: --with-included-apr
上邊的內(nèi)容就我們當(dāng)前的情況來舉例,其操作原由和過程就是:
不想用內(nèi)置的RPM版本的APR(因為默認(rèn)使用時發(fā)生版本沖突),那就從網(wǎng)址:http://apr.apache.org/? 中下載最新的apr與apr-util(其推薦版本為:apr-1.7.0.tar.gz?與?apr-util-1.6.1.tar.gz?)
然后解壓為:
apr-1.7.0? 目錄,重命名為 apr(即去掉版本號信息)?
apr-util-1.6.1? 目錄,重命名為 apr-util(即去掉版本號信息)?
將apr目錄與apr-util目錄復(fù)制(或剪貼)到? httpd源碼目錄(即:/usr/local/src/httpd-2.4.41/)
此時httpd源碼目錄為:
/usr/local/src/httpd-2.4.41/
/usr/local/src/httpd-2.4.41/apr
/usr/local/src/httpd-2.4.41/apr-util
。。。
最后,使用:./configure 時,用? --with-included-apr,這是因為:
[root@cent001 httpd-2.4.41]# ./configure -help | grep with-included-apr
--with-included-apr Use bundled copies of APR/APR-Util
可知:配置時使用--with-included-apr,會使用httpd源碼目錄/srclib/下的apr與apr-util
注意:不要被--with-included-apr 名稱迷惑,它同時作用于apr與apr-util。也就是說,沒有:--with-included-apr-util參數(shù)項。
?
以上便是官方中提到的說明,它提到的最重要的3條是:
1。最新版本(或當(dāng)前推薦版本)的apr及apr-util是可用于當(dāng)前各版本的httpd的,不會出現(xiàn)版本沖突。(我們之前遇到的問題“哪個(哪些)版本的apr能夠被正確依賴” ,這1條就是答案---使用最新版本或推薦版本)
2。可以使用系統(tǒng)內(nèi)置的apr和apr-util(我們之前使用的就是這種方式,然后遇到了問題,一步步解決后,剩下的版本問題,并最終到達(dá)了上邊第1條)
3。一種用于配置依賴的源碼放置方式及命令參數(shù)--with-included-apr進(jìn)行./configure操作。
?
因為我想以源碼包的形式手動安裝apr與apr-util,所以暫時不按上邊的第3條操作,而是根據(jù)第1條,回到我們先前的問題處,即:
[root@cent001 httpd-2.4.41]# ./configure --prefix=/usr/local/apache2 --with-apr=最新版本或推薦版本的apr安裝目錄
由于指定的是“安裝目錄”,所以必須已進(jìn)行了相應(yīng)安裝,才存在”安裝目錄“,我們還沒有對最新版本或推薦版本的apr進(jìn)行安裝,于是,先進(jìn)行安裝推薦版本的apr:(假設(shè)已經(jīng)下載并解壓)
[root@cent001 apr-1.7.0]# ls
apr-1-config apr.spec config.layout emacs-mode libapr.rc misc README time
apr-config.in atomic config.log encoding libtool mmap README.cmake tools
apr.dep build config.nice file_io LICENSE network_io shmem user
apr.dsp buildconf config.status helpers locks NOTICE strings
apr.dsw build.conf configure include Makefile NWGNUmakefile support
apr.mak build-outputs.mk configure.in libapr.dep Makefile.in passwd tables
apr.pc CHANGES docs libapr.dsp Makefile.win poll test
apr.pc.in CMakeLists.txt dso libapr.mak memory random threadproc
[root@cent001 apr-1.7.0]# vim README
....
Configuring and Building APR on Unix
====================================
Simply;
./configure --prefix=/desired/path/of/apr
make
make test
make install
....
[root@cent001 apr-1.7.0]# ./configure --prefix=/usr/local/apr
[root@cent001 apr-1.7.0]# make
[root@cent001 apr-1.7.0]# make install
至此,最新版本(推薦版本)的apr源碼安裝成功。有了安裝目錄:/usr/local/apr,于是,開始執(zhí)行以下操作:
[root@cent001 apr-1.7.0] cd /usr/local/src/httpd-2.4.41
[root@cent001 httpd-2.4.41]# ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /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... yes
setting CC to "gcc"
setting CPP to "gcc -E"
setting CFLAGS to " -g -O2 -pthread"
setting CPPFLAGS to " -DLINUX -D_REENTRANT -D_GNU_SOURCE"
setting LDFLAGS to " "
configure:
configure: Configuring Apache Portable Runtime Utility library...
configure:
checking for APR-util... no
configure: error: APR-util not found. Please read the documentation.
出現(xiàn)的問題是apr-util找不到,根據(jù)之前的官方文檔,發(fā)現(xiàn)與apr問題相似,于是,先安裝推薦版本的apr-util(假設(shè)已經(jīng)進(jìn)行了下載和解壓)
[root@cent001 apr-util-1.6.1]# ls
aprutil.dep build configure.in include Makefile.win redis
aprutil.dsp buildconf crypto ldap memcache renames_pending
aprutil.dsw build.conf dbd libaprutil.dep misc strmatch
aprutil.mak build-outputs.mk dbm libaprutil.dsp NOTICE test
apr-util.pc.in CHANGES docs libaprutil.mak NWGNUmakefile uri
apr-util.spec CMakeLists.txt encoding libaprutil.rc README xlate
apu-config.in config.layout export_vars.sh.in LICENSE README.cmake xml
buckets configure hooks Makefile.in README.FREETDS
[root@cent001 apr-util-1.6.1]# vim README
[root@cent001 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util
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.
出現(xiàn)錯誤,要求用--with-apr 參數(shù)指明apr的安裝路徑,于是:
[root@cent001 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@cent001 apr-util-1.6.1]# make
此時出現(xiàn)錯誤信息有:
xml/apr_xml.c:35:19: 錯誤:expat.h:沒有那個文件或目錄
xml/apr_xml.c:66: 錯誤:expected specifier-qualifier-list before ‘XML_Parser’
xml/apr_xml.c: 在函數(shù)‘cleanup_parser’中:
xml/apr_xml.c:364: 錯誤:‘a(chǎn)pr_xml_parser’沒有名為‘xp’的成員
xml/apr_xml.c:365: 錯誤:‘a(chǎn)pr_xml_parser’沒有名為‘xp’的成員
xml/apr_xml.c: 在文件層:
xml/apr_xml.c:384: 錯誤:expected ‘;’, ‘,’ or ‘)’ before ‘*’ token
xml/apr_xml.c: 在函數(shù)‘a(chǎn)pr_xml_parser_create’中:
xml/apr_xml.c:401: 錯誤:‘a(chǎn)pr_xml_parser’沒有名為‘xp’的成員
xml/apr_xml.c:402: 錯誤:‘a(chǎn)pr_xml_parser’沒有名為‘xp’的成員
xml/apr_xml.c:410: 錯誤:‘a(chǎn)pr_xml_parser’沒有名為‘xp’的成員
xml/apr_xml.c:411: 錯誤:‘a(chǎn)pr_xml_parser’沒有名為‘xp’的成員
xml/apr_xml.c:412: 錯誤:‘a(chǎn)pr_xml_parser’沒有名為‘xp’的成員
xml/apr_xml.c:424: 錯誤:‘a(chǎn)pr_xml_parser’沒有名為‘xp’的成員
xml/apr_xml.c:424: 錯誤:‘default_handler’未聲明(在此函數(shù)內(nèi)第一次使用)
xml/apr_xml.c:424: 錯誤:(即使在一個函數(shù)內(nèi)多次出現(xiàn),每個未聲明的標(biāo)識符在其
xml/apr_xml.c:424: 錯誤:所在的函數(shù)內(nèi)也只報告一次。)
xml/apr_xml.c: 在函數(shù)‘do_parse’中:
xml/apr_xml.c:434: 錯誤:‘a(chǎn)pr_xml_parser’沒有名為‘xp’的成員
xml/apr_xml.c:438: 錯誤:‘a(chǎn)pr_xml_parser’沒有名為‘xp’的成員
xml/apr_xml.c:442: 錯誤:‘a(chǎn)pr_xml_parser’沒有名為‘xp_err’的成員
xml/apr_xml.c:442: 錯誤:‘a(chǎn)pr_xml_parser’沒有名為‘xp’的成員
xml/apr_xml.c: 在函數(shù)‘a(chǎn)pr_xml_parser_geterror’中:
xml/apr_xml.c:500: 錯誤:‘a(chǎn)pr_xml_parser’沒有名為‘xp_err’的成員
xml/apr_xml.c:500: 錯誤:‘a(chǎn)pr_xml_parser’沒有名為‘xp_err’的成員
make[1]: *** [xml/apr_xml.lo] 錯誤 1
make[1]: Leaving directory `/usr/local/src/apr-util-1.6.1'
make: *** [all-recursive] 錯誤 1
百度了一下,根據(jù):https://blog.csdn.net/dn1115680109/article/details/80847924
于是對缺少的expat庫進(jìn)行安裝:
[root@cent001 apr-util-1.6.1]# yum install -y? expat-devel
執(zhí)行后就安裝了:expat-devel.x86_64 0:2.0.1-11.el6_2,然后清理后再次編譯:
[root@cent001 apr-util-1.6.1]# make clean
[root@cent001 apr-util-1.6.1]# make
[root@cent001 apr-util-1.6.1]# make install
至此,最新版本(推薦版本)的apr-util 源碼安裝成功。有了安裝目錄:/usr/local/apr-util,于是,開始執(zhí)行以下操作:
[root@cent001??apr-util-1.6.1] cd /usr/local/src/httpd-2.4.41
[root@cent001 httpd-2.4.41]# ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
...
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模塊沒有配置。于是我們查看一下pcre:
[root@cent001 httpd-2.4.41]# rpm -q pcre
pcre-7.8-7.el6.x86_64
說明默認(rèn)是有的,可能還是版本沖突原因,依據(jù)http://pcre.org/下載個最新版(如果該網(wǎng)上不去,可以換成https協(xié)議訪問:https://pcre.org/ ,或者訪問:https://sourceforge.net/projects/pcre/files/
下載最新版本的pcre(暫時不用:pcre2):pcre-8.43.tar.gz
[root@cent001 pcre-8.43]# ls
查看到有INSTALL安裝說明文檔
[root@cent001 pcre-8.43]# vim INSTALL
一些安裝說明:
configure、make、make check、make install、make installcheck、
make maintainer-clean、make uninstall、make? distcheck、./configure --help
[root@cent001 pcre-8.43]# ./configure --prefix=/usr/local/pcre
[root@cent001 pcre-8.43]# make
[root@cent001 pcre-8.43]# make install
至此,最新版本的pcre 源碼安裝成功。有了安裝目錄:/usr/local/pcre,于是,開始執(zhí)行以下操作:
[root@cent001??apr-util-1.6.1] cd /usr/local/src/httpd-2.4.41
[root@cent001 httpd-2.4.41]# ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util?-with-pcre=/usr/local/pcre
...
configure: summary of build options:
Server Version: 2.4.41
Install prefix: /usr/local/apache2
C compiler: gcc -std=gnu99
CFLAGS: -g -O2 -pthread
CPPFLAGS: -DLINUX -D_REENTRANT -D_GNU_SOURCE
LDFLAGS:
LIBS:
C preprocessor: gcc -E
至此,httpd服務(wù)安裝過程中的配置正確地完成,進(jìn)入”理論步驟“3.2
編譯:使用 make 命令直接執(zhí)行
[root@cent001 httpd-2.4.41]# make clean
[root@cent001 httpd-2.4.41]# make
...
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_ParserCreate'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_GetErrorCode'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_SetUserData'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_ErrorString'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_SetEntityDeclHandler'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_ParserFree'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_SetElementHandler'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_StopParser'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_Parse'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_SetCharacterDataHandler'
collect2: ld returned 1 exit status
make[2]: *** [htpasswd] 錯誤 1
make[2]: Leaving directory `/usr/local/src/httpd-2.4.41/support'
make[1]: *** [all-recursive] 錯誤 1
make[1]: Leaving directory `/usr/local/src/httpd-2.4.41/support'
make: *** [all-recursive] 錯誤 1
出錯原因:猜測是由于apr-util引起的。
如果是這樣的話,那么:之前猜想著“官方都極力推薦了那么應(yīng)該沒問題”是有問題的,apr-util推薦版本可以針對任何版本都可行這種想法就是錯誤的。
現(xiàn)在是真的是apr-util的問題嗎?推薦版本的apr-util究竟是真的可靠嗎?
明眼看上去,確實apr-util很有問題!官方辦法行不通了,于是采用土法:
?
按辦法-2去做
?
于是更換一下低版本的apr-util 來試試:
重新下載低版本的apr-util:
網(wǎng)址:http://archive.apache.org/dist/apr/? (此網(wǎng)址包含各版本的apr與apr-util,但速度較慢,建議使用百度搜索:archive.apache.org/dist/apr/? 然后以百度快照?形式進(jìn)入下載)
下載?apr-util-1.3.11.tar.gz? (下載速度太慢,有時真的下不動。推薦從其它地方下載)
然后進(jìn)行解壓。移除之前版本(直接重命名),進(jìn)行當(dāng)前版本安裝:
[root@cent001 httpd-2.4.41]# cd /usr/local/
[root@cent001 local]# mv apr-util apr-util.bak2
[root@cent001 local]# cd /usr/local/src/apr-util-1.3.11
[root@cent001 apr-util-1.3.11]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@cent001 apr-util-1.3.11]# make clean
[root@cent001 apr-util-1.3.11]# make
[root@cent001 apr-util-1.3.11]# make install
至此,apr-util已經(jīng)替換為低版本,重新執(zhí)行:
[root@cent001??apr-util-1.6.1] cd /usr/local/src/httpd-2.4.41
[root@cent001 httpd-2.4.41]# ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util?-with-pcre=/usr/local/pcre
[root@cent001 httpd-2.4.41]# make clean
[root@cent001 httpd-2.4.41]# make
至此,編譯任務(wù)成功,進(jìn)入”理論步驟“3.3
?
安裝:使用 make install 命令直接執(zhí)行
[root@cent001 httpd-2.4.41]# make install
至此,安裝任務(wù)成功,進(jìn)入”理論步驟“4
?這里直接說明了:”官方極力推薦的版本并不一定適用“,比如apr適用,而apr-util就不適用。
啟用httpd服務(wù)(運行apache)中,使用瀏覽器訪問
?
啟動服務(wù),使用:安裝目錄/bin/apachectl start? ? (要停止服務(wù)則使用:安裝目錄/bin/apachectl stop)
[root@cent001 httpd-2.4.41]# /usr/local/apache2/bin/apachectl start
AH00557: httpd: apr_sockaddr_info_get() failed for cent001
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
這種情況,可以參照?https://www.cnblogs.com/xiaoqian1993/p/6027907.html? ,進(jìn)行2步修改:
1。修改HOSTS文件:
[root@cent001 httpd-2.4.41]# vim /etc/hosts
添加一行(注意其中的cent001為主機(jī)名):? ? ? ?127.0.0.1? ?localhost.localdomain localhost cent001
?
2。修改HTTPD配置文件:
[root@cent001 httpd-2.4.41]# vim /usr/local/apache2/conf/httpd.conf
查找#ServerName,添加一行:ServerName localhost:80
?
再次啟動(或停止后再次啟動):
[root@cent001 httpd-2.4.41]# /usr/local/apache2/bin/apachectl start
瀏覽:http://localhost/? ? ? ?或? ?http://127.0.0.1? ? ? ?或? ? http://192.168.253.129? ??
正常的話顯示:It works!
httpd (pid 119873) already running
至此,整個httpd-2.4.41安裝過程算是暫時可行。另外還有一些其它的問題:系統(tǒng)有時也默認(rèn)安裝了httpd服務(wù)(RPM形式):
?
如果是RMP包的APACHE可以直接進(jìn)行如下操作:
查看RPM的APACHE版本:
[root@cent001 httpd-2.4.41]# rpm -q httpd
httpd-2.2.15-53.el6.centos.x86_64
或者:
[root@cent001 httpd-2.4.41]# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built: May 11 2016 19:28:33
?
查看RPM的APACHE狀態(tài):
[root@cent001 httpd-2.4.41]# service httpd status
httpd 已停
?
RPM的APACHE啟動方式:
[root@cent001 httpd-2.4.41]# service httpd start
正在啟動 httpd:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[確定]
[root@cent001 httpd-2.4.41]# service httpd status
httpd (pid 120138) 正在運行...
使用啟動命令后沒有出錯信息的情況下,通過查詢狀態(tài)為“正在運行”就可以表明已經(jīng)成功啟動服務(wù)。
如果啟動失敗,信息如下顯示時,則代表已經(jīng)有服務(wù)占用了80端口(可能是源碼包的APACHE已經(jīng)啟動了,要使用RPM的APACHE的話就可以先停止源碼版的)
正在啟動 httpd:(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
[失敗]
另外,如果像源碼版的APACHE服務(wù),啟動時顯示:
AH00557: httpd: apr_sockaddr_info_get() failed for cent001
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
則可以按照源碼版,同時修改HOSTS文件及配置文件:
其中HOSTS文件是同一個(即說到HOSTS文件的時候,就是指:/etc/hosts)
而RPM版的APACHE的配置文件,是在:/etc/httpd/conf/httpd.conf? (可以通過:# rpm -ql httpd | more? 看到)
[root@cent001 httpd-2.4.41]# vim /etc/httpd/conf/httpd.conf
按照上邊源碼版的修改同樣修改就可以!
?
?
==================================================================
? ? END OF 《Apache源碼包在LINUX(CENTOS6.8)中的安裝(出現(xiàn)問題及解決)》
==================================================================
?
轉(zhuǎn)載于:https://www.cnblogs.com/dreamyoung/p/11396094.html
總結(jié)
以上是生活随笔為你收集整理的Apache源码包在LINUX(CENTOS6.8)中的安装(出现问题及解决)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 表弟jian表?[已扎口]
- 下一篇: nicstat命令安装与分析