Centos7 Apache 2.4.18编译安装
安裝環境:CentOS Linux release 7.0.1406 (Core)
0x01
到官網http://httpd.apache.org/download.cgi#apache24下載apache http最新版
tar zxf httpd-2.4.18.tar.gz
[root@localhost httpd-2.4.18]# rpm -qa | grep apr ? ? ? ? ?查看當前主機上是否安裝apr/apr-util,這個庫為apache提供跨平臺的支持
[root@localhost httpd-2.4.18]# yum install apr apr-util ? 這兩個包在光盤鏡像都有,配置和yum源即可
?使用yum安裝的apr位置信息
[root@localhost httpd-2.4.18]# rpm -ql apr
/usr/lib64/libapr-1.so.0
/usr/lib64/libapr-1.so.0.4.8
/usr/share/doc/apr-1.4.8
/usr/share/doc/apr-1.4.8/CHANGES
/usr/share/doc/apr-1.4.8/LICENSE
/usr/share/doc/apr-1.4.8/NOTICE
[root@localhost httpd-2.4.18]# rpm -ql apr-util
/usr/lib64/apr-util-1
/usr/lib64/libaprutil-1.so.0
/usr/lib64/libaprutil-1.so.0.5.2
/usr/share/doc/apr-util-1.5.2
/usr/share/doc/apr-util-1.5.2/CHANGES
/usr/share/doc/apr-util-1.5.2/LICENSE
/usr/share/doc/apr-util-1.5.2/NOTICE
0x02 Apache編譯選項
--prefix=/usr/local/apache?
--sysconfdir=/etc/httpd?
--with-apr=/usr/local/apr
--with-apr-util=/usr/local/apr-util?
--enable-so ? ? ? ? ? ??//打開 so 模塊,so 模塊是用來提 DSO 支持的,提供動態共享模塊與php協作
--enable-ssl ? ? ? ? ? ? //https使用
--enable-cgi ? ? ? ? ? ?//為非線程方式工作的mpm使用
--enable-rewrite ? ? //支持 URL 重寫
--enable-zlib ? ? ? ? ?//通用壓縮機制
--with-pcre ? ? ? ? ? ?//支持pcre
--enable-module=most ? ? ?//啟用大多數常用的模塊
--enable-mpms-shared=most ? ? ? ?//啟用MPM支持的模式,啟用哪種mpm(prefork,worker,event),使用worker或event時要另外一種方式編譯php(編譯時使用了–enable-maintainer-zts選項)
--with-mpm=MPM ? ? ? ? ?//指定默認的mpm
--enable-deflate ? ? ? //傳輸壓縮機制,節約帶寬
--enable-cgid ? ? ? ? //以線程工作(worker/event)的mpm使用
更多的選項可以通過./configure --help 了解
官方的編譯選項文檔http://httpd.apache.org/docs/current/programs/configure.html
?
0x03 安裝
[root@localhost httpd-2.4.18]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --enable-zlib --enable-module=most --enable-mpms-shared=most --with-mpm=event
使用以上編譯選項進行編譯,編譯的時候發現報錯,難道使用yum安裝的apr就不行了嗎?還是因為版本問題導致的。其實這里說明apr-config文件,但是apr的rpm包并未包含,所以應該安裝apr-devel的rpm包。這里用源碼安裝解決
checking for APR... configure: error: the --with-apr parameter is incorrect. It must specify an install prefix, a build directory, or an apr-config file.
1、到官網下載apr和apr-util源碼安裝。
[root@localhost httpd-2.4.18]# tar zxf /mymnt/mnt/apr-1.5.2.tar.gz -C /usr/local/src/
[root@localhost httpd-2.4.18]# tar zxf /mymnt/mnt/apr-util-1.5.4.tar.gz -C /usr/local/src/
?
[root@localhost apr-1.5.2]# ./configure --prefix=/usr/local/apr
[root@localhost apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@localhost httpd-2.4.18]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --enable-zlib --enable-module=most --enable-mpms-shared=most --with-mpm=event --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
2、安裝完apr后還需要安裝pcre,打算到官網下載的,很簡潔的網頁,但是下載頁面打不開。在yum源中找到了
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
[root@localhost httpd-2.4.18]# yum install pcre-devel?
3、繼續執行checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not be built due to prerequisite failures,這是因為缺少openssl
[root@localhost httpd-2.4.18]# yum install openssl-devel
4、最后出現的一個報錯是configure: error: MPM most does not support dynamic loading.
從字面上可以了解,此時將--enbale-mpm-shared改為all即可?
make && make install
?
0x04 ?如何啟動
沒有做任何設置嘗試啟動時?[root@localhost apache2]# bin/apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
更改下主機名即可或者直接忽略
Apache 沒有帶服務腳本,所以需要自己編寫一個用來實現開機啟動。當然這里臨時使用的就略過了
附:編譯安裝后一般設置
1、導出頭文件;以目錄鏈接的形式來實現
[root@localhost]# ln -sv /usr/local/apache2/include/ /usr/include/httpd
2、輸出二進制程序
[root@localhost]# vim /etc/profile.d/httpd24.sh
export PATH=/usr/local/apache2/bin:$PATH
[root@localhost]#. /etc/profile.d/httpd24.sh
3、導出man文件
[root@localhost]# vim /etc/man.config
MANPATH /usr/local/apache2/man
[root@localhost]# man -M /usr/local/apache2/man httpd
?
4、導出庫文件
?把lib目錄路徑輸出到/etc/ld.so.conf.d
[root@localhost]#echo “/usr/local/apache2/lib” > /etc/ld.so.conf.d/httpd
?
5、服務腳本
寫個啟動腳本放置在/etc/init.d/目錄即可用service啟動
?
轉載于:https://www.cnblogs.com/otherside/p/5240242.html
總結
以上是生活随笔為你收集整理的Centos7 Apache 2.4.18编译安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C 语言和C++语言的 struct对比
- 下一篇: 金融机构如何应对核心系统分布式智能化升级