在Linux防火墙上编译Apache+PHP4+Mysql

王朝厨房·作者佚名  2007-01-05
窄屏简体版  字體: |||超大  

目的: 一台Redhat linux 6.2 用为防火墙,专线连结Chinanet,对内连结局域网段192.168.11.0/24,需要enable PHP4和Mysql数据库,且局域网上有另一台Apache服务器192.168.11.2,需要对外部用户提供服务,利用防火墙上编译的Apache反向代理和名字虚拟主机的功能来实现

地址: 防火墙外部地址为a.b.c.210,且别名第二个地址为a.b.c.211,内部网卡地址为192.168.11.5,内部LAN上的Apache服务器为192.168.11.2

实现:

1.下载三个源文件到防火墙机器的/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. 进入/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. 进入/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模块 和大多数共享模块库

./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记录

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航