FreeBSD下Lighttpd+PHP+Mysql安装配置笔记

FreeBSD下Lighttpd+PHP+Mysql安装配置笔记

1,安装mysql

cd /usr/ports/database/mysql51-server
make install clean

2,安装lighttpd

cd /usr/ports/www/lighttpd
make install clean
(默认选项)

3,安装php5

cd /usr/ports/lang/php5
make install clean
(默认选项)

4,安装php5-extensions

cd /usr/ports/lang/php5-extensions
make install clean

增加GD,MBSTRING,MCRYPT,MYSQL,MYSQLI

5,配置lighttpd

vi /usr/local/etc/lighttpd.conf

取消需要用到模块的注释,mod_rewrite,mod_access,mod_fastcgi,
mod_simple_vhost,mod_cgi,mod_compress,mod_accesslog

取消fastcgi.server的注释
fastcgi.server = ( “.php” =>
( “localhost” =>
(
“socket” => “/var/run/lighttpd/php-fastcgi.socket”,
“bin-path” => “/usr/local/bin/php-cgi”
)
)
)

另:
touch /var/log/lighttpd.access.log
touch /var/log/lighttpd.error.log
mkdir /var/run/lighttpd
chown -R www:www /var/run/lighttpd
chown www:www /var/log/lighttpd.access.log
chown www:www /var/log/lighttpd.error.log

6,启动lighttpd和mysql

vi /etc/rc.conf

增加
mysql_enable=”YES”
lighttpd_enable=”YES”

执行
/usr/local/etc/rc.d/lighttpd start
/usr/local/etc/rc.d/mysql start

原文链接:http://garey.bsdart.org/2009/12/freebsd7-2%E4%B8%8Blighttpdphpmysql%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE%E7%AC%94%E8%AE%B0/

FreeBSD DHCP服务安装笔记

一、编译内核

device bpf

bpf设备是DHCP服务必需的,FreeBSD系统默认的GENERIC内核已经包含此设备,如果您的系统内核是经过修改的,请注意此设备是否已经添加。

二、安装DHCP Server

# cd /usr/ports/net/isc-dhcp31-server
# make install clean

三、配置DHCP服务

# vi /usr/local/etc/dhcpd.conf

option domain-name "example.com";  //这个选项指定了提供给客户机作为默认搜索域的域名。
option domain-name-servers 192.168.0.100;  //这个选项用于指定一组客户机使用的DNS服务器,它们之间以逗号分隔。
option subnet-mask 255.255.255.0;  //提供给客户机的子网掩码。

default-lease-time 3600;  //客户机可以请求租约的有效期,而如果没有,则服务器将指定一个租约有效期,也就是这个值(单位是秒)。
max-lease-time 86400;  //这是服务器允许租出地址的最大时长。如果客户机请求了更长的租期,则它将得到一个地址,但其租期仅限于max-lease-time秒。
ddns-update-style none;  //这个选项用于指定DHCP服务器在一个地址被接受或释放时是否应对应尝试更新DNS。在ISC实现中,这一选项是必须指定的。

subnet 192.168.0.0 netmask 255.255.255.0 {  //配置DHCP地址池
  range 192.168.0.120 192.168.0.250;  //指定地址池中可以用来分配给客户机的IP地址范围。在这个范围之间,以及其边界的IP地址将分配给客户机。
  option routers 192.168.0.1;  //定义客户机的默认网关。
}

host mailhost.example.com {  //分配静态IP地址
  hardware ethernet 02:03:04:05:06:07;  //主机的硬件MAC地址(这样DHCP服务器就能够在接到请求时知道请求的主机身份)。
  fixed-address 192.168.0.150;  //指定固定IP地址
}

四、启动DHCP服务

# vi /etc/rc.conf

dhcpd_enable="YES"
dhcpd_ifaces="dc0"  //dc0为DHCP服务器需要监听DHCP客户端请求的接口

# /usr/local/etc/rc.d/isc-dhcpd start

FreeBSD下sudo的使用

FreeBSD下sudo的使用

sudo是OpenBSD的一部分,其作者是 Todd C. Miller。在 FreeBSD 中可以使用 ports 或 package 来安装。

下面来安装并使用sudo吧!!

  1)安装sudo(两种安装方法):
      a: 从 ports 安装(推荐)
         #cd /usr/ports/security/sudo
         #make install clean
      b: 通过 package 安装
         #pkg_add -r sudo

  2)配置sudo
     sudo的配置文件在/usr/local/etc/sudoers里面。sudo的配置文件不应直接编辑,而应使用 visudo 来进行修改。
     配置权限的格式如下:
        USER MACHINE=(EFFECTIVE USER)  [NOPASSWD:] COMMAND
      第一列(USER)指定要授权的帐号。第二列(MACHINE)定义在那些机器上,这条执行生效,其好处是在多台机器上使用同一份配置文件。括号里的(EFFECTIVE USER)是使用指定实际执行该命令的帐号,
      这就方便一个帐号允许用另外一个帐号来执行特定的命令,而不非得是root帐号。第四列(COMMAND)是指定的命令. NOPASSWD是可选项代表USER在sudo到某身份时不必输入该身份的密码即可执行命令。
     下面是配置sudo的简单方法:
        M-gtuiw ALL=(ALL) ALL
     指定了M-gtuiw可以在任何地点以任何身份执行整个系统的全部命令。
       %wheel ALL=(ALL) ALL
     这个命令指定了wheel这个组的用户可以在任何地点以任何身份执行整个系统的全部命令。
        M-gtuiw ALL=(apache) /usr/bin
     指定了M-gtuiw可以在任何地点但只能以apache用户身份且只能执行/usr/bin目录下的命令。
        M-gtuiw ALL= /usr/bin
     等同于M-gtuiw ALL=(root) /usr/bin

  3)设置密码在一段时间后自动退出
     Defaults:M-gtuiw     timestamp_timeout=0, runaspw, passwd_tries=1
     记住: 在 Defaults:M-gtuiw 这个地方不允许有空格出现。下同:     
     这段句子有三个功能:
     1)M-gtuiw需要root的密码才能运行sudo(句子中runaspw的缘故)。
     2)这密码没有被系统记住(因为有timestamp_timeout=0的缘故),用了一次的sudo之后当再次使用时又得输入root密码。
       如果将timastamp_timeout改为-1话,M-gtuiw只须去验证一次密码,之后将记住了M-gtuiw输入的密码,当第二次,第三次
       使用sudo的时候都不用输入root密码了直到退出登录。
       当然,其它的用户也可以这样,但须要不同的帐户和缺省值。在这里我们只改变M-gtuiw和增加一个新的用户“limda”:
          Defaults:M-gtuiw               timestamp_timeout=0
          Defaults:limda                  timestamp_timeout=-1, runaspw
          #user privilege specification
          root          ALL=(ALL) ALL
          M-gtuiw       ALL=(ALL) ALL
          limda         ALL=(ALL) ALL
       M-gtuiw和limda拥有不同的缺省值。“Defaults”影响着每个用户使用sudo不同的权限。

  4)sudo默认使用系统的 /var/log/messages 作为其日志文件;除此之外,也可以采用另外的日志,以便于进行审计。
      Defaults logfile=/var/log/sudolog
      记住,在上面没有 : 啊。

  5) 限制sudo使用危险的命令:
        M-gtuiw ALL=/bin/kill, /usr/sbin/
  这里说明M-gtuiw用户只可以使用/bin/kill这个命令和/usr/sbin/里面的命令。
        M-gtuiw lnserve=(paul, limda) /bin/kill, /usr/sbin/
  说明了M-gtuiw只能在lnserv指定的机算机中以paul和limda的身份使用/bin/kill和/usr/sbin里面的命令。

  6)sudo限制使用某些命令
        M-gtuiw ALL=ALL, !/bin/rm
  这里说明了M-gtuiw可以用除了/bin/rm之外的所有命令,在/bin/rm前面加上 ! 号就是为了限制使用这个命令。
  这是我在sudo的网页里翻译出来的一些简单文本,本人的英文不是很好,翻译的不是很好,欢迎各位前来修正。

  7)sudo时不输入密码直接执行命令
        M-gtuiw ALL=(ALL) NOPASSWD: /usr/local/sbin/VBoxClient,/sbin/mount -t ntfs /dev/hda5 /d-driver
  这里说明M-gtuiw在执行/usr/local/sbin/VBoxClient以及mount hda5时,不必输入root密码就可以root权限执行,
  这里RUNAS为ALL实际上是指M-gtuiw可以sudo成任何身份且不必输入该身份的密码就可以执行后面的命令,当然root身份也不在话下。
  NOPASSWD特别危险切记要让正确的人使用正确的命令。
        M-gtuiw ALL=(ALL) NOPASSWD: ALL
  这里说明M-gtuiw执行所有命令都不必输入密码,这极其危险。慎用。
        M-gtuiw ALL=(ALL) ALL, NOPASSWD: /sbin/mount -t ntfs /dev/hda5 /d-driver
  也可以让M-gtuiw用户可以sudo所有命令,但只针对某些命令不必输入密码。

原文链接:http://wiki.freebsdchina.org/doc/s/sudo_with_sudo

通过PXE安装FreeBSD系统

目标

在已有一台运行 FreeBSD 的计算机(我们称其为 S)的情况下,使用 PXE 在一台计算机(我们称其为 D)安装 FreeBSD。

硬件需求

S 必须拥有一块 FreeBSD 可以正常使用的网卡。
D 必须可以支持 PXE 引导,并且其网卡要可以在 FreeBSD 里面正常使用。 一条用于双机直连的网线。

软件需求

tftpd,已经包含在 FreeBSD 发行版的 base 中。
nfsserver,已经包含在 FreeBSD 中。
isc-dhcp3-server 3.0.5,通过 ports 安装。
FreeBSD 发行版 DISC1 的 ISO 镜像(我使用的镜像是 FreeBSD 8-CURRENT 今年一月的快照,8.0-CURRENT-200801-amd64-disc1.iso)。

S 上使用的 FreeBSD 是 7.0-BETA2-i386。

网络设置

假设 S 的 IP 地址为 192.168.0.1,子网掩码为 255.255.255.0。

准备工作

允许 tftpd 运行

默认情况下,inetd 里面的 tftpd 是不会运行的。在 inetd.conf 中找到 tftpd 所对应的一行,去掉行首的#,保存。注意,去除注释的这行应该是使用 udp 而不是 udp6。

配置 nfsserver

echo "/mnt -ro -alldirs" > /etc/exports

安装 isc-dhcp3-server

cd /usr/ports/net/isc-dhcp3-server && make BATCH=yes install

配置 isc-dhcp3-server

编辑 /usr/local/etc/dhcpd.conf

default-lease-time    7200;
max-lease-time    7200;
ddns-update-style    none;
subnet 192.168.0.0 netmask 255.255.255.0 {
    range 192.168.0.2 192.168.0.254;
    server-identifier    192.168.0.1;
    next-server        192.168.0.1;
    filename        "/pxeboot";
    option    root-path    "/mnt";
}

这里是整个 PXE 安装最重要的部分之一,能否正常进行 PXE 安装关键就在这里。这里面最关键的几个选项是 next-server,filename 和 root-path。
要理解这些选项的作用,首先要理解 PXE 工作的流程。按照 FreeBSD PXE 引导的过程,我们将其分成三个阶段。
第一阶段主要是 D 上 PXE 的 firmware 和 S 上 dhcpd 协商的过程。在这里,要商定 D 的 IP 地址,并且确定下一步 PXE 要加载的文件,及其位置。
第二阶段是 D 加载上一阶段商定好的文件。对于 FreeBSD 来说,主要就是 pxeboot(8),一个 PXE 的 bootloader。
第三阶段是根据 pxeboot(8) 的指示加载 loader(8) 和 kernel。
在这里,我们可以看到 D 要从网络加载两次文件,一次是 pxeboot(8),另外一次是 loader(8) 和 kernel。这两次加载文件的位置就是由上面的三个选项来确定的。下面我们逐一分析这几个语句的作用。

next-server 语句主要控制了整个 PXE 引导中两次加载的文件所在的服务器的地址。pxeboot(8) 是通过 tftp 从 S 传递到 D 的,所以 next-server 第一个作用就是指定一个 tftp server 的地址。在第三阶段,要加载 loader(8) 和 kernel,这个加载过程是通过 nfs 完成的。next-server 同时也指定了 nfs server 的地址。值得注意的是,有一些文档说第一阶段确定的 PXE 在下一阶段要加载的文件(也就是 pxeboot(8))所在的服务器地址是通过 server-identifier 给定的,但是对于 isc-dhcp3-server 来说,这一点并不成立,而恰恰是 next-server 决定了 pxeboot(8) 所在的服务器的地址(在 dhcpd.conf(5) 里面已经明确指出了这一点)。

filename 指定的是 pxeboot(8) 在 tftp 传输过程中的名字。由于 tftpd 将在 inetd 中来使用,根据 inetd.conf 中给 tftpd 传递的选项,tftpd 启动的时候会进行 chroot,于是 filename 的地址是要相对于其 chroot 之后的根路径来说的。默认情况下,tftpd 会 chroot 到 /tftpboot,我们要在 /tftpboot 中放入 pxeboot(8) 这个文件。由于相对 /tftpboot 作为根路径来说,pxeboot(8) 的位置是 /pxeboot,所以我们直接填入 /pxeboot 便可。

root-path 这个选项指定的是第三阶段加载 loader(8) 和 kernel 在 nfs 的根路径的位置(也就是包含了 boot 目录的位置)。因为我们导出的是 /mnt,所以这里填 /mnt。

正式安装

1、为了避免 S 上的 dhcpd 影响网络中其他机器,也为了避免 D 受到网络上其他机器的影响,用直连网线将 S 和 D 连接起来。

2、挂载准备好的 ISO 镜像。 使用 mdconfig 将 FreeBSD 的 ISO 文件连接成为一个 vnode 类型的内存盘:

mdconfig -atvnode -f 8.0-CURRENT-200801-amd64-disc1.iso

挂载这个 md 节点(假设为 /dev/md0)到 /mnt:

mount_cd9660 /dev/md0 /mnt

3、把 pxeboot(8) 放到 /tftpboot:

cp /mnt/boot/pxeboot /tftpboot

4、在 S 上启动 tftpd, dhcpd 和 nfsd:

/etc/rc.d/inetd forcestart
/etc/rc.d/nfsd forcestart
/usr/local/etc/rc.d/isc-dhcpd forcestart

5、由于我们已经使用直连网线将 S 和 D 连接,假设 S 上没有配置 BIND 服务,也没有额外的到 Internet 的网络连接,那么需要禁止 S 上的 DNS 解析。可以修改 /etc/resolv.conf,将其中所有以 nameserver 开头的行注释掉。否则 mountd(因为 nfsd 依赖这个 daemon,所以 mountd 也会随 nfsd 启动而启动)会去查 DNS,而有可能导致最终 PXE 启动连不上 nfs,不能加载 kernel 而超时失败。

6、在 D 的 BIOS 中设置为 PXE 引导,重新启动计算机。

7、D 此时已经启动,并通过 PXE,加载了 loader。此时需要选择 loader 启动选项的第 6 项,进入 loader prompt。输入以下命令:

set vfs.root.mountfrom="ufs:/dev/md0c"
boot

第一行保证我们可以启动到正确的安装程序,第二行提示系统继续执行启动的各个步骤。

8、此时应该正常进入安装程序。到选择安装介质之前都按照一般的安装步骤。在选择安装介质时选择 nfs,然后输入 S 的 IP 地址,以及导出的路径,例如 192.168.0.1:/mnt。确认后,系统提示要设置网卡,在这里按照系统提示,使用 dhcp,保证 D 与 S 在同一个网络中。主机名和域名随意,DNS 以及网关可以暂时不填。后续步骤与从光盘安装一致。

9、最终退出安装程序,重新启动系统。并修改 D 的 BIOS 设置,禁止网络启动。

10、安装全部完成,可以开始享用 FreeBSD 了。

参考

rafan 的 PXE Install 笔记[URL:http://wiki.rafan.org/doc/freebsd#pxe_install]

原文链接:http://wiki.freebsdchina.org/howto/p/pxeinstall

FreeBSD 7 Xorg7.3 KDE3.5 桌面系统安装及美化

这几天一直在整FreeBSD+KDE的桌面系统,现在基本上能满足偶的日常需要。把安装过程记录下来,方便以后重装。。。。 !!

一、安装系统

首先,最小化安装系统,没什么好说的,最好单独分一个/home出来,这样重装后,很多东西可以重用。然后装呗。。建议把src/base/kernels/man一并装上,以后可能会用到。 然后在sysinstall里建一个wheel用户,建用户的时候shell那里偶写上:/bin/csh,因为偶比较习惯用csh 再修改一下网卡属性,连接上网。

最小化安装好系统后,把cd1,cd2,cd3中的内容都拷到硬盘,这样pkg_add 软件方便,不用来回换光盘。

建个目录放拷来的tbz文件

#mkdir /usr/soft

挂载光驱

#mount /cdrom

拷贝packages下的所有文件到硬盘里

#cp -rf /cdrom/packages/* /usr/soft/

挂载掉光驱

#umount /cdrom

然后到/usr/soft目录,安装xorg,kde,linux程序支持,可以使用ls xorg*命令查看具体文件名。

#cd /usr/soft/All

#pkg_add xorg-7.3_1.tbz

#pkg_add kde-3.5.8.tbz

#pkg_add linux_base-fc-4.10.tbz

装完xorg,kde后,更新ports。/etc/portsnap.conf里是更新portsnap镜像的站点地址。可以改成国内比较快的镜像站点:SERVERNAME=portsnap.hshh.org 最小化安装时默认是不安装ports的,如果你装了ports,先删除ports目录

#rm -rf /usr/ports

然后继续,fetch是取得ports镜像,extract把ports镜像解压到/usr/ports,update是更新ports

#portsnap fetch

#portsnap extract

为了让ports的安装速度更快,做以下修改:

#ee /etc/make.conf

在make.conf中加入下面的内容,可以用wget在国内镜像站点下载ports包需要的软件。

MASTER_SITE_OVERRIDE=\

http://ports.hshh.org/${DIST_SUBDIR}/\

ftp://ftp.freebsdchina.org/pub/FreeBSD/ports/distfiles/

FETCH_CMD=wget -c -t 1

DISABLE_SIZE=yes

接下来安装显卡驱动,我的显示是nvidia7300gt。A卡的用户百度狗狗下~

#cd /usr/ports/x11/nvidia-driver

#make install clean

装好之后,最好重启一下。

#shutdown -r now

为了方便,偶装了偶比较习惯用的编辑器,如果你喜欢用ee,可以不装vim ,下面一些shell命令行,把vim 换成ee

#cd /usr/ports/editors/vim

make install clean

用PREFIX=/home/path/to/your/opt 命令,可以把vim装在你想要的目录,当然也可以直接装在默认目录下。偶一般在自己的home目录下建个opt文件夹,放安装的程序。

接下来配置xorg,进入kde桌面

#xorg -configure

这样/root下应该会生成xorg.conf.new文件,测试一下是否正常,如果屏幕上出现一个黑色的鼠标指针就差不多啦~如果不正常,接Ctrl+Alt+Backspace

#xorg -config xorg.conf.new

如果一切正常,把xorg.conf复制到公共目录里,不过偶装的时候好像没有手动复制也可以,像是装的时候自动放到位置上去了。具体参看手册。

之后,试试看可以了嘛~~

#startx

#startkde

界面可能不好看,没关系,改动一下配置文件,让kde随机启动。

#vim /etc/ttys

把 ttyv8这行,改成这样:

ttyv8 ”/usr/local/bin/kdm -nodaemon” xterm on secure

这样,系统启动时就默认登录KDE桌面。

如果想改成其它桌面,可以直接编辑Xsession文件。

#vim /usr/local/share/config/kdm/Xsession

default)那里,即是默认启动的窗口。

default)

exec startkde

编辑好,保存即可。

安装kde的汉化文件

#cd /usr/ports/chinese/kde3-i18n-zh_CN

#make install clean

为了方便,可以直接装下一个做好的ports

#cd /usr/ports/chinese/auto-cn-l10n

#make install clean

选择下需要安装的内容,wqy字体选中,fireflyttf字体选中,SCIM输入法选中。

上面的包装好后,如果你需要用五笔或拼音可以分别在下面二个位置安装

/usr/ports/chinese/scim-tables

/usr/ports/chinese/scim-pinyin

OK,在你用kdm进入kde前,用先前建的帐号,最好设置一下一些东西。

#su 用户名

%cd ~

因为我用的是csh,所以编辑.cshrc文件。

%vim .cshrc

加入这么二行,习惯了:) shell会更好看呵呵。

alias ls ls -FAG

setenv LSCOLORS ExGxFxdxCxegedabagExEx

如果上面装了scim,.cshrc文件中没有改下内容,则加入

setenv XMODIFIERS @im=scim

setenv QT_IM_MODULE scim

setenv GTK_IM_MODULE scim

保存.cshrc文件。退出。

设置本地化环境

%vim ~/.login_conf

加入:

me:\
:charset=zh_CN.UTF-8:\
:lang=zh_CN.UTF-8:\
:setenv=LC_ALL=zh_CN.UTF-8:\
:setenv=LC_COLLATE=zh_CN.UTF-8:\
:setenv=LC_CTYPE=zh_CN.UTF-8:

这样重启后,自动进入kde桌面环境。

第一次进入时,有桌面配置向导,看提示一步步点完即可。

二、定制内核

具体内容参看:http://docs.freebsd.org/doc/7.0-RELEASE/usr/share/doc/zh_CN/books/handbook/kernelconfig.html

定制内核前,看一下:http://docs.freebsd.org/doc/7.0-RELEASE/usr/share/doc/zh_CN/books/handbook/kernelconfig-trouble.html

FreeBSD7手册中内核配置文件部分,说的十分详细,怎么按自己要求修改内核文件参看:http://docs.freebsd.org/doc /7.0-RELEASE/usr/share/doc/zh_CN/books/handbook/kernelconfig-config.html

准备好了之后,继续。。。

之前安装时建议把src装上,现在就可以用上啦。按手册上面说的把内核文件修改好之后。

进入 /usr/src 目录:

# cd /usr/src

编译内核:

# make buildkernel KERNCONF=MYKERNEL

安装新内核:

# make installkernel KERNCONF=MYKERNEL

安装好新内核之后,先不急重启,看清楚手册上说的内核配置错误不能启动怎么办那章之后,再重启哦。

如果想临时换回默认的GENERIC内核,可以修改/boot/defaults/loader.conf文件。

三、美化系统

1、字体

之前装了wqy字体,可以在K菜单-控制中心-外观和主题-字体里,把所有的字体都换成WenQuanYi的。

2、KDE风格

在 http://kde-look.org 的左中方有搜索栏,搜索kollide。 找到 kollide 1.5 的Theme-Manager Theme 风格包,下载。。解压缩。 #tar zxvf kollide*.gz 具体地址是:http://kde-look.org/content/show.php/kollide?content=75295

下载后在K菜单-控制中心-外观和主题-主题管理器中,点击安装新主题,选中.kth主题文件,即可。 这样在这个目录里就应该有kollide主题的目录,如果没有,可以在包里复制过来。

~/.kde/share/apps/kthememanager/themes

这样风格好看了吧,还有漂亮的壁纸。

3、登录界面风格

同样,从kde-look下载你喜欢的kdm风格包,下载解压缩包到 /usr/local/share/apps/kdm/themes 里, 同时修改kdmrc文件 #vim /usr/local/share/config/kdm/kdmrc 把UseTheme=true前面的注释号去掉。 Theme路径设成你刚刚下载的kdm风格路径。 我的是:Theme=/usr/local/share/apps/kdm/themes/DEEP

ok,ctrl+alt+delete重新登录一下看看 🙂

4、面板设置

在面板空白处右击,面板菜单-添加新面板-选择外部任务栏

K菜单-控制中心-桌面-面板

在“排列”选项卡里,选择设置“主面板”,位置向下居中,长度30%,勾选“自动扩大到需要的尺寸”,大小选“大”。

在“排列”选项卡里,选择设置“外部任务栏”,位置向上居中,长度100%,勾选“自动扩大到需要的尺寸”,大小选“小”。

在“外观”选项卡里,“面板背景”项中勾选“允许透明” 确定。。

这样面板是不是好看多了~呵呵,这个全凭各人喜好。我这里配置“外部工具栏”不显示全部桌面中的窗口。。。不分组显示 。。个人爱好。

5、conky设置

首选安装conky,ports安装,注意root 权限。

#cd /usr/ports/sysutils/conky

#sudo make install clean

装好之后,在你的主目录中建一个文件.conkyrc ,然后编辑这个文件。注意帐号,不要用成root的了。

#su 用户名

%cd ~

% vim .conkyrc

加入以下内容:

background no
double_buffer

# X font used, you can pick one with program xfontsel
#font 5×7
#font 6×10
#font 7×13
#font 8×13
font wenquanyi Bitstream Vera Sans Mono-9
# font *mintsmild.se*
# font -*-*-*-*-*-*-34-*-*-*-*-*-*-*

# Update interval in seconds
update_interval 1.0

# Create own window instead of using desktop (required in nautilus)
own_window no

# Draw shades?
draw_shades yes

# Draw borders around text
draw_borders no

draw_outlines yes
default_outline_color gray30

# Stippled borders?
stippled_borders no

# Default colors and also border colors
default_color gray75
default_shadecolor gray41

# Text alignment, other possible values are commented
#alignment top_left
#alignment top_right
#alignment bottom_left
alignment bottom_right

# Gap between borders of screen and text
gap_x 16
gap_y 66

use_xft

# Substract file system buffers from used memory?
no_buffers yes

# set to yes if you want all text to be in uppercase
uppercase yes
# stuff after ‘TEXT’ will be formatted on screen

TEXT
${color grey69}CPU Usage :$color $cpu% @ ${freq}MHz
${cpubar 4}
$cpugraph
${color grey69}Processes :$color $processes ${color grey69}Running:$color $running_processes
${color grey69}Load      :$color ${loadavg 1} / ${loadavg 2} / ${loadavg 3}
$color$stippled_hr
${color grey69}RAM Usage :$color $mem / $memmax – $memperc%
${membar 4}
${color grey69}Swap Usage:$color $swap / $swapmax – $swapperc%
${swapbar 4}
$color$stippled_hr
${color grey69}Networking: re0: Up:$color ${upspeed re0} k/s${color grey69} – Down:$color ${downspeed re0} k/s
$color$stippled_hr
${color grey69}Disk: developer $color grey69} Used: $color${fs_used /home/developer} ${color grey69} Free:$color ${fs_free /}
${color grey69}    : usr: ${color grey69}Used: $color${fs_used /usr} ${color grey69} Free: $color ${fs_free /usr}

把网卡名换成你机子的网卡名,还有用户主目录换成你的主目录即可。

当然也可以从网上下载conky的风格放在主目录下改名为.conkyrc

设置conky自启动:

打开 ~/.kde/Autostart 目录,把conky的程序拖进autostart目录,选择在此处创建链接。即可。

四、安装常用软件

一些常用软件都可以使用ports安装

%whereis 软件名

即可看到这个软件在ports中的位置。

%whereis firefox3

firefox3: /usr/ports/www/firefox3 浏览器

%whereis kchmviewer

kchmviewer:/usr/ports/deskutils/kchmviewer CHM查看软件

%whereis kftpgrabber

kftpgrabber: /usr/ports/ftp/kftpgrabber FTP客户端

%whereis ktorrent

ktorrent: /usr/ports/net-p2p/ktorrent KDE下图形BT客户端

%whereis smplayer

smplayer: /usr/ports/multimedia/smplayer “暴风影音”?呵呵

%whereis amarok

amarok: /usr/ports/audio/amarok MP3播放器

%whereis eva

eva:/usr/ports/net-im/eva linux下的QQ

%whereis stardict2

stardict2: /usr/ports/textproc/stardict2 星际译王2

amarok有个歌词插件,名字叫lrcshow,可以从网上下载到。在amarok的菜单里有选项,选中下载回来的固定文件名包即可安装。这个插件需要系统中有py-qt才可以正常使用。

%whereis py-qt

py-qt: /usr/ports/x11-toolkits/py-qt

强烈建议大家安装下sudo,十分方便。以前用ubuntu时就喜欢上了sudo…ports中有包。

偶在FreeBSD下主要弄php程序,上面说的软件smplayer没有测试能不能正常放,如果不行可以从百度狗狗上找找怎么下载解码器之类安装。

在安装ports的过程中可能会无法继续

强制安装使用:FORCE_PKG_REGISTER=YES

还有NO_CHECKSUM之类的,PORTS安装还是比较简单方便的。

实在不行,可以在ftp://ftp.freebsd.org的相关目录里下载tbz文件回来安装。。

再不行,可以pkg_add -r 安装。。

五、其它

因为是装过之后,才写的一些安装过程,错误在所难免,请见谅。

有点白
alittlewhite.developer@gmail.com
http://developer.cublog.cn

原文链接:http://wiki.freebsdchina.org/doc/p/freebsd_desktop_kde

FreeBSD配置ZFS做为根系统

声明:不建议使用ZFS做根文件系统

需要的文件

需要FreeBSD的DVD镜像 或者 memstick.img文件,其他的都不完整,所以不推荐

启动到Fixit

1.启动DVD 2.选择Fixit 3.选择CDROM/DVD,回车

创建mbr结构分区表,如果已存可以省略

Fixit# gpart create -s mbr ad4

显示分区信息

Fixit# gpart show ad4

在ad4上创建FreeBSD使用的分区ad4s3

Fixit# gpart add -b 6313545 -s 119515536 -t freebsd ad4
ad4s3 added
Fixit# gpart create -s BSD ad4s3
ad4s3 created

创建FreeBSD Partition

ad4s3a的分区是去掉Swap分区后的大小,计算公式时1024x1024x2=1G

Fixit# gpart add -i 1 -b 0 -s 117418384 -t freebsd-zfs ad4s3
ad4s3a added
Fixit# gpart show ad4s3

Fixit# gpart add -i 2 -b 117418384 -s 8380811 -t freebsd-swap ad4s3
ad4s3b added
Fixit# gpart show ad4s3

安装FreeBSD自带的引导器,boot0阶段

Fixit# gpart bootcode -b /mnt2/boot/boot0 ad4
ad4 has bootcode

boot1阶段

Fixit# dd if=/mnt2/boot/zfsboot of=/dev/ad4s3 count=1

boot2阶段

Fixit# dd if=/mnt2/boot/zfsboot of=/dev/ad4s3a skip=1 seek=1024

加载zfs内核模块

Fixit# kldload /mnt2/boot/kernel/opensolaris.ko
Fixit# kldload /mnt2/boot/kernel/zfs.ko

创建ZFS存储池

Fixit# zpool create tank /dev/ad4s3a
Fixit# zpool set bootfs=tank tank

文件系统校验使用fletcher4方式

Fixit# zfs set checksum=fletcher4 tank

创建ZFS文件目录结构

Fixit# zfs create -o compression=on -o exec=on -o setuid=off tank/tmp
Fixit# chmod 1777 /tank/tmp
Fixit# zfs create tank/usr
Fixit# zfs create tank/home
Fixit# zfs create -o compression=lzjb -o setuid=off tank/usr/ports
Fixit# zfs create -o compression=off -o exec=off -o setuid=off tank/usr/ports/distfiles
Fixit# zfs create -o compression=off -o exec=off -o setuid=off tank/usr/ports/packages
Fixit# zfs create -o compression=lzjb -o exec=off -o setuid=off tank/usr/src
Fixit# zfs create tank/var
Fixit# zfs create -o compression=lzjb -o exec=off -o setuid=off tank/var/crash
Fixit# zfs create -o exec=off -o setuid=off tank/var/db
Fixit# zfs create -o compression=lzjb -o exec=on -o setuid=off tank/var/db/pkg
Fixit# zfs create -o exec=off -o setuid=off tank/var/empty
Fixit# zfs create -o compression=lzjb -o exec=off -o setuid=off tank/var/log
Fixit# zfs create -o compression=gzip -o exec=off -o setuid=off tank/var/mail
Fixit# zfs create -o exec=off -o setuid=off tank/var/run
Fixit# zfs create -o compression=lzjb -o exec=on -o setuid=off tank/var/tmp
Fixit# chmod 1777 /tank/var/tmp

安装FreeBSD到ZFS上

Fixit# cd /dist/8.1*
Fixit# export DESTDIR=/tank
这里推荐先不要释放ports,曾经8.0上释放ports会导致重启
Fixit# for dir in base catpages dict doc games info lib32 manpages; \
     do (cd $dir ; ./install.sh) ; done
Fixit# cd src ; ./install.sh all
Fixit# cd ../kernels ; ./install.sh generic
Fixit# cd /tank/boot ; cp -Rlp GENERIC/* /tank/boot/kernel/
Fixit# cd /
Fixit# zfs set readonly=on tank/var/empty

安装后配置

在rc.conf,src.conf,fstab,loader.conf文件里添加了这些内容就行,不管你使用什么方法ee,vi,echo。都行

Fixit# echo ‘zfs_enable="YES"’ > /etc/rc.conf
Fixit# echo ‘hostname="FreeBSD.tk.local"’ >> /etc/rc.conf
Fixit# echo ‘ifconfig_em0="DHCP"’ >> /etc/rc.conf
Fixit# echo ‘LOADER_ZFS_SUPPORT=YES’ > /tank/etc/src.conf
Fixit# echo ‘zfs_load="YES"’ > /tank/boot/loader.conf
Fixit# echo ‘vfs.root.mountfrom="zfs:tank"’ >> /tank/boot/loader.conf
Fixit# cat << EOF > /tank/etc/fstab
# Device                       Mountpoint              FStype  Options         Dump    Pass#
/dev/ad4s3b                    none                    swap    sw              0       0
EOF

重新编译引导器,添加zfs支持

Fixit# chroot /tank
Fixit# mount -t devfs devfs /dev
Fixit# export DESTDIR=""
Fixit# cd /usr/src/sys/boot/
Fixit# make obj
Fixit# make depend
Fixit# make
Fixit# cd i386/loader
Fixit# make install

设置密码

Fixit# passwd

设置时区

Fixit# tzsetup
Fixit# cd /etc/mail
Fixit# make aliases
Fixit# umount /dev
Fixit# exit

创建zpool.cache

Fixit# mkdir /boot/zfs
Fixit# zpool export tank && zpool import tank
Fixit# cp /boot/zfs/zpool.cache /tank/boot/zfs/zpool.cache
Fixit# export LD_LIBRARY_PATH=/mnt2/lib

修改zfs存储池tank的挂载点

Fixit# zfs set mountpoint=legacy tank
Fixit# zfs set mountpoint=/tmp tank/tmp
Fixit# zfs set mountpoint=/usr tank/usr
Fixit# zfs set mountpoint=/var tank/var
Fixit# zfs set mountpoint=/home tank/home

卸载所有

Fixit# zfs unmount -a

退出,重新引导系统

Fixit# exit

其他

1.有时会出现找不到引导器,重启后就可以引导了,原因不明

2.可能导致Windows7出现引导器修复界面

原文链接:http://wiki.freebsdchina.org/doc/z/zfsbootpartition

在FreeBSD上搭建NTP时间服务器

电脑的时间放置不理的话过不久就会出现误差。
这个误差会反映在email送信时刻的time stamp上,会反映在你的论坛帖子发表时刻上。至少我遇到过这个问题。
网络上有ntp(network time protocol)服务器,提供当前的时刻。我们可以将本地的时刻与ntp服务器的时刻进行同步。

目的如下:
1,启动时用ntpdate进行时刻修正。
2,启动中,通过ntpd进行时刻校正的同时,将各个客户端电脑的时刻也进行同期校正。
3,如果不能找到ntp服务器,那么就使用local time,同时同步客户。

全世界约有100多个ntp服务器,从下面地址找一个离你最近的
http://www.eecis.udel.edu/~mills/ntp/clock1a.html
我选择了两个
clock.nc.fukuoka-u.ac.jp 133.100.9.2
clock.tl.fukuoka-u.ac.jp 133.100.11.8
步骤:

FreeBSD中有两个标准的ntp程序,其一为ntpdate。
ntpdate通过从ntp服务器获取时刻,调整本地时刻。
# ntpdate clock.nc.fukuoka-u.ac.jp
9 Oct 18:12:23 ntpdate: step time server 133.100.9.2 offset -19.112674
大约有19秒钟的误差

自动设定
# grep ntpdate /etc/defaults/rc.conf >>/etc/rc.conf
# vi /etc/rc.conf
ntpdate_enable="YES" # Run ntpdate to sync time on boot (or NO).
ntpdate_program="ntpdate" # path to ntpdate, if you want a different one.
ntpdate_flags="clock.nc.fukuoka-u.ac.jp" # Flags to ntpdate (if enabled).
重新启动以后就运行了,当然设定没有完,不必急着启动
FreeBSD的另一个标准ntp程序,ntp
ntp程序使的获取ntp时刻的同时,向其他pc提供时刻。

添加文件ntp.conf:

用来作为标准时刻的ntp服务器我选择了两个
clock.nc.fukuoka-u.ac.jp 133.100.9.2
clock.tl.fukuoka-u.ac.jp 133.100.11.8
同时指定复数个服务器也没有问题,系统会自动选择一个可以信赖的。
这里,为避免多余的DNS数据包传递,我们直接指定IP地址。
server行 server 127.127.1.0 为参考本地时刻时用的地址。然后用fudge指定阶层编号为5,降低其优先度。

接着用restrict对每一个IP地址指定相应的规则。
最后,指定波长校正用的drift文档保存地址。关于这个命令行,具体的含义不太清楚。不过如果没有的话,时间校正起来就会比较慢
# vi /etc/ntp.conf
server 133.100.9.2 #clock.nc.fukuoka-u.ac.jp
server 133.100.11.8 #clock.tl.fukuoka-u.ac.jp
server 127.127.1.0
fudge 127.127.0.1 stratum 5
restrict default ignore
restrict 127.0.0.0 mask 255.0.0.0
restrict 192.168.1.0 mask 255.255.255.0 noquery nopeer notrust
restrict 133.100.9.2 noquery
restrict 133.100.11.8 noquery
driftfile /etc/ntpd.drift
启动测试
# ntpd -p /var/run/ntpd.pid
# tail /var/log/messages
Oct 9 16:46:56 chiwawa ntpd[89409]: ntpd 4.1.0-a Thu Apr 3 08:26:24 GMT 2003 (1)
Oct 9 16:46:56 chiwawa ntpd[89409]: kernel time discipline status 2040
……
Oct 9 16:50:10 chiwawa ntpd[89409]: time set -0.189546 s
看到类似的结果就可以了。

运行测试
ntpd的运行用ntpq命令
# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*clock.nc.fukuok .GPS. 1 u 43 64 37 19.067 -6.884 10.339
+clock.tl.fukuok .GPS. 1 u 36 64 35 19.670 -3.259 2.341
LOCAL(0) LOCAL(0) 5 l 45 64 37 0.000 0.000 0.001
启动后到时刻校正完成需要一点时间。*是第一候补,+是第二。
本地时刻校正完成以后就可以为其他PC提供时刻校正服务了。

自动启动的设定
完成以上设定,确认运行无误以后:
# grep ntpd /etc/defaults/rc.conf >>/etc/rc.conf
# vi /etc/rc.conf
xntpd_enable="YES" # Run ntpd Network Time Protocol (or NO).
xntpd_program="ntpd" # path to ntpd, if you want a different one.
xntpd_flags="-p /var/run/ntpd.pid" # Flags to ntpd (if enabled).

往rc.conf追加上面3行内容,并修改。
客户端PC设定:
UNIX OS
# vi /etc/ntp.conf
server [local ntp server IP] prefer
driftfile /etc/ntpd.drift
或者追加下面内容到crontab,这样,每过一个小时0分的时候就自动更新。
# vi /etc/crontab
0 * * * * root ntpdate [ntp server IP] >/dev/null 2>&1
当然,你的主机其实也是一个客户机,这些内容也可以用上。
Windows
精工的网站上有下载软件,不过是日语的
http://www.seiko-p.co.jp/systems/down/time.html
windows2000自带了sntp机能,请自己研究吧。

原文链接: http://www.bsdlover.cn/html/12/n-112.html

FreeBSD NTP服务器配置笔记

一组服务器里面配置一台NTP服务器也是必要的,可以让所有服务器的时间同步。

一、配置NTP服务器

vi /etc/rc.conf

ntpd_enable="YES"

vi /etc/ntp.conf

server www.freebsd.org prefer
server time.windows.com
server 127.127.1.0
fudge 127.127.0.1 stratum 5

restrict default ignore
restrict 127.0.0.0 mask 255.0.0.0
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap

driftfile /var/db/ntp.drift

启动NTP服务:

/etc/rc.d/ntpd start

二、客户端配置

vi /root/scripts/synctime.sh

#!/bin/sh
/usr/sbin/ntpdate 192.168.0.100 #内网NTP服务器地址

chmod +x /root/scripts/synctime.sh
crontab -e

*/30 * * * * cd /root/scripts;./synctime.sh

这样客户端服务器每半小时就会和NTP服务器同步一次。

FreeBSD NFS架设

FreeBSD下的NFS配置

服务                 描述
nfsd NFS,          为来自NFS客户端的 请求服务。
mountd NFS          挂载服务,处理nfsd(8)递交过来的请求。
rpcbind             此服务允许 NFS 客户程序查询正在被 NFS 服务使用的端口。

配置NFS
NFS的配置过程相对简单。这个过程只需要 对/etc/rc.conf文件作一些简单修改。

安装rpc  #cd /usr/ports/math/rpc  make install clean

在NFS服务器这端,确认/etc/rc.conf 文件里头以下开关都配上了:

nfs_server_enable=”YES”
nfs_server_flags=”-u -t -n 4″
rpc_statd_enable=”YES”
rpc_lockd_enable=”YES”
mountd_flags=”-r”

只要NFS服务被置为enable,mountd 就能自动运行。

在客户端一侧,确认下面这个开关出现在 /etc/rc.conf里头:

nfs_client_enable=”YES”
nfs_client_flags=”-n 4″
像nfsd,-n 4告诉nfsiod运行自己的4个拷贝。

二,设置

etc/exports文件指定了哪个文件系统 NFS应该输出(有时被称为“共享”)。 /etc/exports里面每行指定一个输出的文件系统和哪些机器可以访问该文件系统。在指定机器访问权限的同时,访问选项开关也可以被指定。

格式:

[共享的目录] [主机名1或IP1(参数1,参数2)] [主机名2或IP2(参数3,参数4)]

下面是一些NFS共享的常用参数:

ro                      只读访问
rw                      读写访问
sync                    所有数据在请求时写入共享
async                   NFS在写入数据前可以相应请求
secure                  NFS通过1024以下的安全TCP/IP端口发送
insecure                NFS通过1024以上的端口发送
wdelay                  如果多个用户要写入NFS目录,则归组写入(默认)
no_wdelay               如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
hide                    在NFS共享目录中不共享其子目录
no_hide                 共享NFS目录的子目录
subtree_check           如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check        和上面相对,不检查父目录权限
all_squash              共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash           保留共享文件的UID和GID(默认)
root_squash             root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas           root用户具有根目录的完全管理访问权限
anonuid=xxx             指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx             指定NFS服务器/etc/passwd文件中匿名用户的GID

配置文件/etc/exports内容如下:

$ cat /etc/exports
/home/share 192.168.1.15(rw,sync) *(ro)
配置说明: 对192.168.1.15赋予读写权限,其他机器仅有只读权限。

四.客户端配置

1.查看NFS服务器的输出
#showmount -e 192.168.1.1
2.挂载NFS服务器中的共享目录到本地目录/mnt/下
#mount -t nfs 192.168.1.1:/home  /mnt/
3.卸载系统中已挂载的NFS共享目录
#umount /mnt/
4.修改fstab文件让系统启动时自动挂载NFS文件
#vi /etc/fstab
192.168.1.1:/home    /mnt    nfs     defaults    0 0

五、安全性
———
portmap: 111
NFS: 2049
防止使用IP欺骗和RPC重定向技术通过lo回环进行攻击以及限定授权主机:
iptables -A INPUT -p udp -d 127.0.0.1 –dport 111 -j DROP
iptables -A INPUT -p udp -d 127.0.0.1 –dport 2049 -j DROP
iptables -A INPUT -p udp -s 10.0.0.2 –dport 111 -j ACCEPT
iptables -A INPUT -p udp -s 10.0.0.2 –dport 2049 -j ACCEPT

原文链接:http://blog.chinaunix.net/u/27383/showart_499159.html

FreeBSD 8.0 NFS服务器配置笔记

一组服务器系统里面必然存在一台NFS服务器,实现多服务器的文件共享。
NFS服务器:nfs_server
NFS客户端:host1,host2,host3
共享目录:/share

一、NFS服务器配置

vi /etc/rc.conf

rpcbind_enable="YES"
nfs_server_enable="YES"
mountd_flags="-r"

二、客户端配置

vi /etc/rc.conf

nfs_client_enable="YES"

三、文件共享配置

vi /etc/exports

/share  -alldirs    host1 host2 host3

共享设置好了之后,重启NFS服务器以启动NFS服务。

四、客户端挂载NFS文件系统

mount nfs_server:/share /share

或者写进fstab让系统启动时自动挂载文件系统:
vi /etc/fstab

nfs_server:/share   /share  nfs rw  0   0

权限问题:最好让所有服务器上操作NFS共享文件的用户ID相同。

关于NFS的其他问题请参考FreeBSD手册。

原文链接: http://garey.bsdart.org/2010/11/freebsd-8-0-nfs%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%85%8D%E7%BD%AE%E7%AC%94%E8%AE%B0/