升級Apache到最新版本,本來并不復雜,但是因為涉及到不能停止現有的Apache實例的運行,因此要小心翼翼的做。
大致分成三步:
編譯新的Apache,
配置新的Apache,
替換舊的Apache。
下面慢慢道來:
1.編譯新的Apache
需要到官網下載最新的src,需要什么依賴包,請參照下載的源碼包里面的README和INSTALL。
如果需要安裝apr包,請到官網下載,并拷貝到正確的位置。然后就是:
./configure
make
make install
默認安裝到/usr/local/apache2 ,可以在configure 參數中指定安裝位置。
2.配置新的Apache
如果安裝到了上述位置,則配置文件在/usr/local/apache2/conf 中,此時可以把在用的Apache的配置文件拷貝過來,
如果能把個性化的配置放到自己創建的conf文件中,比如可以叫做httpd.local.conf 文件,這樣可以方便以后升級時,修改配置。
如果需要什么組件,在這個時候裝上。如果需要啟用哪些module,在這個時候啟用。
修改好了以后,可以進行測試,測試之前,記得修改下監聽端口號,不要使用默認的80了。
測試中,會發現漏了的配置和錯誤的配置。通過后,可以把端口號改回去。
啟動新Apache的命令在/usr/local/apache2/bin 目錄下,叫做apachectl。
如果打算把新的Apache作為服務啟動,可以把這個文件拷貝到/etc/init.d 下面,再把它加入到系統服務中,以SuSE為例,要這樣,
cp apachectl /etc/init.d/apache2.4
chkconfig -a apache2.4
為了服務看起來漂亮,可以把舊的apache啟動文件的開頭部分復制過來,就是 ###BEGIN INIT INFO 那一段。
另外,測試中,可能會發現缺少libpcre或者tomcat-connector等等問題,直接逐一解決就行啦。
比如,可以通過 ldd httpd 來查看是否缺少動/靜態鏈接庫文件。這里要做的就是缺啥補啥。記得補好后,運行一下ldconfig,讓Apache找到。
然后,檢查一下Apache所有的配置文件,看看是否還有參照舊版本Apache路徑的配置文件,如果有的話,都用新的路徑替換掉。
3.替換舊的Apache
這是最后的步驟,要很仔細的,先停掉舊的Apache,例如
service apache2 stop
然后,啟動新的apache,例如
service apache2.4 start
確認業務OK后,去掉舊的apache服務,例如
chkconfig -d apache2
至此,已經運行起來新的Apache實例。后續要做的就是,看看系統里面還有哪些依賴于舊的Apache的地方,都修改成依賴新的Apache。