(一、系统安装)
Vhi4_~W3j] A$=h'!$ 3)6&)7`* G3wkqd 前言
"!F%X%/
'K7m!y 9z9\pXFQ ^S%xaA9 写本文的初衷主要是记录下我一段时间学习使用FreeBSD建设网站平台的一些经验和体会。因为本人是菜鸟,所以很多地方不够完善。本文权当给初学者提供一个具体可操作的实例。所有操作步骤都是我边做边写。避免出现遗漏或一些不必要的小错误,给初学者带来麻烦。
j2GTo~muq rQb=/@- 本网站平台建设全过程包括FreeBSD系统的安装,web、ftp、mail、proxy服务器、视频点播服务器等。所有过程都在FreeBSD4.7环境下测试通过。
XTro;R=# _yN&+]c 由于写本文时参考了网上太多前辈和大侠的资料,无法一一列举。还请作者原谅。
49?wEm# H,q-*Kk 本连载文章前后关联很紧密,建议初学者一步一步来做。
;rqW?':(i !+(c/ gwBh 试验环境如下:
Krw'|< <<M1:1 硬件环境:普通pc机,双网卡。配制不需要高,主要是稳定,并能适应长时间开机。听前辈介绍AMD k6的cpu运行FreeBSD好像有点问题。不过我没有试验。建议用intel的。
LyuA("xB# &`^PO$ 软件环境:操作系统:FreeBSD4.7(4.8)
]H$Trf:L Svl;Ul web服务器:Apache 1.3.27+modssl +mod_php4+mod_gzip+mod_fastcgi +mod_perl +mysql3.23
$2J[lt?% h; "pAE ftp服务器:Proftpd1.2.7+proftpd-mod-quotatab-1.2.4+mysql
F+ Dke>j "PePiW(i+ mail服务器: iceblood前辈制作的qmail安装包(经过修改)+vqregister-2.5
&rbkw<=j %5yP^BL0 proxy服务器:使用FreeBSD内置的NAT和PPP拨号+squid
;ZtN9l fG_<HJS(~ 视频点播服务器:Helix Universal Servevr (realserver9.01)
? l>Ra0 D_)N!,i 网络环境:我用的是adsl动态拨号方式,因为动态ip所存在的一些问题,我把所有的服务都装在一台机器上,且这台机器要直接与外网相连。静态ip更方便一些。(本文两种方式都会讨论)
!(8)'<t9 IDK~
(t
#Y%(CI ?[!_f$50]P 第一步:安装系统
_fM=J+ f>zd,|)At 关于安装过程网上有很多文章,这里不作详述。仅提出几点建议供大家参考:
P|tNmv[; 3'zL,W W 1、 采用最小化安装。
nIEIb.- !~_6S*~ 2、 安装时启用inetd,并在编辑inetd.conf文件时,把带有“ftp”的行前面的“#”号去掉。这样作是为了以后安装软件时可以用ftp上传文件。
HrS-o= ym;I(TC+ 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地址)。以下除系统安装部分,我都是采用终端方式操作。
j^)=<+Q;= C1w6[f1+ 4、 分区时将/home、/usr和/var划的大一些,因为/usr为程序目录,/var要存放日志,/home是用户主目录,我的用户文件如网页、ftp上传文件等都放在这里。还有最好保留一部分空间留作以后需要的时候用。我的机器上有2块硬盘,一快18.2G SCSI硬盘,一块40G IDE硬盘。我是这样划分的。
,~G:>q$ad Q>g-xe 1 128M /
<0btwsv} dthtWnB@ 20G /home
's\rQ-TV %%+@s 2G /ftp
h )% e P/,ezVb= 256M /tmp
FG5YZrONx u-u:7VtH0= 6G /usr
U7xKu75G1 |<2<`3 5G /var
J;S Z"I' t3<HE_B| 其中/ftp是为匿名ftp用户访问专用。剩余空间留作备用。当然如果硬盘空间少的话,做我们的试验也是够用的。
kk$D:UQX )u=46EU_ 关于安装方面的文章,大家也可以参考delphij写的《FreeBSD服务器的安装与优化》。
http://community.freebsdchina.org/catalog.php?forum=34 一文。
U&o~U] rm hH]oJ}H \ 安装完系统后,要重新编译内核。目的是要系统支持Firrwall和提高运行效率。
t; b1<TLn0 5;CqGzgoP 首先确认系统是否安装了FreeBSD的内核支持。如果是最小安装,则需要运行/stand/sysinstall命令安装内核支持。方法如下:
5 D[`nU} q-r5z GI # /stand/sysinstall
=6d'/D#J Zfc{}ius 选Configure—Distributions—src—sys,内核文件将被安装在/usr/src/sys目录中。
T?KM}<$(O @g]>D 注意:这之后的过程在终端上操作要方便许多。SecureCRT支持在终端界面上直接拷贝和粘贴文本内容。
S76xEL $VJE&b 转到内核文件目录
"\O{!Hj8 J?/NJ-F # cd /usr/src/sys/i386/conf
nkkUby9 j)mi~i*U 编辑内核文件
?OBB)hj 0~Iq9}{*P # vi kernel_wwwx # kernel_wwwx为我的内核文件名
G7k.YtW bW2Msv/H 我的内核文件如下:
:a*F>S! LM*m>n* #
:Tdl84 +a|u,'u # GENERIC -- Generic kernel configuration file for FreeBSD/i386
asL!@YE >a)6GZ@ #
F>U*Wy %:.IG.`d # For more information on this file, please read the handbook section on
l'RuzBQr g>n1mK| # Kernel Configuration Files:
:1gcLsF >K
7]G?+7E #
b4CXif (Eo#oX #
http://www.FreeBSD.org/doc/en_US.IS...fig-config.html D6:"k
2 ]ZS/9 $ #
uWkuw5; "9OOyeKu% # The handbook is also available locally in /usr/share/doc/handbook
v03^ ;5:3 =F>ao # if you've installed the doc distribution, otherwise always see the
ksV^Y=] \ocC'FmE # FreeBSD World Wide Web server (
http://www.FreeBSD.org/) for the
l TJM}K U(\ ^!S1 # latest information.
l-q.VY2 /jN&VpDG #
zJTSg Dw&_6\F@ # An exhaustive list of options and more detailed explanations of the
t Z]b0T(e ,%]xT>kH # device lines is also present in the ./LINT configuration file. If you are
fH 0&Wc3yC WZf}1.Mh* # in doubt as to the purpose or necessity of a line, check first in LINT.
|$`I1
| (: PX #
,S7M4ajVZB aq$adPtu # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246.2.48 2002/08/31 20:28:26 obrien Exp $
(@cZmU, .]BJM?9 LLJsBHi- cxxrvP- machine i386
=~ ="# aZL
FsSY cpu I586_CPU
.!Os'Y9[, G;;iGN cpu I686_CPU
w6.J&O |r/4
({n ident kernel_wwwx #内核文件名,这个要和你的内核文件名一致
\q:PU6q }tPI#[cfK maxusers 0
F}4jm,w Y-G;;~ htHnQ4Q Hv .C5mo options INET #InterNETworking
z/t+t_y _.BX#BIF options FFS #Berkeley Fast Filesystem
QE~#eo wIK&EGQ options FFS_ROOT #FFS usable as root device [keep this!]
[ FNA: [(/IV+ options SOFTUPDATES #Enable FFS soft updates support
A!p70km2 Y?V>%eBu options UFS_DIRHASH #Improve performance on big directories
]F1ZeAh5 >@StKj options PROCFS #Process filesystem
>TwL&la P*6&0\af| options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]
MUqV$#4@I (C!33s1 options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI
/@f3|L<1@V ]z5gC`E0 options SYSVSHM #SYSV-style shared memory
Hv<jf38 5Y(f7,JX options SYSVMSG #SYSV-style message queues
^r0mx{i& 9 e0Oj3!B options SYSVSEM #SYSV-style semaphores
ompkDl\E 2B&|0&WI options P1003_1B #Posix P1003_1B real-time extensions
s(M8 Y x)!NB99(tC options _KPOSIX_PRIORITY_SCHEDULING
I:,D:00+ Wo~#R options ICMP_BANDLIM #Rate limit bad replies
y1+~IjY ee{8C~ options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
O;~dao nh+f,HtSt # output. Adds ~128k to driver.
. [5{ "jEf$] options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
'U3+'du^8 pTk1iGfB # output. Adds ~215k to driver.
:{KoZd
i;8tA! )gP0+W!u ^PI8Bvs>j device tun 1
Hm55R [G[|auKF options IPFIREWALL #防火墙
XhxCOpO ay,E!G&H options IPFIREWALL_FORWARD #允许透明代理
s7}46\/U RNn5,W options IPFIREWALL_VERBOSE #允许防火墙日志
6zJfsKf$ -VlXZj@u+ options IPFIREWALL_VERBOSE_LIMIT=100 #限制日志
isR|K9qf^ '{xPdN options IPFIREWALL_DEFAULT_TO_ACCEPT #默认允许所有IP包
$E]WU?U Wf>scl`s options IPDIVERT #启用由ipfw divert使用的转向IP套接字
h$~\to$C ?\NWKp #Jqa_$\. Q`7.-di # To make an SMP kernel, the next two are needed
?O<D&CvB cN\Fgbt #options SMP # Symmetric MultiProcessor Kernel
{expx<+4F QSq0{ #options APIC_IO # Symmetric (APIC) I/O
v\:P_J m'P,:S)= { |[n>k aZ{]t:] device isa
(5(TbyWwD jjrhl device eisa
NLA/XZ W6 U**ir. device pci
[:(^n0% _M;M-hk/ o 0'!u Au-h#YV WVfwt.Y H~Fb=.h]U # ATA and ATAPI devices
kKP<