1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

[原创]FreeBSD6.1入门级Web服务器配置手记

本帖由 harbinbeer2006-08-02 发布。版面名称:主机讨论

  1. harbinbeer

    harbinbeer New Member

    注册:
    2006-06-10
    帖子:
    88
    赞:
    0
    关于FreeBSD的介绍,我这里就不写了,大家可以自己找找,有很多

    如果你是高手的话,请多多批评指正,因为本人毕竟只研究了3个星期左右,难免出现纰漏

    本文的目的,是记录我自己的研究过程,仅作参考,千万不要完全照搬

    最好的教程是http://www.freebsd.org/doc/zh_CN.GB2312/books/handbook/index.html,如果大家真心要驾驭FreeBSD,一定要看

    最后,致那些像我一样如果对FreeBSD感兴趣的新手:一定要有耐心!坚持不下去的时候多想想当年学习Windows的情况^_^说实话,FreeBSD的界面不友好,别说Windwos跟Mac,可能连Linux都不如-_-!不过,在它桀骜不驯的外表下,是一颗强健稳定的心,需要用耐心去征服——并且这也是值得的

    本文阅读说明

    这样表示的是选项

    代码:
    这样表示的是文件内容(如果原文件没有,本文有——请新增;如果原文件有,本文没有——保持不变;如果原文件有,本文也有——请按照范例修改;如果原文件跟本文都没有——自己看着办吧^_^)
    好了,按步骤开始!
     
  2. harbinbeer

    harbinbeer New Member

    注册:
    2006-06-10
    帖子:
    88
    赞:
    0
    安装系统

    这部分比较简单

    出现启动菜单时,按2(禁用acpi启动,服务器不用电源管理)

    选择国家->China

    选择键盘布局->USA ISO

    出现安装菜单,选择Standard

    提示需要对硬盘分区,回车,出现分区表,比较简便的方法是按a(使用整个硬盘),分区完成后,按q退出(磁盘分区请参考:http://www.freebsd.org/doc/zh_CN.GB2312/books/handbook/install-steps.htmlhttp://www.freebsd.org/doc/zh_CN.GB2312/books/handbook/configtuning-initial.html

    提示选择启动方式->Standard(服务器用的是单系统,所以不需要启动管理器Bootmgr)

    提示需要划分lable,回车,出现磁盘编辑画面,比较简便的是按a(自动划分),完成后,按q退出出现安装选项,选择Minimal(最小化安装)

    选择安装媒体,当然是CD/DVD,出现提示,再次确认。2-3分钟后安装完成,出现提示,回车确认

    提示是否配置网络->Yes

    出现菜单,选择接入公网的网卡/接口

    提示是否配置ipv6->No

    提示是否通过DHCP配置(根据自己情况选择)

    出现网络配置界面,依次检查/填好各选项,确认(如果自定义的网络设置,会提示是否立即应用,确认即可)

    提示是否将本机作为网关->No

    提示是否配置inetd->No

    提示是否启用SSH连接(远程控制)->Yes

    提示是否应用匿名的FTP->No

    提示是否将本机作为NFS服务器->No

    提示是否将本机作为NFS客户端->No

    提示是否配置系统控制台->No

    提示是否设定时区/时间->Yes

    提示是否与UTC同步->No

    选择区域->Asia

    选择国家->China

    选择时区->1

    出现提示,回车确认

    提示是否启用Linux二进制兼容->No(可以兼容90%以上的Linux程序,不过服务器用不上)

    提示配置鼠标->No

    提示是否永远禁用ACPI->Yes(服务器无需电源管理)

    提示是否浏览软件包->No

    提示是否增加用户->Yes(在这里配置将来的远程访问用户)

    出现菜单,选择User

    填好Login ID ,Member groups = wheel , Password后确认(提示:FreeBSD默认情况下只允许wheel用户组成员远程登录,需要修改关键配置时可以su到root,这是“”洋葱式“安全机制的体现)

    退出编辑用户菜单

    提示配置root密码,回车确认

    输入2次密码

    提示是否编辑其它选项->No

    退出安装菜单

    出现提示->Yes

    第一次启动时,会提示生成远程访问密钥,回车确认
     
  3. harbinbeer

    harbinbeer New Member

    注册:
    2006-06-10
    帖子:
    88
    赞:
    0
    系统更新和优化

    同步系统时间

    安装cvsup

    选择需要更新的内容(如果不在乎更新时间的话可以跳过)
    可以有选择地更新系统源码和ports树,参考http://www.freebsd.org/doc/zh_CN.GB2312/books/handbook/cvsup.html
    关于release跟stable的选择:从字面上理解,stable是稳定版之意,并且好多人认为stable是做服务器的最佳选择。不过官方称stabel只不过是current的一个分支,并不推荐用于生产服务器,生产级服务器应选择release(正式发行)版本http://www.freebsd.org/doc/zh_CN.GB2312/books/handbook/current-stable.html

    更新系统源码跟ports树

    根据自己网络情况选择速度最快的cvsup镜像站点,官方列表http://www.freebsd.org/doc/zh_CN.GB2312/books/handbook/cvsup.html

    编译内核

    其中需要注意的是

    代码:
    ident		MYKERNEL	#内核标记名称
    options	QUOTA		#启用磁盘配额
    (出现提示,回车继续,或输入i安装)

    网络优化

    代码:
    net.inet.ip.check_interface=1
    net.inet.tcp.blackhole=2
    net.inet.udp.blackhole=1
    net.inet.tcp.recvspace=65535
    net.inet.tcp.sendspace=65535
    kern.ipc.somaxconn=32768
    kern.ipc.maxsockbuf=2097152
    net.inet.ip.redirect=0
    net.inet.icmp.icmplim=100
    net.inet.tcp.always_keepalive=1
    net.inet.tcp.delayed_ack=1
    net.inet.udp.maxdgram=65535
    net.local.stream.sendspace=65535
    net.local.stream.recvspace=65535
    kern.maxfiles=65536
    kern.maxfilesperproc=65536
    net.inet.udp.checksum=1
    net.inet.tcp.msl=7500
    net.inet.tcp.syncookies=1
    net.inet.icmp.bmcastecho=0
    net.inet.icmp.maskrepl=0
    kern.securelevel=0
    代码:
    kern.maxdsiz="536870912"
    kern.ipc.maxsockets="4008"
    kern.ipc.nmbclusters="32768"
    kern.ipc.nmbufs="65535"
    kern.ipc.nsfbufs="2496"
    net.inet.tcp.tcbhashsize="2048"
    安装多线程下载工具axel

    默认选项

    代码:
    FETCH_CMD=axel
    FETCH_BEFORE_ARGS= -n 10 -a
    FETCH_AFTER_ARGS=
    DISABLE_SIZE=yes
    MASTER_SITE_OVERRIDE?=\
    http://ports.hshh.org/${DIST_SUBDIR}/\
    ftp://ftp.tw.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/\
    ftp://ftp.jp.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/\
    ftp://ftp.freeBSDchina.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/
    MASTER_SITE_OVERRIDE?=${MASTER_SITE_BACKUP}
     
  4. harbinbeer

    harbinbeer New Member

    注册:
    2006-06-10
    帖子:
    88
    赞:
    0
    应用程序及服务

    基础环境

    配置中文环境

    代码:
    setenv	EDITOR		ee
    setenv	LC_ALL		zh_CN.GBK
    setenv	LANG		zh_CN.GBK
    setenv	LC_CTYPE	zh_CN.GBK
    以后就可以通过cce命令来启动中文环境了

    安装perl

    安装openssl(可选)

    安装Ports检查更新工具

    默认选项
     
  5. harbinbeer

    harbinbeer New Member

    注册:
    2006-06-10
    帖子:
    88
    赞:
    0
    AMP环境配置

    安装mysql

    优化mysql

    代码:
    [mysqld]
    skip-networking
    skip-innodb
    skip-bdb
    skip-name-resolve
    skip-locking
    #log-bin
    # 以下选项基于2G内存
    key_buffer=512M
    max_allowed_packet=4M
    table_cache=1024
    thread_cache=64
    join_buffer_size=32M
    sort_buffer=32M
    record_buffer=32M
    max_connections=512
    wait_timeout=120
    interactive_timeout=120
    max_connect_errors=30000
    long_query_time=1
    max_heap_table_size=256M
    tmp_table_size=128M
    thread_concurrency=8
    myisam_sort_buffer_size=128M
    mysql随系统启动

    代码:
    mysql_enable="YES"
    启动mysql

    代码:
    # /usr/local/etc/rc.d/mysql-server.sh start
    安装apache22

    安装过程中,取消ipv6

    apache随系统启动

    代码:
    apache22_enable="YES"
    启动apache

    安装php

    安装过程中,选择apache,取消ipv6

    安装php扩展

    代码:
    # cd /usr/ports/lang/php5-extensions
    # make install clean ; rehash
    选择
    CALENDAR
    CTYPE
    GD
    ICONV
    MBSTRING
    MYSQL
    PCRE
    SESSION
    SOCKETS
    ZIP
    ZLIB


    配置php

    代码:
    ; 基于安全考虑,禁用某些功能,根据自己情况修改
    disable_functions = passthru, exec, phpinfo, system, ini_alter, readlink, symlink, leak, proc_open, popepassthru, chroot, scandir, chgrp, chown, escapeshellcmd, escapeshellarg, shell_exec, proc_get_status
    配置apache

    具体选项参考http://lamp.linux.gov.cn/Apache/ApacheMenu/index.html

    代码:
    DocumentRoot "/usr/www"	# 网站主目录
    <Directory "/usr/www">	# 网站主目录
    Options FollowSymLinks
    <IfModule dir_module>
    DirectoryIndex index.html index.php index.htm
    </IfModule>
    <IfModule mime_module>
    AddType application/x-gzip .gz .tgz
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    </IfModule>
    AddDefaultCharset GB2312
    ServerTokens Prod
    ServerSignature Email
    <IfModule prefork.c>	# 优化针对BSD的网络支持
    StartServers 10
    MinSpareServers 10
    MaxSpareServers 15
    ServerLimit 2000
    MaxClients 1500
    MaxRequestsPerChild 10000
    </IfModule>
    安装ZendOptimizer

    ZendOptimizer属于商业软件,所以不能通过ports编译安装,只能下载安装

    一路默认

    安装phpmyadmin

    也可以通过传统方式,通过ftp下载/上传到机器上,配置好参数即可运行。

    默认选项[/size]

    代码:
    $cfg['PmaAbsoluteUri'] = 'http://192.168.163.130/phpMyAdmin/'	# 设置phpMyAdmin的绝对地址
    $cfg['blowfish_secret'] = 'host';									# 设置cookie加密
    $cfg['Servers'][$i]['auth_type'] = 'cookie'						# 设置认证方式
     
  6. harbinbeer

    harbinbeer New Member

    注册:
    2006-06-10
    帖子:
    88
    赞:
    0
    FTP设置

    配置ftp(系统自带)

    代码:
    ftp	stream	tcp	nowait	root	/usr/libexec/ftpd	ftpd	-l -h
    代码:
    inetd_enable="YES"
    启动ftp

    添加ftp用户组

    添加ftp用户

    禁止匿名用户登录

    代码:
    anonymous
    @guest
    设定用户使用目录

    代码:
    ftpusr /usr/www
    设置用户磁盘限额

    代码:
    enable_quotas="YES"
    check_quotas="YES"
    代码:
    /dev/ad0s1f	/usr	ufs		rw,userquota,groupquota		2	2
    代码:
    /usr: kbytes in use: 0, limits (soft = 100000, hard = 100020)	# soft是警告容量,hard是强制容量
    代码:
    /usr: block grace period: 1 minutes, file grace period: 1 minutes
    安装pure-ftpd(推荐)

    代码:
    CONFIGURE_ARGS	=	--without-standalone		# 为将来以守护进程模式运行准备(可选)
    选择MYSQL,PAM,PRIVSEP,PERUSERLIMITS,THROTTLING,BANNER,UPLOADSCRIPT,SENDFILE

    建立pure-ftpd数据库
    通过phpmyadmin执行

    代码:
    CREATE DATABASE pureftpd;
    USE pureftpd;
    CREATE TABLE `users` (
    `User` varchar(16) NOT NULL default '',
    `Password` varchar(32) binary NOT NULL default '',
    `Uid` int(11) NOT NULL default '14',
    `Gid` int(11) NOT NULL default '5',
    `Dir` varchar(128) NOT NULL default '',
    `QuotaFiles` int(10) NOT NULL default '500',
    `QuotaSize` int(10) NOT NULL default '30',
    `ULBandwidth` int(10) NOT NULL default '80',
    `DLBandwidth` int(10) NOT NULL default '80',
    `ipaccess` varchar(15) NOT NULL default '*',
    `Comment` tinytext,
    `Status` enum('0','1') NOT NULL default '1',
    `ULRatio` smallint(5) NOT NULL default '1',
    `DLRatio` smallint(5) NOT NULL default '1',
    PRIMARY KEY  (`User`),
    UNIQUE KEY `User` (`User`)
    ) TYPE=MyISAM;
    通过phpmyadmin新建一用户名为ftpadmin,密码adminpassword,并赋予其pureftpd数据库的Select,Insert,Update,Delete权限。

    配置pure-ftp

    代码:
    # 具体选项请参考http://download.pureftpd.org/pub/pure-ftpd/doc/README
    MYSQLServer     localhost
    MYSQLUser      ftpadmin
    MYSQLPassword   adminpassword
    MYSQLDatabase  pureftpd
    MYSQLCrypt      crypt
    MYSQLGetPW      SELECT Password FROM users WHERE User="\L" AND Status="1" AND (Ipaccess = "*" OR Ipaccess LIKE "\R")
    MYSQLGetUID     SELECT Uid FROM users WHERE User="\L" AND Status="1" AND (Ipaccess = "*" OR Ipaccess LIKE "\R")
    MYSQLGetGID     SELECT Gid FROM users WHERE User="\L" AND Status="1" AND (Ipaccess = "*" OR Ipaccess LIKE "\R")
    MYSQLGetDir     SELECT Dir FROM users WHERE User="\L" AND Status="1" AND (Ipaccess = "*" OR Ipaccess LIKE "\R")
    MySQLGetQTAFS  SELECT QuotaFiles FROM users WHERE User="\L" AND Status="1" AND (Ipaccess = "*" OR Ipaccess LIKE "\R")
    MySQLGetQTASZ  SELECT QuotaSize FROM users WHERE User="\L" AND Status="1" AND (Ipaccess = "*" OR Ipaccess LIKE "\R")
    # MySQLGetRatioUL SELECT ULRatio FROM users WHERE User="\L" AND Status="1" AND (Ipaccess = "*" OR Ipaccess LIKE "\R")
    # MySQLGetRatioDL SELECT DLRatio FROM users WHERE User="\L" AND Status="1" AND (Ipaccess = "*" OR Ipaccess LIKE "\R")
    MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User="\L" AND Status="1" AND (Ipaccess = "*" OR Ipaccess LIKE "\R")
    MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User="\L" AND Status="1" AND (Ipaccess = "*" OR Ipaccess LIKE "\R")
    如果以standalone(独立进程)方式运行,还需要编辑pure-ftpd的配置文件

    让pure-ftpd随系统启动

    如果以inetd(守护进程)方式运行

    代码:
    inetd_enable=”YES”
    代码:
    # 详细启动参数请参考http://download.pureftpd.org/pub/pure-ftpd/doc/README
    ftp	stream	tcp	nowait	root	/usr/local/sbin/pure-ftpd	pure-ftpd -A -b -c50 -C2 -D -E -fftp -H -i -I15 -lmysql:/usr/local/etc/pureftpd-mysql.conf -m4 -s -u100 -j -k99 -Z -4
    如果以standalone(独立进程)方式运行

    代码:
    #!/bin/sh
    case "$1" in
    start)
    /usr/local/sbin/pure-config.pl /usr/local/etc/pure-ftpd.conf
    echo ‘pure-ftpd started!’
    echo ‘’
    ;;
    stop)
    killall pure-ftpd
    echo ‘pure-ftpd stopped!’
    echo ‘’
    ;;
    restart)
    killall pure-ftpd
    /usr/local/sbin/pure-config.pl /usr/local/etc/pure-ftpd.conf
    echo ‘pure-ftpd restarted!’
    echo ‘’
    ;;
    *)
    echo ‘Usage: {start|stop|restart}’ >&2
    exit 64
    ;;
    esac
    exit 0
    代码:
    pure-ftpd_enable=”YES”
    安装配置pureftpdadmin

    代码:
    $PUREFTP_CONFIG_FILE	= '/usr/local/etc/pureftpd-mysql.conf';
    $DefaultUser = "ftpadmin";
    $DefaultPass = "adminpassword";
    代码:
    $PUREFTP_CONFIG_FILE	= '/usr/local/etc/pureftpd-mysql.conf';
    设置pureftpdadmin安全

    代码:
    <Directory "/usr/www/pureftpdadmin">
    deny from all
    Options None
    AllowOverride AuthConfig
    Order deny,allow
    </Directory>
    代码:
    AuthType Basic
    AuthUserFile /usr/local/ftpadmin.pwd
    AuthName “操作前请登录”
    require valid-user
    satisfy any
     
  7. harbinbeer

    harbinbeer New Member

    注册:
    2006-06-10
    帖子:
    88
    赞:
    0
    系统安全

    防火墙IPFW

    启用防火墙

    代码:
    firewall_enable="YES"
    firewall_type="open"
    firewall_script="/etc/ipfw.rules"
    firewall_logging="YES"
    代码:
    net.inet.ip.fw.verbose=1
    net.inet.ip.fw.verbose_limit=5
    编辑防火墙规则

    代码:
    # 具体语法请参考http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/firewalls-ipfw.html
    #
    ##################
    #启动时重载规则列表#
    ##################
    ipfw -q -f flush
    #
    #############
    #设置命令前缀#
    #############
    cmd="ipfw -q add"
    #
    #############
    #设置DNS地址#
    #############
    dns="192.168.163.2"
    #
    ################
    #公网网卡界面名称#
    ################
    pif="lnc0"
    #
    ################
    #不限制loopback#
    ################
    $cmd 00100 allow all from any to any via lo0
    #
    ###############
    #允许自定义规则#
    ###############
    $cmd 00200 check-state
    #
    ###############
    #允许与DNS通讯#
    ###############
    $cmd 00300 allow tcp from any to $dns 53 out via $pif keep-state
    $cmd 00400 allow udp from any to $dna 53 out via $pif keep-state
    #
    #####################################################
    #允许http连接(limit src-addr意为限制同一地址连接数量)#
    #####################################################
    $cmd 00500 allow tcp from any to any 80 out via $pif setup keep-state
    $cmd 00600 allow tcp from any to me 80 in via $pif setup limit src-addr 10
    #
    ######################################################
    #允许https连接(limit src-addr意为限制同一地址连接数量)#
    ######################################################
    $cmd 00700 allow tcp from any to any 443 out via $pif setup keep-state
    $cmd 00800 allow tcp from any to me 443 in via $pif setup limit src-addr 10
    #
    #######################################################
    #允许收发电子邮件(limit src-addr意为限制同一地址连接数量)#
    #######################################################
    $cmd 00900 allow tcp from any to any 25 out via $pif setup keep-state
    #$cmd 01000 allow tcp from any to me 25 in via $pif setup limit src-addr 1
    #
    $cmd 01100 allow tcp from any to any 110 out via $pif setup keep-state
    #$cmd 01100 allow tcp from any to me 110 in via $pif setup limit src-addr 1
    #
    #########################
    #允许CVSP和PORT安装/更新#
    #########################
    $cmd 01200 allow tcp from any to any via $pif setup keep-state uid root
    #
    ##########
    #允许ping#
    ##########
    $cmd 01300 allow icmp from any to any out via $pif keep-state
    #$cmd 01300 allow icmp from any to any in via $pif keep-state
    #
    ####################################################
    #允许FTP连接(limit src-addr意为限制同一地址连接数量)#
    ####################################################
    $cmd 01400 allow tcp from any to any 21 out via $pif setup keep-state
    $cmd 01500 allow tcp from any to any 21 in via $pif setup limit src-addr 2
    #
    ########################################################
    #允许SSH远程连接(limit src-addr意为限制同一地址连接数量)#
    ########################################################
    $cmd 01600 allow tcp from any to any 22 out via $pif setup keep-state
    $cmd 01700 allow tcp from any to any 22 in via $pif setup limit src-addr 2
    #
    ######################
    #禁止此规则以外的所有连接#
    ######################
    $cmd 99999 deny log all from any to any
     
  8. harbinbeer

    harbinbeer New Member

    注册:
    2006-06-10
    帖子:
    88
    赞:
    0
    设置远程登录安全

    代码:
    port 22	//可以改成不常用端口,并在防火墙设置中作相应修改
    protocol 1
    hostkey /etc/ssh/ssh_host_key
    PermitRootLogin no
    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeyFiles .ssh/authorized_keys
    PasswordAuthentication no
    一路回车默认

    用ftp下载identity.pub,保存到本地;
    在本地启动putty.exe(免费软件);
    在session设置中填好IP和端口;
    在connection-SSH-Auth中,Browse下载的identity.pub;
    勾选Attempt TIS or CryptoCard auth(SSH-1);
    点击open连接;
    按照提示输入用户名、密码
     
  9. harbinbeer

    harbinbeer New Member

    注册:
    2006-06-10
    帖子:
    88
    赞:
    0
    其他安全设置

    关闭一些不安全的服务

    代码:
    sendmail_enable="NONE"
    nfs_server_enable="NO"
    nfs_client_enable="NO"
    portmap_enable="NO"
    syslogd_enable="YES"
    syslogd_flags="-ss"
    icmp_drop_redirect="YES"
    log_in_vain="YES"
    inetd_enable=”NO”		# 如果pure-ftpd以Inetd方式运行,需设置为YES
    禁止一般用户查看系统日志

    对bin和sbin进行安全保护

    禁止一般用户使用crontab

    代码:
    root
     
  10. harbinbeer

    harbinbeer New Member

    注册:
    2006-06-10
    帖子:
    88
    赞:
    0
    安装旧版软件

    默认情况下,通过ports编译安装的都是软件的最新版本,在某些情况下需要自定义安装特定的旧版本(传说中的稳定版),这个时候需要特殊处理

    首先要知道准备安装的port属于哪个类别,比如常见的Mysql4.0.26属于databases,php4.4.0属于lang等等……我们这里以php4为例

    然后,到http://www.freebsd.org/cgi/cvsweb.cgi/ports/查看相应软件的发布日期,php4.4.1最后的发布日期为2005年12月9日

    根据相应版本的发布日期(通常以公布日期稍延后一点,但一定要在下一个版本日期之前)修改cvsup文件

    代码:
    *default date=2005.12.10.00.00.00	#格式:年/月/日/时/分/秒
    #ports-all								#不用将所有port都回滚
    ports-lang								# 只回滚相应的软件类别
    然后将ports回滚到那个时候:

    最后就可以安装了

    FreeBSD目录架构

    / 文件系统的根目录。
    /bin/ 在单个用户和多用户环境下的基本工具目录。
    /boot/ 在操作系统在启动加载期间所用的程序和配置。
    /boot/defaults/ 默认每步引导启动的配置内容,请查阅loader.conf(5)。
    /dev/ 设备节点,请查阅 intro(4)。
    /etc/ 系统启动的配置和脚本。
    /etc/defaults/ 系统默认的启动配置和脚本,请参考 rc(8) 。
    /etc/mail/ 关系到邮件系统运作的配置, 请参考 sendmail(8)。
    /etc/namedb/ named 配置文件,请参考 named(8)。
    /etc/periodic/ 每天、每星期和每月周期性地运行的脚本, 请通过 cron(8)查阅 periodic(8)。
    /etc/ppp/ ppp配置文件,请查阅ppp(8)。
    /mnt/ 由管理员习惯使用挂接点的临时空目录。
    /proc/ 运行中的文件系统,请参阅 procfs(5) 和 mount_procfs(8)。
    /rescue/ 用于紧急恢复的一组静态联编的程序; 参见 rescue(8)。
    /root/ root用户的Home(主)目录。
    /sbin/ 在单个用户和多用户环境下的存放系统程序和管理所需的基本实用目录。
    /stand/ 独立的程序环境。
    /tmp/ 临时文件。 /tmp 目录中的内容,一般不会在系统重新启动之后保留。 通常会将基于内存的文件系统挂在 /tmp 上。 这一工作可以用一系列 tmpmfs 相关的 rc.conf(5) 变量来自动完成。 (或者, 也可以在 /etc/fstab 增加对应项; 参见 mdmfs(8))。
    /usr/ 存放大多数用户的应用软件。
    /usr/bin/ 存放实用命令,程序设计工具,和应用软件。
    /usr/include/ 存放标准 C include 文件.
    /usr/lib/ 存放库文件。
    /usr/libdata/ 存放各种实用工具的数据文件。
    /usr/libexec/ 存放系统实用或后台程序 (从另外的程序启动执行)。
    /usr/local/ 存放本地执行文件, 库文件等等, 同时也是 FreeBSD ports 安装的默认安装目录。 /usr/local 在 /usr 中的目录布局大体相同,请查阅 hier(7)。 但 man 目录例外, 它们是直接放在 /usr/local 而不是 /usr/local/share 下的, 而 ports 说明文档在 share/doc/port。
    /usr/obj/ 通过联编 /usr/src 得到的目标文件。
    /usr/ports 存放 FreeBSD 的 Ports Collection (可选)。
    /usr/sbin/ 存放系统后台程序 和 系统工具 (由用户执行)。
    /usr/share/ 存放架构独立的文件。
    /usr/src/ 存放 BSD 或者本地源码文件。
    /usr/X11R6/ 存放 X11R6 可执行文件、 库文件、 配置文件等的目录(可选)。
    /var/ 多用途日志、 临时或短期存放的, 以及打印假脱机系统文件。有时会将基于内存的文件系统挂在 /var 上。 这一工作可以通过在 rc.conf(5) 中设置一系列 varmfs 变量 (或在 /etc/fstab 中加入一行配置; 参见 mdmfs(8)) 来完成。
    /var/log/ 存放各种的系统记录文件。
    /var/mail/ 存放用户mailbox(一种邮件存放格式)文件。
    /var/spool/ 各种打印机和邮件系统spooling(回环)的目录。
    /var/tmp/ 临时文件。 这些文件在系统重新启动时通常会保留, 除非 /var 是一个内存中的文件系统。
    /var/yp NIS 映射。
    /etc 一般的系统配置信息。这儿的数据是与特定系统相关的。
    /etc/defaults 系统配置文件的默认版本。
    /etc/mail 额外的 sendmail(8) 配置信息,其他 MTA 配置文件。
    /etc/ppp 用于用户级和内核级 ppp 程序的配置。
    /etc/namedb named(8) 数据的默认位置。通常 named.conf 和区域文件存放在这里。
    /usr/local/etc 被安装的应用程序配置文件。可以参考每个应用程序的子目录。
    /usr/local/etc/rc.d 被安装程序的 启动/停止 脚本。
    /var/db 特定系统自动产生的数据库文件,像 package 数据库,位置数据库等等。

    FreeBSD配置文件说明

    /etc/resolv.conf
    指示了 FreeBSD 如何访问域名系统(DNS)。
    nameserver 按顺序要查询的名字服务器的 IP 地址,最多三个。
    search 搜索机器名的列表。这通常由本地机器名的域决定。
    domain 本地域名。

    /etc/hosts
    是 Internet 早期使用的一个简单文本数据库。它结合 DNS 和 NIS 提供名字到 IP 地址的映射。

    syslog.conf
    是 syslogd(8) 程序的配置文件。 它指出了的 syslog 哪种信息类型被存储在特定的日志文件中。

    newsyslog.conf
    是一个通常用 cron(8) 计划运行的 newsyslog(8) 程序的配置文件。指出了什么时候日志文件需要打包或者重新整理。指出了哪个日志文件要被管理,要保留多少和它们什么时候被创建。日志文件可以在它们达到一定大小或者在特定的日期被重新整理。

    sysctl.conf
    看起来很像 rc.conf。它用 variable=value 的形式来设定值。指定的值在系统进入多用户模式之后被设定。并不是所有的变量都可以在这个模式下设定。

    ************************************************************************************

    至此,关于用FreeBSD组架的web服务器基本上就可以告一段落了。

    关于本文中提到的

    其实是我自己做的一张光盘镜像,现在把这个镜像提供给大家。光盘里还包括了文中提到的所有配置文件的范例供大家参考。
    点击下载(如果还没失效)
     
  11. efootball

    efootball New Member

    注册:
    2006-04-06
    帖子:
    47
    赞:
    0
    没有用过这类系统,现在想学LINUX
     
  12. 泡菜

    泡菜 New Member

    注册:
    2006-04-08
    帖子:
    575
    赞:
    6
    6.1比6.0加了些什么?  我想装6.0,却死活装不上..:(
     
  13. srsman

    srsman Active Member

    注册:
    2005-11-08
    帖子:
    1,920
    赞:
    6
    同楼上!
     
  14. xware

    xware New Member

    注册:
    2005-11-28
    帖子:
    48
    赞:
    0
    我也是 FreeBSD 用户 from TW
    这篇写的不错 , 给您鼓励一下 :)
     
  15. harbinbeer

    harbinbeer New Member

    注册:
    2006-06-10
    帖子:
    88
    赞:
    0
    多谢!
     
  16. harbinbeer

    harbinbeer New Member

    注册:
    2006-06-10
    帖子:
    88
    赞:
    0
    是哪里出了错?
     
  17. good8

    good8 New Member

    注册:
    2006-01-11
    帖子:
    86
    赞:
    0
    还不错!比较全面!顶一下,赞一个!
     
  18. greatqsh

    greatqsh New Member

    注册:
    2005-09-16
    帖子:
    142
    赞:
    1
    好文章

    好文章:lovely: