FreeBSD网站平台建设全过程之前言及安装系统

http://freeunix.3322.org 2004年08月01日 18:05 查看20337次 作者: ylf  【
文章分类:unix系统

前 言

  写本文的初衷主要是记录下我一段时间学习使用FreeBSD建设网站平台的一些经验和体会。因为本人是菜鸟,所以很多地方不够完善。本文权当给初学者提供一个具体可操作的实例。所有操作步骤都是我边做边写,避免出现遗漏或一些不必要的小错误,给初学者带来麻烦。

  本网站平台建设全过程包括FreeBSD系统的安装,web、ftp、mail、proxy服务器、视频点播服务器等。所有过程都在FreeBSD4.7环境下测试通过。

  由于写本文时参考了网上太多前辈和大侠的资料,无法一一列举。还请作者原谅。

  本连载文章前后关联很紧密,建议初学者一步一步来做。

  试验环境如下:

  硬件环境:普通PC机,双网卡。配制不需要高,主要是稳定,并能适应长时间开机。听前辈介绍AMD k6的cpu运行FreeBSD好像有点问题。不过我没有试验。建议用intel的。

  软件环境:

操作系统: FreeBSD4.7(4.8)
Web服务器:

Apache 1.3.27;
mod_ssl;
mod_php4;
mod_gzip;
mod_fastcgi;
mod_perl;
mysql 3.23;

FTP服务器: Proftpd 1.2.7;
proftpd-mod-quotatab-1.2.4
mysql
Mail服务器: 修改过的qmail安装包(iceblood前辈制作);
vqregister-2.5
Proxy服务器: 使用FreeBSD内置的NAT和PPP拨号;
squid
视频点播服务器: Helix Universal Servevr(realserver 9.01)

  网络环境:我用的是ADSL动态拨号方式,因为动态IP所存在的一些问题,我把所有的服务都装在一台机器上,且这台机器要直接与外网相连。静态IP更方便一些。(本文两种方式都会讨论)

 

第一步:安装系统

  本文将对FreeBSD安装过程提供详细的图解,在安装之前,先提出几点建议供大家参考:

  1、采用最小化安装。

  2、安装时启用inetd,并在编辑inetd.conf文件时,把带有“ftp”的行前面的“#”号去掉。这样作是为了以后安装软件时可以用ftp上传文件。

  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地址)。

   以下除系统安装部分,我都是采用终端方式操作。

  4、分区时将/home、/usr和/var划的大一些,因为/usr为程序目录,/var要存放日志,/home是用户主目录,我的用户文件如网页、ftp上传文件等都放在这里。还有最好保留一部分空间留作以后需要的时候用。我的机器上有2块硬盘,一快18.2G SCSI硬盘,一块40G IDE硬盘。我是这样划分的。

128M /
20G /home
2G /ftp
256M /tmp
6G /usr
5G /var

  其中/ftp是为匿名ftp用户访问专用。剩余空间留作备用。当然如果硬盘空间少的话,做我们的试验也是够用的。

  关于安装方面的文章,大家也可以参考delphij写的《FreeBSD服务器的安装与优化》一文。

  本系统安装过程图解是专为初学者提供的。整个系统的定制过程都是针对连载文章的系统要求作的。

  我们采用光盘启动安装FreeBSD的方式,并且硬盘上只有FreeBSD一个系统。

  首先修改CMOS使系统能够通过光盘引导。

  插入FreeBSD的第一张盘。正常引导后进入定制内核界面,如图一:


图一

  选Skip kernel configuration and continue with installation跳过内核定制,我们在整个系统安装结束后会重新定制内核。

  接着进入系统安装主界面,图二:


图二

  选择Standard开始标准安装。

  接着出现提示告诉你下一步将要进行Fdisk操作,按回车继续(图略)。

  进入Fdisk Partition Editor界面,图三:


图三

  为了保证与FreeBSD共存的系统能够启动,默认情况下FreeBSD会保留一部分磁盘空间(64 cyl)。我们装的是单系统,这部分空间没有用,按“Shift+F”将所有空间都给FreeBSD,图四:


图四

  这里选择No。

  接着按“Q”完成。然后提示需要划分FreeBSD文件系统。回车继续。

  进入Disklable Editor界面,按A先让系统自动划分,图五:


图五

  然后移动光标到/var和/usr,按D将这两个分区先删除。把光标移到最上面,按C分别创建/var,/usr,/home,/ftp分区。如图六:


图六

  其中/ftp分区专为匿名Ftp使用。/var用于存放日志,/usr存放程序,/home存放用户数据。

  我这里是4G的硬盘,如果硬盘空间大,应该适当加大这4个分区的容量。

  按“Q”继续。

  出现Choose distributions(选择安装组件)界面,如图七:


图七

  这里选Minimal最小化安装。选择OK继续。

  出现Choose Installation Media选择安装媒体界面,图八:


图八

  这里选择 1 CD/DVD,通过光盘安装。OK继续。

  出现确认界面,这是最后一次后悔的机会!选YES开始安装,图略。

  经过一段时间后,出现安装成功提示。OK继续,图略。

  出现是否配置网络设备提示。选YES,图九:


图九

  接下来会列出你的网络设备,选择第一块网卡,回车,会问你是否启用IPv6协议,选NO继续。问你是否使用DHCP,选NO继续。

  出现网卡配置界面,图十:


图十

  这里只要添入主机名和IP地址就可以,其他的在后续安装中会配置。

  接着问你是否现在启用这块网卡接口,选YES。然后问你是否使用本系统作为网关,选YES。

  出现是否配制inetd(Internet超级服务器)界面。选YES,图十一:


图十一

  提示是否启用inetd,选YES。图略

  提示是否编辑inetd的配置文件,inetd.conf,选YES。图略

  接着出现文件编辑界面,图十二:


图十二

  移动光标到带有ftp的行,将前面的#删掉,只删除头两行的即可。按ESC退出并保存。

  接着问你是否启用匿名ftp访问,选YES,后面的提示也选YES继续,图略。


图十三

  图十三对匿名用户的组和用户目录进行了设置,不用改动,直接选OK继续。

  接着问你是否建立一个ftp登陆时的欢迎信息。选NO不建立继续。

  接下来的几个提示:

  是否使本机运行NFS服务器,选NO。图略

  是否使本机运行NFS客户,选NO。图略

  是否配制默认安全策略,选NO。图略

  列出当前对inetd做过的设置,OK继续。图略

  是否定制系统控制台,选NO。图略

  设置系统时区,依次选NO――Asia――China――East China――YES


图十四

  图十四询问是否启用Linux二进制兼容支持,这将使FreeBSD可以运行所有Linux程序。选YES。

  接着提示是否配制非USB鼠标,选NO继续。图略

  接着问是否浏览Package collection,选NO继续,图略

  问是否添加系统用户和组,选YES,图略


图十五

  图十五选择USER Add a new user to the system,添加一个新用户。OK 继续。


图十六

  这里添加一个wheel组的用户ylf,用于终端登录时可以用这个用户切换到root。

  OK后回到前一个界面,选EXIT退出。图略

  这时提示要求输入root用户密码。需要输入2次。图略

  然后问你是否想回到主界面对配置做改动,选NO――Exit Install退出安装,图略。

  最后提示是否退出重新启动,选YES,记得要拿出光盘。图十七。


图十七

  为了让系统可以重新编译内核和使用ports安装应用程序。我们重新运行系统配置程序安装内核编译支持和ports。

  以root用户登录后,运行:

# /stand/sysinstall

  出现系统配置主界面,图十八:


图十八

  选择Configure后回车继续。出现FreeBSD Configuration菜单,图十九:


图十九

  选择Distributions后 OK继续。出现组件安装选择界面,图二十:


图二十

  选择src――sys和ports,OK后出现选择安装媒体界面,选通过光盘安装,图略

  这样就把内核编译支持和ports安装到系统。

  安装完成后,选Exit――Exit Install退出。


  安装完系统后,要重新编译内核。目的是要系统支持Firrwall和提高运行效率。

  注意:这之后的过程在终端上操作要方便许多。SecureCRT支持在终端界面上直接拷贝和粘贴文本内容。

  转到内核文件目录:

# cd /usr/src/sys/i386/conf

  编辑内核文件:

# vi kernel_wwwx        # kernel_wwwx为我的内核文件名

  我的内核文件如下:

#
# GENERIC -- Generic kernel configuration file for FreeBSD/i386
#
# For more information on this file, please read the handbook section on
# Kernel Configuration Files:
#
# http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html
#
# The handbook is also available locally in /usr/share/doc/handbook
# if you've installed the doc distribution, otherwise always see the
# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
# latest information.
#
# An exhaustive list of options and more detailed explanations of the
# device lines is also present in the ./LINT configuration file. If you are
# in doubt as to the purpose or necessity of a line, check first in LINT.
#
# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246.2.48 2002/08/31 20:28:26 obrien Exp $

machine i386
cpu I586_CPU
cpu I686_CPU
ident kernel_wwwx             #内核文件名,这个要和你的内核文件名一致
maxusers 0

options INET #InterNETworking
options FFS #Berkeley Fast Filesystem
options FFS_ROOT #FFS usable as root device [keep this!]
options SOFTUPDATES #Enable FFS soft updates support
options UFS_DIRHASH #Improve performance on big directories
options PROCFS #Process filesystem
options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]
options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI
options SYSVSHM #SYSV-style shared memory
options SYSVMSG #SYSV-style message queues
options SYSVSEM #SYSV-style semaphores
options P1003_1B #Posix P1003_1B real-time extensions
options _KPOSIX_PRIORITY_SCHEDULING
options ICMP_BANDLIM #Rate limit bad replies
options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
                # output. Adds ~128k to driver.
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
                # output. Adds ~215k to driver.

device tun 1

options IPFIREWALL                #防火墙
options IPFIREWALL_FORWARD            #允许透明代理
options IPFIREWALL_VERBOSE            #允许防火墙日志
options IPFIREWALL_VERBOSE_LIMIT=100       #限制日志
options IPFIREWALL_DEFAULT_TO_ACCEPT      #默认允许所有IP包
options IPDIVERT                 #启用由ipfw divert使用的转向IP套接字

# To make an SMP kernel, the next two are needed
# options SMP # Symmetric MultiProcessor Kernel
# options APIC_IO # Symmetric (APIC) I/O

device isa
device eisa
device pci

 

# ATA and ATAPI devices
device ata
device atadisk # ATA disk drives

# SCSI Controllers      #没有SCSI设备不需要这段
device ahb # EISA AHA1742 family
device ahc # AHA2940 and onboard AIC7xxx devices
device ahd # AHA39320/29320 and onboard AIC79xx devices
device amd # AMD 53C974 (Tekram DC-390(T))
device isp # Qlogic family
device mpt # LSI-Logic MPT/Fusion
device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (newer chipsets)
options SYM_SETUP_LP_PROBE_MAP=0x40
       # Allow ncr to attach legacy NCR devices when
       # both sym and ncr are configured

device adv0 at isa?
device adw
device bt0 at isa?
device aha0 at isa?
device aic0 at isa?

device ncv # NCR 53C500
device nsp # Workbit Ninja SCSI-3
device stg # TMC 18C30/18C50

# SCSI peripherals      #没有SCSI设备不需要这段
device scbus # SCSI bus (required)
device da # Direct Access (disks)
device sa # Sequential Access (tape etc)
device cd # CD
device pass # Passthrough device (direct SCSI access)

# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc0 at isa? port IO_KBD
device atkbd0 at atkbdc? irq 1 flags 0x1

device vga0 at isa?

# syscons is the default console driver, resembling an SCO console
device sc0 at isa? flags 0x100

# Floating point support - do not disable.
device npx0 at nexus? port IO_NPX irq 13

# Serial (COM) ports
device sio0 at isa? port IO_COM1 flags 0x10 irq 4

# 我用的是8139和Dlink DFE-530TX网卡,大家可根据自己的网卡型号保留或删除
# 使用公共的MII总线控制器代码的PCI以太网适配器
# 注意:一定要保留'device miibus'以确保可用

# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device miibus # MII bus support
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device rl # RealTek 8129/8139
device vr # VIA Rhine, Rhine II
device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'')

# Pseudo devices - the number indicates how many units to allocate.
pseudo-device loop # Network loopback
pseudo-device ether # Ethernet support
pseudo-device sl 1 # Kernel SLIP
pseudo-device ppp 1 # Kernel PPP
pseudo-device tun # Packet tunnel.
pseudo-device pty # Pseudo-ttys (telnet etc)
pseudo-device md # Memory "disks"
pseudo-device gif # IPv6 and IPv4 tunneling
pseudo-device faith 1 # IPv6-to-IPv4 relaying (translation)

# The `bpf' pseudo-device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!

pseudo-device bpf #Berkeley packet filter

  我用的是8139网卡和Dlink DFE-530TX网卡,如果你用其他型号的网卡,需要察看当前目录的GENERIC 内核文件,找到描述自己的网卡型号的段并将其添加到新的内核文件里。其他的不改直接拷贝过来就可以用了。

  接下来编译安装新内核:

# /usr/sbin/config kernel_wwwx          #kernel_wwwx为你的内核文件名

# cd ../../compile/kernel_wwwx

# make depend

# make

# make install

  重新启动(reboot)

  如果系统升级过源代码树,按下面方法编译内核:

# cd /usr/src

# make kernel KERNCONF=kernel_wwwx        #kernel_wwwx为你的内核文件名

  重新启动。

责任编辑:admin

给文章打分...

平均分:0.7(29 次)

-5 -4 -3 -2 -1 0 1 2 3 4 5
0

顶一下

发表我的见解...

  • 您的大名: 留空为匿名
  • 您的主页:
  • 您的邮箱: