明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

在Linux防火墻上編譯Apache+PHP4+Mysql(轉(zhuǎn))

[摘要]目的: 一臺Redhat linux 6.2 用為防火墻,專線連結(jié)Chinanet,對內(nèi)連結(jié) 局域網(wǎng)段192.168.11.0/24,需要enable PHP4和Mysql數(shù)據(jù)庫,且局域網(wǎng)上有另一臺...
目的: 一臺Redhat linux 6.2 用為防火墻,專線連結(jié)Chinanet,對內(nèi)連結(jié)

 局域網(wǎng)段192.168.11.0/24,需要enable PHP4和Mysql數(shù)據(jù)庫,且局域網(wǎng)
上有另一臺Apache服務(wù)器192.168.11.2,需要對外部用戶提供服務(wù),利用
防火墻上編譯的Apache反向代理和名字虛擬主機(jī)的功能來實(shí)現(xiàn)

地址: 防火墻外部地址為a.b.c.210,且別名第二個地址為a.b.c.211,內(nèi)部網(wǎng)卡
地址為192.168.11.5,內(nèi)部LAN上的Apache服務(wù)器為192.168.11.2

實(shí)現(xiàn):
1.下載三個源文件到防火墻機(jī)器的/tmp下
apache_1.3.12.tar.gz
mysql-3.22.32.tar.gz
php-4.0.1pl2.tar.gz


2. 在/tmp下分別解開三個文件

# tar xvfz apache*gz
# tar xvfz mysql*gz
# tar xvfz php*gz

3. 進(jìn)入/tmp/mysql*,編譯mysql
#./configure --prefix=/usr/local/mysql
#make
#make install
#scripts/mysql_install_db
#/usr/local/mysql/bin/safe_mysqld &
#/usr/local/mysql/bin/mysqladm -u root password newpassword

4. 進(jìn)入/tmp/php*,編譯PHP4
#./configure --with-mysql --with-apache=../apche_1.3.12
 --enable-track-vars
#make;make install


5. 下載反向代理X-forward-for模塊,地址是
http://perl.apache.org/guide/download.html#mod_proxy_add_forward
下載后放該文件mod_proxy_add_forward.c到/tmp/apache_1.3.12/src/modules/
extra/目錄下

5.編譯Apache,加入PHP4模塊 和大多數(shù)共享模塊庫
./configure --prefix=/usr/local/apache
--activate-module=src/modules/php4/libphp4.a
--activate-module=src/modules/extra/mod_proxy_add_forward.c
--enable-module=most --enable-shared=max

6. 拷貝php.ini-dist到其它目錄
# cd /tmp/php*
# cp php.ini-dist /usr/local/lib/php.ini

7.編輯/usr/local/apache/conf/httpd.conf中的AddType行
AddType application/x-httpd-php4 .php

8. 編輯/usr/local/apache/conf/httpd.conf中的AddModule行,

把mod_proxy_add_forward放在mod_proxy之前。

9. 在/usr/local/apache/conf/httpd.conf的末尾增加下面的行
NameVirtualHost 202.96.240.210


servername host.yourdomain.com
errorlog /var/log/httpd/shopu/error_log
transferlog /var/log/httpd/shopu/access_log
rewriteengine on
rewriterule ^(/.*)$ http://192.168.11.2/$1 [P,L]
#rewritelog /var/log/httpd/shopu/rewrite_log
#rewriteloglevel 9
proxyrequests off

其中rewritelog and rewriteloglevel兩行如果去掉注釋則幫助查找rewriterule
記錄