(一、系统安装)
SGba6b31 i)$+#N eibkG 0>D*d'xLd 前言
F9d6#~ "%S-(ue: VUP.
\Vry VS_\bIC 写本文的初衷主要是记录下我一段时间学习使用FreeBSD建设网站平台的一些经验和体会。因为本人是菜鸟,所以很多地方不够完善。本文权当给初学者提供一个具体可操作的实例。所有操作步骤都是我边做边写。避免出现遗漏或一些不必要的小错误,给初学者带来麻烦。
q?)5yukeF TU6YS< 本网站平台建设全过程包括FreeBSD系统的安装,web、ftp、mail、proxy服务器、视频点播服务器等。所有过程都在FreeBSD4.7环境下测试通过。
j9GKz1 e'c3.sQ|? 由于写本文时参考了网上太多前辈和大侠的资料,无法一一列举。还请作者原谅。
7y42)X o?~27 本连载文章前后关联很紧密,建议初学者一步一步来做。
.F2"tt?' qJO6m-
试验环境如下:
-dN`Ok<g ~l.C- 硬件环境:普通pc机,双网卡。配制不需要高,主要是稳定,并能适应长时间开机。听前辈介绍AMD k6的cpu运行FreeBSD好像有点问题。不过我没有试验。建议用intel的。
59v=\; UI UV av^<_ 软件环境:操作系统:FreeBSD4.7(4.8)
(Q
^=^s| w5rtYTI web服务器:Apache 1.3.27+modssl +mod_php4+mod_gzip+mod_fastcgi +mod_perl +mysql3.23
[+#k+*1*o \
bWy5/+ ftp服务器:Proftpd1.2.7+proftpd-mod-quotatab-1.2.4+mysql
wZbT*rU u$aN~6HG mail服务器: iceblood前辈制作的qmail安装包(经过修改)+vqregister-2.5
SG&H^V8 +lZ-xU1 proxy服务器:使用FreeBSD内置的NAT和PPP拨号+squid
Eza^Tbq%j? AE`UnlUSF 视频点播服务器:Helix Universal Servevr (realserver9.01)
e%4vvPp {f*{dSm9b 网络环境:我用的是adsl动态拨号方式,因为动态ip所存在的一些问题,我把所有的服务都装在一台机器上,且这台机器要直接与外网相连。静态ip更方便一些。(本文两种方式都会讨论)
|2=w":2# (~! @Uz5 7;C~>WlU .y_ ~mr&d 第一步:安装系统
)"|wWu nD>X?yz2 关于安装过程网上有很多文章,这里不作详述。仅提出几点建议供大家参考:
:_2:Fh.}3~ Dq9f Fe 1、 采用最小化安装。
HU|qeSyel ZtP/|P5@ 2、 安装时启用inetd,并在编辑inetd.conf文件时,把带有“ftp”的行前面的“#”号去掉。这样作是为了以后安装软件时可以用ftp上传文件。
odJE~\\hw H!,V7R 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地址)。以下除系统安装部分,我都是采用终端方式操作。
RdL5VAD (^sb('" 4、 分区时将/home、/usr和/var划的大一些,因为/usr为程序目录,/var要存放日志,/home是用户主目录,我的用户文件如网页、ftp上传文件等都放在这里。还有最好保留一部分空间留作以后需要的时候用。我的机器上有2块硬盘,一快18.2G SCSI硬盘,一块40G IDE硬盘。我是这样划分的。
~k?t ;05lwP*r] 128M /
g2*}XS3 $P#+Y,r~\ 20G /home
s|Vs#o.P) .i*ja* 2G /ftp
Z=%u:K}[ '%:E4oI 256M /tmp
xG Y!r"[ f,LeJTX= 6G /usr
bNtOqhi PJe\PGh 5G /var
6W7,EIf : 0Y.${h 其中/ftp是为匿名ftp用户访问专用。剩余空间留作备用。当然如果硬盘空间少的话,做我们的试验也是够用的。
#)#'^MZX 2t 关于安装方面的文章,大家也可以参考delphij写的《FreeBSD服务器的安装与优化》。
http://community.freebsdchina.org/catalog.php?forum=34 一文。
;A*sub .>PwbZ 安装完系统后,要重新编译内核。目的是要系统支持Firrwall和提高运行效率。
^YfAsBs& 3/&
|Z<f 首先确认系统是否安装了FreeBSD的内核支持。如果是最小安装,则需要运行/stand/sysinstall命令安装内核支持。方法如下:
xlgT1b:6 ?qn4ea-\P # /stand/sysinstall
{l_D+B; ;eO Ye3;c 选Configure—Distributions—src—sys,内核文件将被安装在/usr/src/sys目录中。
rXip"uz(K> S"87 <o 注意:这之后的过程在终端上操作要方便许多。SecureCRT支持在终端界面上直接拷贝和粘贴文本内容。
?Iaqbt%2 %?qzP' 转到内核文件目录
E)X_ #>BC|/P} # cd /usr/src/sys/i386/conf
f^5sJ0;% Y2N$&]O{ 编辑内核文件
4j i#Q {4p7r7n' # vi kernel_wwwx # kernel_wwwx为我的内核文件名
v]KPA.W YY'[PXP$Y 我的内核文件如下:
73tjDO7d d)XT> & #
7ruWmy;j
>Yv#t.! # GENERIC -- Generic kernel configuration file for FreeBSD/i386
P/]8+_K BCd0X. m( #
^BI&-bR@ `$3P@SO" # For more information on this file, please read the handbook section on
|Xv\3r ,c;#~y # Kernel Configuration Files:
*|0W3uy\Y &qa16bz #
ZC^?ng *S4&V<W> #
http://www.FreeBSD.org/doc/en_US.IS...fig-config.html _nw\ac#* +l7Bu} _? #
-ucR@P] m5KLi
&R # The handbook is also available locally in /usr/share/doc/handbook
QEx&AT =Q|s[F # if you've installed the doc distribution, otherwise always see the
6jl{^dI pMp@W`i^6 # FreeBSD World Wide Web server (
http://www.FreeBSD.org/) for the
Tm~jYgJ pBQ[lPCY/ # latest information.
F1`mq2^@ _F8-4 #
:b#5cMUe ~n/:a # An exhaustive list of options and more detailed explanations of the
~ r$I&8 _qQo}|/q # device lines is also present in the ./LINT configuration file. If you are
:n
x;~f u/\Ipk/ # in doubt as to the purpose or necessity of a line, check first in LINT.
otP2qAI )S_%Ip #
dQ<e}wtg x}reeqn # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246.2.48 2002/08/31 20:28:26 obrien Exp $
' 94HVag T16B2|C"Y `X`|]mWj ^1--7#H machine i386
2Paw*"U `WQpGBS_z_ cpu I586_CPU
lw4#C`bx 6b!1j,\Vx cpu I686_CPU
|txzIc.# '_g*I ident kernel_wwwx #内核文件名,这个要和你的内核文件名一致
uuCVI2| ,l\D@<F maxusers 0
M49Hm[0( /J,&G:
Er z]O>`50Q o`}8ZtD options INET #InterNETworking
2TaHWw<A hrOp9|!m options FFS #Berkeley Fast Filesystem
2L 1Azx %';DBozZ options FFS_ROOT #FFS usable as root device [keep this!]
hDEZq>& ZPY84)A_} options SOFTUPDATES #Enable FFS soft updates support
e9B$"_ &2 !|Y&h0e options UFS_DIRHASH #Improve performance on big directories
:/NP8$~@j bHHR^*B options PROCFS #Process filesystem
WS$~o*Z8 m(WVxVB options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]
=E8Kacu% \<y#$:4r<8 options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI
z&[[4[ .:, 9Tf options SYSVSHM #SYSV-style shared memory
I]ol[
X0S ;Y(~'KF options SYSVMSG #SYSV-style message queues
$I/RN )/tdiRpn options SYSVSEM #SYSV-style semaphores
061 f Ob-k`@_| options P1003_1B #Posix P1003_1B real-time extensions
)v.\4Q4 NW Pd~l+ options _KPOSIX_PRIORITY_SCHEDULING
.GPuKP| @(rLn options ICMP_BANDLIM #Rate limit bad replies
rX&?Xi1JeV KhbbGdmfS$ options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
c<qJs-C4; k${F7I(Tb # output. Adds ~128k to driver.
* km- pp jY\YSQ options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
vYG$>* Aj=c,]2 # output. Adds ~215k to driver.
R~BW=Dz,e W{;LI
WsZ !E\J`K0_e SCMZ-^b device tun 1
`3F/7$q_ 9M-/{D^+< options IPFIREWALL #防火墙
sk`RaDq@; ,u>K##X\ options IPFIREWALL_FORWARD #允许透明代理
-QP1Se*# u+e.{Z! options IPFIREWALL_VERBOSE #允许防火墙日志
oRCD8b? <4Cy U
j options IPFIREWALL_VERBOSE_LIMIT=100 #限制日志
{pB9T3ry] v#+tu,)V; options IPFIREWALL_DEFAULT_TO_ACCEPT #默认允许所有IP包
2VS#=i(B^ ia/_61% options IPDIVERT #启用由ipfw divert使用的转向IP套接字
{{_,YO^w 4:v{\R '
9 & |o V\L # To make an SMP kernel, the next two are needed
-3:x(^|:K w+tO@ #options SMP # Symmetric MultiProcessor Kernel
rx;zd ? k$} 6Qd #options APIC_IO # Symmetric (APIC) I/O
ZsYT&P2 x68s$H [p_C?hHO (*Y ENT} device isa
ZpY"P6 S>p>$m,
Q device eisa
DnPV
Tp(> cj/FqU" device pci
nyB~C7zR h9J S b3@7^ ktKT=(F& hC= ="4 - x;R9Gc[5 # ATA and ATAPI devices
GQ9g $&T ub]
w"N device ata
;q$O^r~ 3bPvL/\Lb device atadisk # ATA disk drives
'H,l\i@" K<+h/Ok nS1D&;#Y DavG=kvd th*E"@ JEes'H}Y # SCSI Controllers #没有SCSI设备不需要这段
x_5H_! \# ];go?.*C device ahb # EISA AHA1742 family
XX(;,[(_ ?wx|n_3<: device ahc # AHA2940 and onboard AIC7xxx devices
1cdM^k bdCpGG9 device ahd # AHA39320/29320 and onboard AIC79xx devices
etH%E aF[ dGzZ_Vf device amd # AMD 53C974 (Tekram DC-390(T))
*l^%7Wrk 4<&`\<jZ device isp # Qlogic family
qcfLA~y _#+~#U%5n device mpt # LSI-Logic MPT/Fusion
up7]Yy;o= L1k_AC1.M device ncr # NCR/Symbios Logic
<[7.+{qfW YvK8;<k@-? device sym # NCR/Symbios Logic (newer chipsets)
?79ABm
a Tce2]"^; options SYM_SETUP_LP_PROBE_MAP=0x40
`D%bZ%25c uIvE~< # Allow ncr to attach legacy NCR devices when
U{o0Posg cf0Dq~G # both sym and ncr are configured
HIi5kv]}| O=St}B\!m OPwj*b:-m ( Qw"^lE3 device adv0 at isa?
$9\!CPZ2 ;HJ|)PN5L device adw
S0Y$$r u#Qd`@p device bt0 at isa?
BS;_l"? b#^UP device aha0 at isa?
;,]T|>M .~6p/fHX device aic0 at isa?
DO$jX
4 Dw^d!%Ala ]|[oL6" ;Z"6ve4 device ncv # NCR 53C500
;p#)z/zZ MI@id device nsp # Workbit Ninja SCSI-3
T)]5k3{ Pz1pEyuL device stg # TMC 18C30/18C50
2, ` =i 0>m-J aQaO.K2 s7<x~v+^ # SCSI peripherals #没有SCSI设备不需要这段
_}7N,Cx =x~HcsJ8!R device scbus # SCSI bus (required)
+)FB[/pXk W9?Vh{w device da # Direct Access (disks)
nj~1y') C_Y^< device sa # Sequential Access (tape etc)
^~2GhveBV 8|w_PP1oE device cd # CD
iP;X8'< BC ucyz>TL0 device pass # Passthrough device (direct SCSI access)
FMuM:%&J] {|6(_SM| ZO+c-!%[( &gZ5dTj> tm(.a?p Os@ d&wm Bls\)$ ayuj)]b # atkbdc0 controls both the keyboard and the PS/2 mouse
A_}F s3W )hU) device atkbdc0 at isa? port IO_KBD
x(7K=K'] *.AokY)_a device atkbd0 at atkbdc? irq 1 flags 0x1
4QZ -7_ B8:_yAv o &'UYV> aO?(ZL device vga0 at isa?
|Gb"%5YD x5k6yHn %^g BDlR^ Ex~[Hk4ow u~6`9'Ms TDdFuO'} # syscons is the default console driver, resembling an SCO console
b}p 0&%I }\B`tAN device sc0 at isa? flags 0x100
$cFanra jAmAT/ 1 PWOV~`^; z1?7}9~`0c G@anY=D\EB )%U&z>^P # Floating point support - do not disable.
;Id%{1 6)kF!/J device npx0 at nexus? port IO_NPX irq 13
69 R8#M :Q=Jn?Gjb c.Pyt
Q d]5e 16[>af0<g 0 }k[s+^ # Serial (COM) ports
|<P]yn `AeId/A4n device sio0 at isa? port IO_COM1 flags 0x10 irq 4
`(<XdlOj ?ZDXT2b~~ pm,&