在Linux防火墻上編譯Apache+PHP4+Mysql(轉(zhuǎn))
發(fā)表時間:2023-08-07 來源:明輝站整理相關(guān)軟件相關(guā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
記錄