星期五, 9月 08, 2006

Linux更新Apache

手上有台舊機器,灌紅帽不維護版本,要加上SSL功能,因此重操舊業從source build;此方式也適用FreeBSD,但在FreeBSD我建議直接在ports make時加上參數調整即可。

1. 以ssh登入主機
2.下載新版Apache,以1.3.37為例
3.下載新版mod_ssl,以mod_ssl-2.8.28-1.3.37為例
4.下載新版openssl,以openssl-0.9.8c為例
5. 下載新版PHP,以PHP 4.4.4為例
6. su成root
7. cd /usr/local
8. tar xzf apache_1.3.37.tar.gz; tar xzf mod_ssl-2.8.28-1.3.37.tar.gz; tar xzf openssl-0.9.8c.tar.gz;tar xzf php-4.4.4.tar.gz
9. cd /usr/local/openssl-0.9.8c
10. ./config; make
11. cd /usr/local/php-4.4.4
12. ./configure --with-apache=/usr/local/apache_1.3.37 --with-zlib=/usr/local --with-png-dir=/usr/local --with-gd=/usr/local --with-mysql=/usr/local/mysql --with-gettext --with-iconv --with-imap --with-imap-ssl --enable-mbstring --with-pear --with-kerberos --with-openssl=/usr/local/openssl-0.9.8c --enable-track-vars --disable-debug
PHP的參數是依照個人不同的需求調整各種功能,像是openssl這種需要安全性更新的套件,指定版本會安全一點
13. make clean; make ; make install
14. cd /usr/local/mod_ssl-2.8.28-1.3.37
15. ./configure --with-apache=../apache_1.3.37 --with-ssl=../openssl-0.9.8c
16. make clean; make; make install
17. cd /usr/local/apache_1.3.37
18. ./configure --activate-module=src/modules/php4/libphp4.a --enable-module=so --enable-rule=EAPI --enable-module=proxy --enable-module=rewrite
強烈建議要使用EAPI和module=so,理論上php也可以做成module,但我怎麼做都不成功,因此使用傳統方式。
19. make clean; make
20. make certificate (如果沒有要做簽章,就不要make certificate這步)
21. make install

完成後, /usr/local/apache/bin/apachectl stop; /usr/local/apache/bin/apachectl start 重新啟動Apache即可。

P.S.
1. 我有加上make clean是因為我調整參數make許多次,如果是第一次build,可以不加上make clean,但這是好習慣。
2. Apache在更新時並不會覆蓋原有的設定檔,因此我並沒有附上如何設定,有問題請留言。

沒有留言: