用FreeBSD+Windows架设个人WEB服务器
Windows 2000 professional
所需软件 for FreeBSD
apache_1.3.27.tar.gz for UNIX
php-4.3.1.tar.gz
mysql-3.23.56.tar.gz for FreeBSD
mod_gzip_1.3.19.1a.tar.gz
ZendOptimizer-2.1.0a.tar.gz for FreeBSD
ez-ipupdate-3.0.10.tar.gz
samba-2.2.8.tar.gz
for Win32
apache,php,mysql,ZendOptimizer,phpMyAdmin的win32版本
ApacheModuleGzip.dll.zip
Macromedia Dreamweaver MX
EditPlus 2
架设示意:
因特网
-------------------------------------------------------------
|
|
|
-------------------------------------------------------------
网卡0 <-动态IP解析用ez-ipupdate
FreeBSD上
防火墙 ipfw
WEB服务器 apache<-传输加速用mod_gzip
数据库接口 php <-接口加速用ZendOptimizer
数据库服务器 mysql <-数据库管理用phpMyAdmin
文件共享服务器 samba
网卡1
-------------------------------------------------------------
|
|
|
-------------------------------------------------------------
网卡
Windows 2000 professional上
装有apache+php+mysql以及Macromedia Dreamweaver MX和EditPlus 2
是局域网中唯一的客户机
-------------------------------------------------------------
你要达到的目的:
1 用FreeBSD作带有防火墙的WEB服务器,MySQL数据库服务器及samba服务器的同时,充当局域网的网关;
2 利用建立在Windows上的WEB服务器,MySQL服务器,Macromedia Dreamweaver MX及EditPlus 2编辑调试网页;
3 利用Windows上的phpMyAdmin管理FreeBSD上的MySQL数据库;
3 利用FreeBSD上的samba服务器将调试好的网页从Windows转移到FreeBSD上,让因特网能访问到你的杰作;
4 学习和练习组网;
5 在Windows上上网冲浪。
安装和配置
之前的废话:假设你已经
1 成功地在两台机器上分别安装了FreeBSD(建议安装成以命令行形式运行)并增加了一名用户假设为:winname
和Windows 2000 professional,Windows的计算机名假设为:winname,工作组假设为:workgroup;
2 成功地安装了FreeBSD上的两张网卡和Windows上的一张网卡;
3 有一根双绞线连接FreeBSD上的内网网卡(假设为rl1,下同)和Windows上的网卡;
4 FreeBSD上的另一网卡(假设为rl0,下同)连接因特网;
5 曾经在Windows上用ADSL(动态IP分配形式)成功地连入过因特网,假设用户名:xxx,密码:yyy。
6 申请了希网(http://www.3322.org)动态域名,假设是test.3322.org,用户名:user,密码:passwd
7 牢记winname,workgroup,rl0,rl1,xxx,yyy,user,passwd,因为下面的说明中要用到。要根据自己的情况更改以
上内容。
1 FreeBSD上
以root身份登入FreeBSD
配置rc.conf
# ee /etc/rc.conf
加入或更改如下内容:
gateway_enable="YES"
sendmail_enable="NO"
inetd_enable="NO"
network_interfaces="rl0 rl1 lo0"
ifconfig_rl1="inet 192.168.0.3 netmask 255.255.255.0"
hostname="test.3322.org"
ppp_enable="YES"
ppp_mode="ddial"
ppp_profile="adsl"
ppp_nat="YES"
#ipfw_enable="YES"
#ipfw_type="/etc/ipfw.conf"
按“Ctrl+[”,存盘退出。
配置ppp.conf
# ee /etc/ppp/ppp.conf
加入或更改如下内容,清除其它内容:
default:
set log Phase tun command
set ifaddr 10.0.0.1/0 10.0.0.2/0
adsl:
set device PPPoE:rl0
set authname:xxx
set authkey:yyy
set dial
set login
enable dns
add default HIADDR
按“Ctrl+[”,存盘退出。
配置hosts.conf
# ee /etc/hosts.conf
加入或更改如下内容:
::1 localhost localhost.my.domain
127.0.0.1 localhost localhost.my.domain
test test.8866.org
按“Ctrl+[”,存盘退出。
# reboot
再次以root身份登入FreeBSD
test# ifconfig
你会发现有一些变化:
如果Windows 2000也开了机,那么rl0和rl1都处于active状态,rl1的ip被设为192.168.0.3,而且通过拨号设备tun0(ADSL)开机时自动拨了
号,你临时拥有了一个公网ip。
test# killall ppp
记录DNS服务器的ip:
test# ee /etc/resolv.conf
你会发现一些东西,是你虚拟拨号上网时用的DNS服务器的ip,把它们记录下来:
nameserver xxx.xxx.xxx.xxx
nameserver yyy.yyy.yyy.yyy
...
按“Ctrl+[”,不存盘退出。
编译和安装WEB服务器,MySQL服务器和samba服务器
最初的时候,你得想办法把apache以及其他的*.tar.gz文件弄到FreeBSD上的一个分区(比如安装FreeBSD的时候建立一个单独分区/sos)里备
用,如果重新安装FreeBSD,就可以保留/sos里的这些宝贵的*.tar.gz文件了。将/sos内所有的*.tar.gz文件解压缩在/sos里。
test# cd /sos
test# gunzip < /sos/*.tar.gz | tar xvf -
apache
编译安装(将apache安装到目录/usr/local/www,你也可以更改目录)
test# cp -R /sos/apache_1.3.27 /usr/local/apache
test# chmod -R 755 /usr/local/apache
test# ee /usr/local/apache/src/include/httpd.h
#ifndef HARD_SERVER_LIMIT
#ifdef WIN32
#define HARD_SERVER_LIMIT 1024
#elif defined(NETWARE)
#define HARD_SERVER_LIMIT 2048
#else
#define HARD_SERVER_LIMIT 2560 <===修改apache的默认最大进程数256为2560
#endif
#endif
按“Ctrl+[”,存盘退出。
test# cd /usr/local/apache
test# ./configure --prefix=/usr/local/www --enable-shared=max --enable-module=most
test# make
test# make install
mysql
安装(将mysql安装到目录/usr/local/mysql,你也可以更改目录)
test# cp -R /sos/mysql-3.23.56 /usr/local/mysql
test# chmod -R 755 /usr/local/mysql
test# cd /usr/local/mysql
test# pw groupadd mysql
test# pw useradd mysql -g mysql
test# scripts/mysql_install_db
test# chown -R root /usr/local/mysql
test# chown -R mysql /usr/local/mysql/data
test# chgrp -R mysql /usr/local/mysql
php
编译安装(将php安装到目录/usr/local/www/php,你也可以更改目录)
test# cp -R /sos/php-4.3.1 /usr/local/php
test# chmod -R 755 /usr/local/php
test# cd /usr/local/php
test# ./configure --prefix=/usr/local/www/php --with-apxs=/usr/local/www/bin/apxs --with-mysql=/usr/local/mysql
test# make
test# make install
test# cp /usr/local/php/php.ini-dist /usr/local/www/php/lib/php.ini
mod_gzip
安装
test# cp -R /sos/mod_gzip_1.3.19.1a /usr/local/mod_gzip
test# chmod -R 755 /usr/local/mod_gzip
test# cd /usr/local/mod_gzip
test# /usr/local/www/bin/apxs -i -a -c mod_gzip.c
test# mkdir /tmp/mod_gzip
ZendOptimizer
安装
test# cp -R /sos/ZendOptimizer-2.1.0a /usr/local/zend
test# chmod -R 755 /usr/local/zend
test# cd /usr/local/zend
test# ./install.sh
安装脚本会提及几个关键问题:
1 ZendOptimizer的安装目录:/usr/local/www/Zend(将ZendOptimizer安装到目录/usr/local/www/Zend,你也可以更改目录)
2 php.ini所在目录:/usr/local/www/php/lib
3 apache的bin目录:/usr/local/www/bin
4 apache的配置文件所在目录:/usr/local/www/conf
以及你的apache和php的版本是否为1.3.27和4.3.1这些问题,注意别弄错了。
最后,它问你是否重启apache,选择否后,自动退出,至此ZendOptimizer安装成功。
ez-ipupdate-3.0.10
安装
test# cp -R /sos/ez-ipupdate-3.0.10 /usr/local/ez
test# chmod -R 755 /usr/local/ez
samba
编译安装
test# cp -R /sos/samba-2.2.8 /usr/local/smb
test# chmod -R 755 /usr/local/smb
test# cd /usr/local/smb/source
test#./configure --prefix=/usr/local/samba
test# make
test# make install
test# cp /usr/local/smb/examples/smb.conf.default /usr/local/samba/lib/smb.conf
删除编译安装文件:
test# rm -R /usr/local/apache
test# rm -R /usr/local/php
test# rm -R /usr/local/mod_gzip
test# rm -R /usr/local/zend
test# rm -R /usr/local/smb
别删mysql和ez-ipupdate,一般下载的mysql和ez-ipupdate是二进制分发形式,你要直接用它们。
这时你的/usr/local/里会干干净净地只剩下www,samba,ez和mysql四个文件目录,除非你采用标准方式如ports安装了其它软件。
配置服务器
apache的配置文件:httpd.conf
test# ee /usr/local/www/conf/httpd.conf
加入或更改如下内容:
Serv