(一、系统安装)
'bPo 5V| Al}PJz\ ,O$C9pH9 wgrOW]e 前言
G. TX1 g<%-n, &y\2:IyA #"-^;Z 写本文的初衷主要是记录下我一段时间学习使用FreeBSD建设网站平台的一些经验和体会。因为本人是菜鸟,所以很多地方不够完善。本文权当给初学者提供一个具体可操作的实例。所有操作步骤都是我边做边写。避免出现遗漏或一些不必要的小错误,给初学者带来麻烦。
yfQE8v+ eCD,[At/ 本网站平台建设全过程包括FreeBSD系统的安装,web、ftp、mail、proxy服务器、视频点播服务器等。所有过程都在FreeBSD4.7环境下测试通过。
HC,@tfS &Sa~Wtm|* 由于写本文时参考了网上太多前辈和大侠的资料,无法一一列举。还请作者原谅。
rK|&u
v*b puF
Z~WZ 本连载文章前后关联很紧密,建议初学者一步一步来做。
]{^vs'as\ D7/Bp4I#o 试验环境如下:
<t{AY^:r dC#\ut%l 硬件环境:普通pc机,双网卡。配制不需要高,主要是稳定,并能适应长时间开机。听前辈介绍AMD k6的cpu运行FreeBSD好像有点问题。不过我没有试验。建议用intel的。
: PkZ(WZ9 8f5^@K\c 软件环境:操作系统:FreeBSD4.7(4.8)
%$| k3[4V ZRGZ'+hw web服务器:Apache 1.3.27+modssl +mod_php4+mod_gzip+mod_fastcgi +mod_perl +mysql3.23
Y3>\;W*? 3
?~+5DU ftp服务器:Proftpd1.2.7+proftpd-mod-quotatab-1.2.4+mysql
zAJUL WEAXqDjM mail服务器: iceblood前辈制作的qmail安装包(经过修改)+vqregister-2.5
+Ob#3PRy *wcoDQ b; proxy服务器:使用FreeBSD内置的NAT和PPP拨号+squid
4+,Z'J%\[7 #SNI
dc>9\ 视频点播服务器:Helix Universal Servevr (realserver9.01)
Fg_s'G,` P@`"MNS 网络环境:我用的是adsl动态拨号方式,因为动态ip所存在的一些问题,我把所有的服务都装在一台机器上,且这台机器要直接与外网相连。静态ip更方便一些。(本文两种方式都会讨论)
f om"8iL1 N)WG~=Gi ^I?y\:. L-{r*ccIW 第一步:安装系统
olh3 R.M< \w[%n 0 关于安装过程网上有很多文章,这里不作详述。仅提出几点建议供大家参考:
|/s2AzDD [d>yo_iB 1、 采用最小化安装。
RGI6W{\ @A'1D@f# 2、 安装时启用inetd,并在编辑inetd.conf文件时,把带有“ftp”的行前面的“#”号去掉。这样作是为了以后安装软件时可以用ftp上传文件。
#!# X3j Gi4dgMVei 3、 添加一个wheel组的用户,这样在系统工作正常后可以在windows系统上通过终端登录软件(如SecureCRT)进行所有操作。FreeBSD4.7在最小安装时支持SSH终端登录,所以我们需要使用支持SSH协议的终端软件,如SecureCRT。例如我添加的用户名是ylf,隶属wheel系统组。系统产生一个用户目录/home/ylf。我可以通过SecureCRT以ylf身份登录到系统,然后通过su命令切换到root用户。同时我也可以在IE浏览器内键入
ftp://192.168.0.1 ,并输入ylf用户名和密码登录ftp将需要的文件上传到自己的用户目录里。(192.168.0.1是我的服务器连接内网的网卡ip地址)。以下除系统安装部分,我都是采用终端方式操作。
Wb4{*~ Qp&ySU8 4、 分区时将/home、/usr和/var划的大一些,因为/usr为程序目录,/var要存放日志,/home是用户主目录,我的用户文件如网页、ftp上传文件等都放在这里。还有最好保留一部分空间留作以后需要的时候用。我的机器上有2块硬盘,一快18.2G SCSI硬盘,一块40G IDE硬盘。我是这样划分的。
z}8L}: \RyA}P5S 128M /
-wMW@:M_ Hd`p_?3] 20G /home
w{x(YVSH Nj&%xe>]. 2G /ftp
'$-,;vnP0 *r$.1nke 256M /tmp
6 <S&~q [;YBX]t 6G /usr
OUO^/]
J1S vaJXX 5G /var
V_622~Tc/[ W+C_=7_ 其中/ftp是为匿名ftp用户访问专用。剩余空间留作备用。当然如果硬盘空间少的话,做我们的试验也是够用的。
;I71_>m g@VndAp 关于安装方面的文章,大家也可以参考delphij写的《FreeBSD服务器的安装与优化》。
http://community.freebsdchina.org/catalog.php?forum=34 一文。
5THS5' +J8/,d 安装完系统后,要重新编译内核。目的是要系统支持Firrwall和提高运行效率。
ATp 6- 1?#9Kj{ql 首先确认系统是否安装了FreeBSD的内核支持。如果是最小安装,则需要运行/stand/sysinstall命令安装内核支持。方法如下:
<>Ddxmw `h5eej&s( # /stand/sysinstall
y@\Q@
9 i9k]Q(o 选Configure—Distributions—src—sys,内核文件将被安装在/usr/src/sys目录中。
}_l
-'t ?$4R < 注意:这之后的过程在终端上操作要方便许多。SecureCRT支持在终端界面上直接拷贝和粘贴文本内容。
bMOM`At>z rGGepd 转到内核文件目录
HKN"$(Q A=]F_ # cd /usr/src/sys/i386/conf
- :z5m+ aW-o=l@; 编辑内核文件
EFt`<qwj AeCG2!8^0 # vi kernel_wwwx # kernel_wwwx为我的内核文件名
B00wcYM<1r ^|i\d\ 我的内核文件如下:
h21(K} kDl4t]j #
"`*a)'.'^c yXo0z_ G # GENERIC -- Generic kernel configuration file for FreeBSD/i386
Rue|<d1 ^WW|AS #
Q1\k`J $"{3yLg # For more information on this file, please read the handbook section on
zQ %z"tQ 2*wO5v # Kernel Configuration Files:
<i\zfa'6 'Mx K}9 #
PeUd Q>a7Ps@~ #
http://www.FreeBSD.org/doc/en_US.IS...fig-config.html yki51rOI* 3_*Xk.
.d #
Bx : So6: (X_ ,*3Yxk # The handbook is also available locally in /usr/share/doc/handbook
oT (:33$ 0mD;.1: # if you've installed the doc distribution, otherwise always see the
Y!1^@;)^ cm 9oG # FreeBSD World Wide Web server (
http://www.FreeBSD.org/) for the
C6V&R1" s 0"qim0%|DF # latest information.
!eAdm !:O/|.+Vmf #
={E!8" ml33qXW: # An exhaustive list of options and more detailed explanations of the
^&';\O@) _[vdY|_ # device lines is also present in the ./LINT configuration file. If you are
Lr}b, syW9Hlm # in doubt as to the purpose or necessity of a line, check first in LINT.
DkF2R @ `KJYm|@ i #
{[t"O u Z~phOv # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246.2.48 2002/08/31 20:28:26 obrien Exp $
FO(0D?PCR 7?!Z+r -Xxu/U})% k4F"UG-` machine i386
[X">vaa 1u"*09yZd cpu I586_CPU
H(NT| <A -(&+ cpu I686_CPU
;?L!1wklA <[y$D=n ident kernel_wwwx #内核文件名,这个要和你的内核文件名一致
$]H= &Ky u@Tt maxusers 0
0gOrW= Rw/JPC" cR=94i=t =yTa,PY options INET #InterNETworking
`zzKD2y FSU%?PxO options FFS #Berkeley Fast Filesystem
"h;;.Y8e ( ztim options FFS_ROOT #FFS usable as root device [keep this!]
Vy%
:\p+ wsJ%*
eYf options SOFTUPDATES #Enable FFS soft updates support
U!\2K~ Dz8:;$/ options UFS_DIRHASH #Improve performance on big directories
b%[nB WE.$a t{*h options PROCFS #Process filesystem
G_^iR- /K,|k
EE'n options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]
s!hI:$J. 'Uko^R)( options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI
zD)IU_GWa 2B9i R options SYSVSHM #SYSV-style shared memory
o4/I1Mq z
_O,Y options SYSVMSG #SYSV-style message queues
$W/+nmb)@K 1qLl^DW options SYSVSEM #SYSV-style semaphores
~3'RW0 ;J(rw
options P1003_1B #Posix P1003_1B real-time extensions
$h 08Z !]rETP_ options _KPOSIX_PRIORITY_SCHEDULING
pFsCd"zv &SjHrOG? options ICMP_BANDLIM #Rate limit bad replies
.|-l+ S$jV|xKB options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
<}EV*`w4 tM^;?HL] # output. Adds ~128k to driver.
*gd?>P7\0 <Qcex3 options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
!EX?m }7 QY~<~<d+G # output. Adds ~215k to driver.
U/X|i / ~_u*\]- 15xd~V?ai: g5tjj. device tun 1
Q e>i{:N G`]v_`> options IPFIREWALL #防火墙
x)ddRq
l af<NMgT2s~ options IPFIREWALL_FORWARD #允许透明代理
IpWy)B>Fl3 j{{~Z M options IPFIREWALL_VERBOSE #允许防火墙日志
t['k%c ^)f{q)to options IPFIREWALL_VERBOSE_LIMIT=100 #限制日志
SZ5O89 aNE9LAms options IPFIREWALL_DEFAULT_TO_ACCEPT #默认允许所有IP包
AV:Xg4UJv %@}o'=[ options IPDIVERT #启用由ipfw divert使用的转向IP套接字
rU=b?D)n!w N5 SLF4R1 {W5ydHXy bJQ5- *F # To make an SMP kernel, the next two are needed
aho'|%y) cOSxg=~>u #options SMP # Symmetric MultiProcessor Kernel
H96BqNoO V~(EVF{h #options APIC_IO # Symmetric (APIC) I/O
K*R)V/B/l `fBG~NDw <w0NPrS] -{X<*P4p device isa
ixIV=# |SGgy|/a# device eisa
(Wd_G-da nu&_gF,{ device pci
_0'm4?" b8J@K" uY^v"cw/F _:35d1[ B{7Kzwh; 1. #
|QX # ATA and ATAPI devices
x9 &-(kBU 8tb6 gZz device ata
yicO!:bM :s'o~
device atadisk # ATA disk drives
-O|&