一、目標

  1、熟練掌握CentOS6.5下Apache的編譯安裝

  2、能夠解決編譯過程中產生的問題,並對相應問題進行記錄

二、編譯前環境搭建

  1、環境搭建

    所需環境:make、gcc、gcc-c++、openssl-devel、pcre、pcre-devel、zlib*、expat-devel

    説明:所有軟件包在本地yum源中都有,yum配置

  2、安裝軟件包準備(已保存到百度網盤)

    1)apr-1.6.5.tar.gz  下載地址:http://apr.apache.org/download.cgi;https://mirrors.tuna.tsinghua.edu.cn/apache/apr/

    2)apr-util-1.6.1.tar.gz  下載地址:http://apr.apache.org/download.cgi;https://mirrors.tuna.tsinghua.edu.cn/apache/apr/

    3)httpd-2.4.38.tar.bz2  下載地址:https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/

三、編譯安裝

  1、編譯安裝apr

    1)解壓apr

      tar  -zxvf apr-1.6.5.tar.gz

    2)進入解壓後的目錄,並將其配置到/usr/local/apr目錄中

      cd  apr-1.6.5

      ./configure  --prefix=/usr/local/apr

    3)編譯並安裝

      make -j 4  &&  make  install

  2、編譯安裝apr-util

    1)解壓apr-util

      tar  -zxvf  apr-util-1.6.1.tar.gz

    2)進入解壓後的目錄,將其配置到/usr/local/apr-util目錄中,並指定apr位置

      cd  apr-util-1.6.1

      ./configure  --prefix=/usr/local/apr-util  --with-apr=/usr/local/apr

    3)編譯並安裝

      make  &&  make  install

  3、編譯安裝httpd

    1)解壓httpd

      tar  -jxvf  httpd-2.4.38.tar.bz2

    2)進入解壓後目錄,將其配置到/usr/local/apache目錄中,並指定apr、apr-util位置和其他參數

./configure --prefix=/usr/local/apache --sysconf=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
        --sysconf=/etc/httpd 配置文件位置
						        --enable-so	支持模塊化
						        --enable-ssl 	支持ssl功能
						        --enable-cgi 	支持cgi功能
						        --enable-rewrite 	支持url重寫
						        --enable-modules=most 	啓用模塊級別:most大多數
						        --enable-mpms-shared=all 	支持所有支持的模塊
						        --with-mpm=prefork/event/worker mpm模塊為prefork模式
						        --with-zlib 支持傳輸壓縮
						        --with-pcre 支持pcre正則表達式
						        --with-apr=/usr/local/apr 	apr位置為/usr/local/apr
						        --with-apr-util=/usr/local/apr-util 	apr-util位置為/usr/local/apr

    3)編譯並安裝

      make  &&  make  install

四、安裝後的設置

  1、打開源碼包中build/rpm/httpd.init文件

  2、在文件第二行添加內容(不用添加):   

#chkconfig:35  92 92
    #description:httpd

  3、將build/rpm/httpd.init文件複製到/etc/rc.d/init.d/目錄下改名為httpd,並將httpd服務添加進chkconfig

cp  /usr/local/apache/bin/apache  /etc/rc.d/init.d/httpd
    chkconfig  --add  httpd
    chkconfig  --list  |  grep  httpd

  4、檢測httpd的配置文件是否有語法錯誤,並清空緩存

/usr/local/apache/bin/httpd  -t
    bash  -r

  5、將/usr/local/apache/bin添加到環境變量

vim  /etc/profile.d/httpd.sh
      export  PATH=/usr/local/apache/bin:$PATH

    執行環境變量:chmod +x /etc/profile.d/httpd.sh  &&  source httpd.sh

    查看:echo  $PATH

  6、啓動httpd服務,並查看結果

    service  httpd  start

    ps  aux  |  grep  httpd

  7、查看mpm啓動的模塊

    httpd  -M

    其配置內容在/etc/httpd24/httpd.conf

    

LoadModule mpm_event_module modules/mod_mpm_event.so
					      #LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
					      #LoadModule mpm_worker_module modules/mod_mpm_worker.so

五、出錯總結

  1、需要安裝openssl-devel

checking for OpenSSL version >= 0.9.8a... FAILED
configure: WARNING: OpenSSL version is too old
no
checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not be built due to prerequisite failures

  2、在執行./httpd.sh時報錯,執行後PATH沒改變

    使用source命令運行

  

 

生死看淡,不服就幹!