Posted on 

手動編譯安裝 apache 2.4 @ Scientific Linux 6.5 / CentOS 6.5

一般我們可以透過 yum 來安裝自己想要的套件,但有時卻不是最新版,雖然可以透過修改 yum repo 來達成目的,往往還是得需要一些工夫

且在程式軟體界常常有前輩告訴我們用最新版的不一定好,但還是紀錄一下安裝過程

手動安裝時,因為我們需要透過 gcc C/C++ 編譯,makemake install 來安裝程式,先請確定系統有這些開發套件,一般我們可以輸入以下指令把所有開發套件都安裝好

1
yum groupinstall "Development Tools"

安裝完畢後,至 http://httpd.apache.org/download.cgi 下載最新版的 apache 到 /usr/src/httpd/ 裡 (本例使用 2.4.9)

因 apache 2.4 安裝需要 apr,請至 http://apr.apache.org/download.cgi 下載 apr (本例使用 1.5.1) 與 apr-util (本例使用 1.5.3)

然後解壓縮 httpd-2.4.9.tar.gzapr-1.5.1.tar.gzapr-util-1.5.3.tar.gz

1
2
3
4
cd /usr/src/httpd/  
tar -zxvf httpd-2.4.9.tar.gz
tar -zxvf apr-1.5.1.tar.gz
tar -zxvf apr-util-1.5.3.tar.gz

之後會得出三個資料夾:

  • apr-1.5.1
  • apr-util-1.5.3
  • httpd-2.4.9

請將 apr-1.5.1apr-util-1.5.3 移動至 httpd-2.4.9/srclib/ 底下

1
2
mv apr-1.5.1 ./httpd-2.4.9/srclib/apr  
mv apr-util-1.5.3 ./httpd-2.4.9/srclib/apr-util

OPTIONAL 若另外需要(一般來說通常都會需要) mod_rewritemod_ssl,請安裝下列四個套件,否則在編譯 apache 時會無法 compile

1
yum install pcre pcre-devel openssl openssl-devel

接下來開始編譯並安裝 apache

1
2
3
cd httpd-2.4.9  
./configure --prefix=/etc/httpd --sysconfdir=/etc/httpd/conf/ --with-inculded-apr --enable-so --enable-rewirte --enable-ssl --enable-cgi --enable-cgid --enable-modules=most --enable-mpms-shared=all
make && make install

安裝完畢後,為 apache 建立開機自動啟動的 script

1
cp build/rpm/httpd.init /etc/init.d/httpd

接著進行修改 /etc/init.d/httpd

1
vim /etc/init.d/httpd

修改下列2處

60: httpd=${HTTPD-/usr/sbin/httpd} -> 改為 -> httpd=${HTTPD-/etc/httpd/bin/httpd}
61: pidfile=${PIDFILE-/var/run/${prog}.pid} -> 改為 -> pidfile=${PIDFILE-/etc/httpd/logs/${prog}.pid}

接著給啟動 script 增加執行的權限:

1
chmod +x /etc/init.d/httpd

新增 httpd 到開機啟動管理程式裡

1
chkconfig --add httpd

/usr/sbin 下建立與 /etc/httpd/bin/ 的連結

1
ln -s /etc/httpd/bin/* /usr/sbin/

在來建立 log 紀錄檔的連結

1
ln -s /etc/httpd/logs /var/log/httpd

接下來就可以嘗試啟動 apache 了

1
/etc/httpd/bin/httpd -k start

若啟動時出現這個錯誤訊息

Starting httpd: 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

請修改 /etc/httpd/conf/httpd.conf 第 192 行,將 ServerName localhost 的註解拿掉就行了

接著請打開您的瀏覽器,在網址列輸入您的機器 IP (http://{機器ip}/),若頁面出現 It works! 的大字樣就代表安裝成功~~

若發現回應很久之後出現無法連上的狀況,請確定是否你的機器的防火牆是開啟的狀態,輸入以下指令關閉防火牆

1
service iptables stop

完成!