FreeBSD 无控制台远程安装 – mfsBSD

FreeBSD 无控制台远程安装 – mfsBSD

主要参考:

FreeBSD 无远程控制台下的远程安装(中文)

Remote Installation of FreeBSD without a Remote Console(英文)

但是需要注意,这两篇文章是比较老的版本。mfsbsd-2.0的配置参数发生了变化。确定好静态IP信息以后,不知道网卡名字的前提下,需要自动探测网卡驱动

编辑 conf/interfaces.conf

mac_interfaces="ext1"
ifconfig_ext1_mac="00:15:5d:59:05:df"
ifconfig_ext1="inet 192.168.1.108 netmask 255.255.255.0 broadcast 192.168.1.255"

编写MAC地址的时候,FreeBSD探测出来的是小写字符,所以,如果写成类似,00:15:5D:59:05:DF, script/interfaces脚本中的 if [ “$_mac” = “$_cmac” ]; 就会失败,网卡就无法设置成功。

在conf/rc.conf中,不需要加入ifconfig_{$if}配置,当然不能忘记缺省路由:

defaultrouter="192.168.1.1"

在conf/loader.conf文件中,关闭hdcp

#mfsbsd.autodhcp="YES"
其他配置,authorized_keys,resolv.conf,ttys。。。。。。

最后:

# cd /root/mfsbsd-2.0
# make 或 make iso
FreeBSD 9.0以上版本,用bsdinstall安装,其他不再赘述。

原文链接:https://wiki.freebsdchina.org/howto/i/remote_installation_without_console

FreeBSD 9.0 的 GPT 纯 ZFS 安装

FreeBSD 9.0 的 GPT 纯 ZFS 安装

注意

由于 FreeBSD 9.0 采用了新的 bsdinstall,官方的 WIKI 指出,原先的 GPT ZFS boot 安装方法可能会不适用(未验证),故有此文。

本文介绍的是基于 GPT 以 ZFS 为根分区安装 FreeBSD 9.0-Release。
本文基于 官网这篇文章 翻译而来,并且实际操作过。
原文修订日期(注意更新): 2012-05-01 19:57:09 by PaulChvostek

4K对齐:

下文出现 gpart add 的地方增加参数 -a 4k
创建 zpool 之前,执行 gnop create -S 4096 ada0p3(第三个分区,-S为大写)
创建 zpool 时,/dev/gpt/disk0 改为 ada0p3.nop
zpool export 之后 import 之前,执行 gnop destroy ada0p3.nop

步骤

1.从 FreeBSD 的 CD1安装盘/DVD安装盘/USB Memstick 启动

2.进入安装界面后,到了 「Partitioning」(分区)这一步时,选择 「Shell」 选项

3.创建分区

#1.将硬盘设为 GPT 分区格式。
#
gpart create -s gpt ada0 #假设你有两块硬盘,这是第一块。
gpart create -s gpt ada1 #没有第二块硬盘则略过。
#2.在第一块硬盘上,分别创建标签(label)名为 boot0, swap0, disk0 这三个分区,最后把引导码写入第1个分区,即 boot0。
#
#gpart add:添加分区
#    -s 指定分区大小,-t 指定分区类型,
#    -l 指定标签名字,可以自由取名,记得前后一致,
#    ada0 是 /dev 下面的设备名字,这里是第一块硬盘。
#
#gpart bootcode: 安装引导码
#    -b -p (无需改动,照抄即可)
#    -i 指定分区的编号,从1开始。这里第一个创建的是 boot0,要写入 boot0, 所以是1。
#
gpart add -s 64K -t freebsd-boot -l boot0 ada0
gpart add -s 8G -t freebsd-swap -l swap0 ada0
gpart add -t freebsd-zfs -l disk0 ada0
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0
#针对第二块硬盘,没有则略过。
gpart add -s 64K -t freebsd-boot -l boot1 ada1
gpart add -s 8G -t freebsd-swap -l swap1 ada1
gpart add -t freebsd-zfs -l disk1 ada1
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada1
#3.创建 zpool 和 zfs
#
#「zroot」是zpool的名字,可随意起名,注意保持一致。
#如果你有两块硬盘,可用 mirror(RAID 1) 模式组建。
zpool create -o altroot=/mnt zroot mirror /dev/gpt/disk0 /dev/gpt/disk1
#如果你只有一块硬盘
zpool create -o altroot=/mnt zroot /dev/gpt/disk0
#下列分区跟据需要自行修改
zfs create zroot/tmp
chmod 1777 /mnt/tmp
zfs create zroot/usr
zfs create zroot/var
zfs create zroot/home
exit

4.退出 shell 之后,继续安装

5.当问及「create partitions」(创建分区)时,选择「Shell」,然后直接输入 exit (刚才我们已经分好了)

6.安装和配置结束后,选择「Live CD」选项,以用户名 root 登录

7.修正挂载点和 cachefile(zpool缓存文件,记录了存储池的所有配置信息)

echo ‘zfs_enable="YES"’ >> /mnt/etc/rc.conf
echo ‘zfs_load="YES"’ >> /mnt/boot/loader.conf
echo ‘vfs.root.mountfrom="zfs:zroot"’ >> /mnt/boot/loader.conf
zfs unmount -a
zpool export zroot
zpool import -o cachefile=/tmp/zpool.cache -o altroot=/mnt zroot
zfs set mountpoint=/ zroot
cp /tmp/zpool.cache /mnt/boot/zfs/
zfs unmount -a
zpool set bootfs=zroot zroot
zpool set cachefile=” zroot
zfs set mountpoint=/tmp zroot/tmp
zfs set mountpoint=/usr zroot/usr
zfs set mountpoint=/var zroot/var
zfs set mountpoint=/home zroot/home

8.输入 reboot,完成安装

 

原文链接:https://wiki.freebsdchina.org/doc/z/gptzfsboot

安装与配置nginx下的php (PHP-FPM模式)

如何:安装与配置nginx下的php (PHP-FPM模式)

准备工作

使用FreeBSD的Ports安装软件时,请一定先把Ports更新到最新版本

#portsnap fetch update

如果你是第一次使用portsnap,可能需要先执行

#portsnap extract

安装并启用nginx服务

首先,安装nginx:

#cd /usr/ports/www/nginx
#make install clean

在出现的选项中,可能有一些你不熟悉的选项存在,如果你不明白各个选项的含义,可以用下面的默认值:

[X] HTTP_MODULE               Enable HTTP module
[X] HTTP_ADDITION_MODULE      Enable http_addition module
[X] HTTP_CACHE_MODULE         Enable http_cache module
[X] HTTP_DAV_MODULE           Enable http_webdav module
[X] HTTP_FLV_MODULE           Enable http_flv module
[X] HTTP_GEOIP_MODULE         Enable http_geoip module
[X] HTTP_GZIP_STATIC_MODULE   Enable http_gzip_static module
[X] HTTP_IMAGE_FILTER_MODULE  Enable http_image_filter module
[X] HTTP_PERL_MODULE          Enable http_perl module
[X] HTTP_RANDOM_INDEX_MODULE  Enable http_random_index module
[X] HTTP_REALIP_MODULE        Enable http_realip module
[X] HTTP_REWRITE_MODULE       Enable http_rewrite module
[X] HTTP_SECURE_LINK_MODULE   Enable http_secure_link module
[X] HTTP_SSL_MODULE           Enable http_ssl module
[X] HTTP_STATUS_MODULE        Enable http_stub_status module
[X] HTTP_SUB_MODULE           Enable http_sub module
[X] HTTP_XSLT_MODULE          Enable http_xslt module

在命令执行完成后,使用编辑器把下面的内容添加到/etc/rc.conf中

nginx_enable="YES"

安装PHP-FPM及相关连的包

以root身份继续执行下面的操作

#cd /usr/ports/devel/pcre
#make install clean
#cd /usr/ports/devel/libtool
#make install clean
#cd /usr/ports/lang/php5
#make install clean
#cd /usr/ports/lang/php5-extensions
#make install clean

在php5-extensions的config页面中,需要勾选PHP-FPM项。

执行完成后,把下面的代码加入/etc/rc.conf以启用PHP-FPM

php_fpm_enable="YES"

同时还要创建一个php.ini文件:

#cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

同时可以编辑php.ini,把里面的timezone设置为Asia/Shanghai或者需要使用的时区。

启动服务

#/usr/local/etc/rc.d/php-fpm start
#/usr/local/etc/rc.d/nginx start

这样就成功启动了服务

配置虚拟主机运行PHP程序

准备网站目录

首先建立网站的目录和日志存放目录,日志即可以配置到/var/logs/nginx下面,也可以配置到任何你希望存放的位置。

mkdir /home/saharabear.com/public_html
mkdir /home/saharabear.com/logs

配置nginx.conf

可以直接参考下面的配置文件来修改/usr/local/etc/nginx/nginx.conf

user  nobody;
worker_processes  1;

error_log  logs/error.log;

pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  ‘$remote_addr – $remote_user [$time_local] "$request" ‘
                      ‘$status $body_bytes_sent "$http_referer" ‘
                      ‘"$http_user_agent" "$http_x_forwarded_for"’;

    sendfile        on;

    keepalive_timeout  65;

    gzip  on;

    # We define the virtual host here
    server {
        listen       208.62.123.122:80;
        server_name  saharabear.com www.saharabear.com;

        access_log  /home/saharabear.com/logs/access.log  main;

        location / {
            root   /home/saharabear.com/public_html;
            index  index.html index.htm index.php;
        }
    # Let nginx know how to handle PHP using fastcgi
        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /home/saharabear.com/public_html$fastcgi_script_name;
            # 上面这一行很重要,别忘了修改这里
            include        fastcgi_params;
        }

        location ~ /\.ht {
            deny  all;
        }
    }
}

重新启动nginx服务器就可以了

#/usr/local/etc/rc.d/nginx restart

配置虚拟主机运行使用Symfony2框架的PHP程序

对于PHP的Symfony2框架,配置nginx可能会有一些不同,比如Symfony2使用app.php和app_dev.php作为前端入口等等,可以参考下面的代码配置Symfony2的PHP程序

    server {
        listen       80;
        server_name  test.saharabear.com ;
        root /home/test.saharabear.com/symfony/web;
        charset utf-8;

        access_log  /home/test.saharabear.com/logs/access.log  main;
        error_log /home/test.saharabear.com/logs/errors.log;
        # strip app.php/ prefix if it is present
        rewrite ^/app\.php/?(.*)$ /$1 permanent;

        location / {
          index app.php;
          try_files $uri @rewriteapp;
        }

        location @rewriteapp {
          rewrite ^(.*)$ /app.php/$1 last;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ ^/(app|app_dev)\.php(/|$) {
          fastcgi_pass   127.0.0.1:9000;
          fastcgi_split_path_info ^(.+\.php)(/.*)$;
          include fastcgi_params;
          fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
          fastcgi_param  HTTPS              off;
        }

        # deny access to .htaccess files, if Apache’s document root
        # concurs with nginx’s one
        #
        location ~ /\.ht {
            deny  all;
        }
    }

原文链接:https://wiki.freebsdchina.org/howto/n/php_php-fpm_nginx

FreeBSD下简易Http代理服务器安装笔记(Squid)

FreeBSD下简易Http代理服务器安装笔记(Squid)

一、更新ports
# csup -L 2 -h cvsup.freebsdchina.org /usr/share/examples/cvsup/ports-supfile

二、安装Squid
# cd /usr/ports/www/squid
# make install clean

三、生成密码文件
# htpasswd -c /usr/local/etc/squid/password username
输入两次密码即可生成密码文件

四、配置
# vi /usr/local/etc/squid/squid.conf

http_port 3128
cache_dir null /var/squid/cache/
cache_access_log /var/squid/logs/access.log
cache_log /var/squid/logs/cache.log
cache_store_log /var/squid/logs/store.log

acl all src 0.0.0.0/0

auth_param basic program /usr/local/libexec/squid/ncsa_auth /usr/local/etc/squid/password
auth_param basic children 5
auth_param basic credentialsttl 2 hours
auth_param basic realm bsdart.org
acl auth_user proxy_auth REQUIRED
http_access allow auth_user

五、建立缓存
# /usr/local/sbin/squid -z

六、启动服务
# vi /etc/rc.conf

squid_enable="YES"

# /usr/local/etc/rc.d/squid start

原文链接:http://dinggd.com/2012/11/freebsd%E4%B8%8B%E7%AE%80%E6%98%93http%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%AE%89%E8%A3%85%E7%AC%94%E8%AE%B0squid/

FreeBSD下remind的安装

FreeBSD下remind的安装

remind 是一款非常优秀的记事软件,它小巧却不失功能强大,凡是涉及时间表的事情都可以交给它来做。

下面我们将用它实现:开机时系统用语音或文字提醒今天要做的事情。步骤如下:

安装 remind

配置.reminders(我把这个文件放在/backup下,放在哪里无所谓,由用户自己定)如下:

###################################
# File: .reminders                #
# Reminder file for "remind"      #
#                                 #
# Usage:                          #
# vi /backup/.reminders           #
# chmod 644 .reminders            #
#                                 #
# To test:                        #
# remind -gaa /backup/.reminders  #
###################################
# Switch off the normal banner
BANNER Hello, IOU. Today is %w.

##########################
###### Things to do ######
##########################
REM Mon MSG The course of statistical machine learning.
REM Sat MSG The course of probability theory and mathematical statistics.
REM Sat MSG Meet the student.
REM     MSG The model of Bayesian kernel methods.

##################################
###### Sort the todo things ######
##################################
FSET sortbanner(x) iif(x == today(), "You have the following things to do.", "And, the other things %b.")

安装语音合成软件

安装 festival 和 festvox-kal16。或者 flite,它是 festival 的替代品,但体积小,效率高。

festival 是非常优秀的 text-to-speech(TTS)软件,爱丁堡大学的成果。 festvox-kal16 用的是 CMU 的词典(CMU 的语音合成和语音识别做的也特别好)。

配置 rc.conf

在/etc/rc.conf中加入

clear_tmp_enable="YES"

每次退出系统时清空 /tmp

脚本

在 /usr/local/etc/rc.d/ 中做脚本 VoiceRemind.sh,如下

#!/bin/sh
#/usr/local/etc/rc.d/VoiceRemind.sh
echo -n ‘ VoiceRemind’

case "$1" in
start)
  /usr/local/bin/remind -gaa /backup/.reminders > /tmp/.VoiceRemind
  ;;
stop)
  kill -9 `cat /var/run/remind.pid`
  ;;
*)
  echo "Usage: `basename $0` {start|stop}" >&2
  exit 64
  ;;
esac
exit 0

每次boot时,自动运行 remind 并将生成的显示存到 /tmp 下,这就是为啥要退出系统时清空 /tmp 了。当然,不这么做也行,毕竟“>”是创造新文件。不过清空 /tmp 也没啥坏处。 好了,试一下

remind /backup/.reminders | festival –tts

看是否好用。若有正确的语音提示,接着做下一步。否则,回头检查一下前面的步骤。

原文链接:http://wiki.freebsdchina.org/software/r/remind

musicpd + mpc:最简易的音乐播放器(FreeBSD)

musicpd + mpc:最简易的音乐播放器(FreeBSD)

musicpd 简称为 MPD,它是音乐伺服器。此文介绍如何在 FreeBSD 下用 MPC + MPD 听音乐,打造内存消耗最少,组合功能最强的音乐播放器。

为何选用 MPD + MPC?

在/usr/ports/audio 下有很多不错的音乐播放器,如 beep-media-player、mpg123 等。而我更喜欢 mpc(需要安装MusicPD),简洁是我选择它的理由。每次开机自动打开守护程序 MusicPD(简称 mpd),这如同一个潜在的点歌器,终端下用 mpc 就能选听自己喜欢的歌曲,不需要任何界面,也不必为音乐播放器单开一个桌面。

mpc 和 conky 结合,可以做出开机音乐;mpc 和 remind 结合用音乐来提醒某些事情,譬如用《生日快乐》提醒朋友的生日等。守护程序 mpd 就像一个功能强大的点歌器,你可以轻松地选择你喜爱的歌手、专辑,毫不逊于 GUI 的音乐播放器。mpc 是简洁的,用 mpc play 40,我可以从第 40 首歌曲开始,用鼠标哪有如此快捷呢。mpc 是弹性的,开个玩笑,mpc 能播素数序列的歌曲,2,3,5,7,9,11,13,……,试问天下哪个 GUI 的播放器能做到这一点?我们还可以用 conky 在桌面上显示 mpd 的情况,显示歌曲名,显示歌手名,显示播放进程等,设计我们自己的音乐播放器,够酷吧。

MusicPD 的安装

安装一点儿都不困难,只需记住一点:在 mpd 的 port 里通过 make config,或者直接修改 Makefile,选中“Support for id3v1 tag encoding”一项,这样才能让 conky 获取 mp3 文件中的一些信息,如 artist、title 等。我们将利用 conky 把 mpd 的状态信息显示于桌面上,做一个自己喜欢的音乐播放器界面。

对 mpd.conf 的配置

以root身份运行

# cp /usr/local/share/doc/mpd/mpdconf.example /usr/local/etc/mpd.conf

编辑 mpd.conf 如下:

music_directory        "/backup/multimedia"   ## 此处是音乐存放处                                          
playlist_directory     "/home/IOU/.mpd/playlists" ## 此处是mpd配置文件存放处
db_file                "/home/IOU/.mpd/mpd.db"    ## 这些都是用户自己设定
log_file               "/home/IOU/.mpd/mpd.log"
pid_file               "/home/IOU/.mpd/mpd.pid"
state_file             "/home/IOU/.mpd/mpdstate"
user                   "IOU"  ## 除了root用户,能操控mpd的其他用户
filesystem_charset     "UTF-8" ## “iconv  -l”一下,看系统支持的编码
id3v1_encoding         "GBK"
mixer_type             "software"
audio_output {
  type                 "oss"
  name                 "Sound Card"
}

有关 filesystem_charset 的设置,也可以通过

$ locale

来搞清楚。譬如,我选 eucCN 是因为

IOU@~$ locale
LANG=zh_CN.eucCN
LC_CTYPE="zh_CN.eucCN"
LC_COLLATE="zh_CN.eucCN"
LC_TIME="zh_CN.eucCN"
LC_NUMERIC="zh_CN.eucCN"
LC_MONETARY="zh_CN.eucCN"
LC_MESSAGES="zh_CN.eucCN"
LC_ALL=zh_CN.eucCN

其他设置

在 /etc/rc.conf 中添加

musicpd_enable="YES"

以 root 身份运行

# musicpd /usr/local/etc/mpd.conf

系统将自动搜索机器上的歌曲,并将信息存放于 /home/IOU/.mpd 下。

$ mpc listall | mpc add

将所有歌曲载入播放列表。在 console 下键入

$ mpc play 10

便开始从第10首歌曲开始播放。

也可以先查看一下有哪些艺术家的作品,

$ mpc list artist

譬如,在上面命令的结果中发现了“许巍”,而你现在想听他的歌。

$ mpc search artist 许巍 | mpc add
$ mpc play

就开始了我们的音乐之旅。

mpc 提供的搜索内容相当丰富,有

<any|Artist|Album|AlbumArtist|Title|Track|Name|Genre|Date|Composer|Performer
|Comment|Disc|MUSICBRAINZ_ARTISTID|MUSICBRAINZ_ALBUMID|MUSICBRAINZ_ALBUMARTISTID|MUSICBRAINZ_TRACKID>

有关mpc的命令行的细节,譬如搜索啦,音量啦,man mpc自己慢慢看吧。

原文链接:http://wiki.freebsdchina.org/software/m/mpd

FreeBSD 9.0 安装入门教程

FreeBSD 9.0 安装入门教程

在 ftp 中看到了 9.0 的 release 安装镜像于是没事 down 过来捣腾一下。貌似安装过程有了新的变化,于是又了这个入门的东东,水平有限,欢迎指正,谢谢。

所有测试没有使用物理机安装,采用的是 VirtualBox 4.1.8 ,本人机器上面的 VM 版本过老,无法安装。
硬件配置 内存分配了 512M 硬盘分配了 4G
CPU 是 intel 的 所以下载的是 I386 版本的

安装开始
1、 安装 log 界面换了

image

PS:实话说 那个东东我看了半天都木有分清楚是猫科类动物还是什么生物。

2、 选择【1】安装 10 秒默认安装

3、 安装界面确实不同了,开始估计会不习惯,不过没关系,新的安装其实更加简单的。

image

3 个选项 第一安装,第二个是shell 估计也可以用来安装吧,水平有限木有尝试,最后一个
是光盘镜像系统,估计用来处错使用的。
选择【install】回车即可

4、询问选择键盘

image

无特殊要求 选择【yes】

5、选择键盘语言种类

image

默认吧

6、设置hostname

image

可以按 【esc】 跳过,建议设置

7、选择需要安装的资源
第一个是 doc 文档估计是帮助文档,说明文档之类的
第二个是 games
第三个是ports 树(建议不要选择,安装比较耗时,我用虚拟机安装到最后报错)
第四个是 src 源代码呗。

image

按空格选择 上下键移动

8、硬盘分区设置
第一个是安装他的步骤引导操作
第二个应该是专家模式的
第三个是shell 模式

image

选择【Guided】

9、配置分区
第一个是整个硬盘
第二个是选择分区(木有尝试成功)

image

选择 【entire disk】

10、分区设置
若是以前安装过早期版本的freebsd 估计这个懂的
你若是需要配置硬盘分区大小就在这里设置
一般是 auto 然后 finish

image

这个是数据提醒

image

配置好后 选择 【finish】

11、选择 提交 【commit】

image

12、格式化完就好开始验证文件 然后 就开始安装了
若是在 第7 步没有选择 games 和port 就只有两项

image

开始安装 比较耗时 如果选择了 ports

image

13、安装完开始系统配置

设置密码

image

14、配置网卡

image

是否配置IPv4

image

是否DHCP 看个人需求配置

image

配置IP 地址

image

image

有配置IPV6 的选项

15、时间配置
在国内要配置时区

image

image

16、用户配置
可以以后进行配置。

image

好差不多完成了
若是刚配置的有问题可以在这里可以进行综合一点的配置。

image

如服务配置
可以开启鼠标。

image

基本完成重启吧。

image

附安装后的图片

image

提示若是不习惯使用新版本的安装向导完全可以使用原来的安装配置

只要 root 用户输入 sysinstall 即可

image

若是大牛说,新版本安装方式很烂啊,完全不习惯怎么办呢?
很简单啦,在第3 部直接选择 【shell】
然后输入 sysinstall 嘿嘿,老的方式安装,
水平有限,大家若是想用鸡蛋砸我,真心请不要那样。

By Ndk 2012-1-8
谢谢。
PS:哪天有时间折腾一个FreeBSD 9.0 + Gnome 的入门教程

FreeBSD下安装lighttpd

安装 lighttpd 於 FreeBSD

作者:zeissoctopus

以下是我安装和配置 lighttpd 1.4.29 万维网服务器於 FreeBSD 8-Stable 的笔记。我会启动以下几项功能:

SSL
lighttpd 的 simple namebase virtualhost
FastCGI 支援 PHP

1: 安装软件

从 ports 编译安装 lighttpd 入 FreeBSD

% cd /usr/ports/www/lighttpd
% su root
# make install
# make clean
# exit

以下是我用 ports 编译 lighttpd 时所选择的选项

WITHOUT_BZIP2    true
WITHOUT_CML    true
WITHOUT_FAM    true
WITHOUT_GDBM    true
WITH_IPV6    true
WITHOUT_LIBEV    true
WITHOUT_MAGNET    true
WITHOUT_MEMCACHE    true
WITHOUT_MYSQL    true
WITHOUT_MYSQLAUTH    true
WITHOUT_NODELAY    true
WITHOUT_OPENLDAP    true
WITH_OPENSSL    true
WITHOUT_SPAWNFCGI    true
WITHOUT_VALGRIND    true
WITHOUT_WEBDAV    true
FreeBSD 默认 Httpd 使用者身份是 www:www

2: 安排网站的文件目录

lighttpd 执行时,会产生一些文件。lighttpd 也会找寻网站实际放置的位置。因此需要事先安排妥当。因为我只需要 lighttpd 为一个 domain 服务,所以我只需要依 从 simple virtualhost 规则建立网站的目录结构。然而所有文件位置皆可以自由安排,本例子是依从我个人喜好来决定而已。

lighttpd 执行时产生的文件

image

lighttpd 的 simple namebase virtualhost 目录安排

除了根目录外,其余皆以 virtual host 网站名称来命名目录

image

3: 配置 FreeBSD ports 里的 lighttpd

在 FreeBSD 里默认配置文件的位置

image

有关本例子载入配置文件的次序

本例子会启动 Lighttpd 的 ssl、fastcgi 和 simple_vhost 模块,因此有关配置文件会按以 下次序读入:

/usr/local/etc/lighttpd/lighttpd.conf
/usr/local/etc/lighttpd/modules.conf
/usr/local/etc/lighttpd/conf.d/fastcgi.conf
/usr/local/etc/lighttpd/conf.d/simple_vhost.conf
换言之,本例子只需要适当修改以上4个配置文件。

lighttpd.conf 内容

#######################################################################
##
## /usr/local/etc/lighttpd/lighttpd.conf
##
#######################################################################
 
#######################################################################
##
## 定义有些有关目录的变量
##
var.log_root    = "/var/log/lighttpd"
var.state_dir   = "/var/run"
var.home_dir    = "/var/spool/lighttpd"
var.conf_dir    = "/usr/local/etc/lighttpd"
 
##
## Virutal Hosts 的根目录
##
## 用于以下模块:
## conf.d/evhost.conf
## conf.d/simple_vhost.conf
## vhosts.d/vhosts.template
##
var.vhosts_dir  = "/home/www"
 
##
## CGI/FastCGI socket 目录
##
## 用于以下模块:
## conf.d/fastcgi.conf
## conf.d/scgi.conf
##
var.socket_dir  = "/var/lib/lighttpd/sockets"
 
##
#######################################################################
 
#######################################################################
##
## 载入模块定义文件
include "modules.conf"
 
##
#######################################################################
 
#######################################################################
##
##  Lighttpd 基本设定
## ———————
##
server.port = 80
 
## 用否 IPv6?
server.use-ipv6 = "disable"
 
## 缚紧 IP
server.bind = "127.0.0.1"
 
## Lighttpd 以什么身份执行.
server.username  = "www"
server.groupname = "www"
 
## Server: 回应字串
server.tag = "lighttpd"
 
## Lighttpd 的 pid 文件
server.pid-file = state_dir + "/lighttpd.pid"
 
## 默认文件目录
server.document-root = "/home/www/example.org/htdocs/"
 
##
#######################################################################
 
#######################################################################
##
##  Logging 选项
## ——————
##
server.errorlog             = log_root + "/lighttpd-error.log"
 
##
## Access log config
##
include "conf.d/access_log.conf"
 
##
## The debug options are moved into their own file.
## see conf.d/debug.conf for various options for request debugging.
##
include "conf.d/debug.conf"
 
##
#######################################################################
 
#######################################################################
##
##  Tuning/Performance
## ——————–
##
server.event-handler = "freebsd-kqueue"
 
##
## The basic network interface for all platforms at the syscalls read()
## and write(). Every modern OS provides its own syscall to help network
## servers transfer files as fast as possible
##
## linux-sendfile – is recommended for small files.
## writev         – is recommended for sending many large files
##
server.network-backend = "writev"
 
##
## As lighttpd is a single-threaded server, its main resource limit is
## the number of file descriptors, which is set to 1024 by default (on
## most systems).
##
## If you are running a high-traffic site you might want to increase this
## limit by setting server.max-fds.
##
## Changing this setting requires root permissions on startup. see
## server.username/server.groupname.
##
## By default lighttpd would not change the operation system default.
## But setting it to 2048 is a better default for busy servers.
##
server.max-fds = 2048
 
##
## Stat() call caching.
##
## lighttpd can utilize FAM/Gamin to cache stat call.
##
## possible values are:
## disable, simple or fam.
##
server.stat-cache-engine = "simple"
 
##
## Fine tuning for the request handling
##
## max-connections == max-fds/2 (maybe /3)
## means the other file handles are used for fastcgi/files
##
server.max-connections = 1024
 
##
## How many seconds to keep a keep-alive connection open,
## until we consider it idle.
##
## Default: 5
##
server.max-keep-alive-idle = 5
 
##
## How many keep-alive requests until closing the connection.
##
## Default: 16
##
server.max-keep-alive-requests = 16
 
##
## Maximum size of a request in kilobytes.
## By default it is unlimited (0).
##
## Uploads to your server cant be larger than this value.
##
server.max-request-size = 0
 
##
## Time to read from a socket before we consider it idle.
##
## Default: 60
##
server.max-read-idle = 60
 
##
## Time to write to a socket before we consider it idle.
##
## Default: 360
##
server.max-write-idle = 360
 
##
##  Traffic Shaping
## —————–
##
## see /usr/share/doc/lighttpd/traffic-shaping.txt
##
## Values are in kilobyte per second.
##
## Keep in mind that a limit below 32kB/s might actually limit the
## traffic to 32kB/s. This is caused by the size of the TCP send
## buffer.
##
## per server:
##
server.kbytes-per-second = 128
 
##
## per connection:
##
connection.kbytes-per-second = 32
 
##
#######################################################################
 
#######################################################################
##
##  Filename/File handling
## ————————
 
##
## files to check for if …/ is requested
## index-file.names            = ( "index.php", "index.rb", "index.html",
##                                 "index.htm", "default.htm" )
##
index-file.names += (
  "index.xhtml", "index.html", "index.htm", "index.php"
)
 
##
## deny access the file-extensions
##
## ~    is for backupfiles from vi, emacs, joe, …
## .inc is often used for code includes which should in general not be part
##      of the document-root
url.access-deny             = ( "~", ".inc" )
 
##
## disable range requests for pdf files
## workaround for a bug in the Acrobat Reader plugin.
##
$HTTP["url"] =~ "\.pdf$" {
  server.range-requests = "disable"
}
 
##
## which extensions should not be handle via static-file transfer
##
## .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi
##
static-file.exclude-extensions = ( ".php", ".php5", ".pl", ".fcgi", ".scgi" )
 
##
## mimetype mapping
##
include "conf.d/mime.conf"
 
##
## directory listing configuration
##
include "conf.d/dirlisting.conf"
 
##
## Should lighttpd follow symlinks?
##
server.follow-symlink = "disable"
 
##
## force all filenames to be lowercase?
##
server.force-lowercase-filenames = "disable"
 
##
## defaults to /var/tmp as we assume it is a local harddisk
##
server.upload-dirs = ( "/var/tmp" )
 
##
#######################################################################
 
#######################################################################
##
## SSL Settings
##
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/usr/local/etc/ssl/crt/YourHost.pem"
ssl.use-sslv3 = "enable"
ssl.cipher-list = "TLSv1+HIGH:SSLv3+HIGH:!aNULL:!eNULL:!3DES:@STRENGTH"
}
 
##
#######################################################################
 
#######################################################################
##
## Simple virtual host
##
 
$HTTP["host"] != "wiki.example.org" {
accesslog.filename = log_root + "/example.org-access.log"
}
 
 
$HTTP["host"] == "wiki.example.org" {
accesslog.filename = log_root + "/wiki.example.org-access.log"
}

modules.conf 内容

#######################################################################
##
##  Modules to load
## —————–
##
## at least mod_access and mod_accesslog should be loaded
## all other module should only be loaded if really neccesary
##
## – saves some time
## – saves memory
##
## the default module set contains:
##
## "mod_indexfile", "mod_dirlisting", "mod_staticfile"
##
## you dont have to include those modules in your list
##
## Modules, which are pulled in via conf.d/*.conf
##
## NOTE: the order of modules is important.
##
## – mod_accesslog     -> conf.d/access_log.conf
## – mod_compress      -> conf.d/compress.conf
## – mod_status        -> conf.d/status.conf
## – mod_webdav        -> conf.d/webdav.conf
## – mod_cml           -> conf.d/cml.conf
## – mod_evhost        -> conf.d/evhost.conf
## – mod_simple_vhost  -> conf.d/simple_vhost.conf
## – mod_mysql_vhost   -> conf.d/mysql_vhost.conf
## – mod_trigger_b4_dl -> conf.d/trigger_b4_dl.conf
## – mod_userdir       -> conf.d/userdir.conf
## – mod_rrdtool       -> conf.d/rrdtool.conf
## – mod_ssi           -> conf.d/ssi.conf
## – mod_cgi           -> conf.d/cgi.conf
## – mod_scgi          -> conf.d/scgi.conf
## – mod_fastcgi       -> conf.d/fastcgi.conf
## – mod_proxy         -> conf.d/proxy.conf
## – mod_secdownload   -> conf.d/secdownload.conf
## – mod_expire        -> conf.d/expire.conf
##
 
server.modules = (
  "mod_access",
  "mod_alias",
  "mod_auth",
#  "mod_evasive",
  "mod_redirect",
  "mod_rewrite",
  "mod_setenv",
#  "mod_usertrack",
)
 
##
#######################################################################
 
#######################################################################
##
##  Config for various Modules
##
 
##
## mod_ssi
##
#include "conf.d/ssi.conf"
 
##
## mod_status
##
#include "conf.d/status.conf"
 
##
## mod_webdav
##
#include "conf.d/webdav.conf"
 
##
## mod_compress
##
#include "conf.d/compress.conf"
 
##
## mod_userdir
##
#include "conf.d/userdir.conf"
 
##
## mod_magnet
##
#include "conf.d/magnet.conf"
 
##
## mod_cml
##
#include "conf.d/cml.conf"
 
##
## mod_rrdtool
##
#include "conf.d/rrdtool.conf"
 
##
## mod_proxy
##
#include "conf.d/proxy.conf"
 
##
## mod_expire
##
#include "conf.d/expire.conf"
 
##
## mod_secdownload
##
#include "conf.d/secdownload.conf"
 
##
#######################################################################
 
#######################################################################
##
## CGI modules
##
 
##
## SCGI (mod_scgi)
##
#include "conf.d/scgi.conf"
 
##
## FastCGI (mod_fastcgi)
##
include "conf.d/fastcgi.conf"
 
##
## plain old CGI (mod_cgi)
##
#include "conf.d/cgi.conf"
 
##
#######################################################################
 
#######################################################################
##
## VHost Modules
##
##  Only load ONE of them!
## ========================
##
 
##
## You can use conditionals for vhosts aswell.
##
## see http://www.lighttpd.net/documentation/configuration.html
##
 
##
## mod_evhost
##
#include "conf.d/evhost.conf"
 
##
## mod_simple_vhost
##
include "conf.d/simple_vhost.conf"
 
##
## mod_mysql_vhost
##
#include "conf.d/mysql_vhost.conf"
 
##
#######################################################################

fastcgi.conf 内容

以下 fastcgi.conf 仅支援 PHP5,并以 socket 方式来连接 Lighttpd 和 FastCGI Daemon,在 FreeBSD 里,php-cgi 是放在 /usr/local/bin 目录。

#######################################################################
##
##  FastCGI Module
## —————
##
## http://www.lighttpd.net/documentation/fastcgi.html
##
server.modules += ( "mod_fastcgi" )
 
##
## PHP Example
## For PHP don’t forget to set cgi.fix_pathinfo = 1 in the php.ini.
##
## The number of php processes you will get can be easily calculated:
##
## num-procs = max-procs * ( 1 + PHP_FCGI_CHILDREN )
##
## for the php-num-procs example it means you will get 17*5 = 85 php
## processes. you always should need this high number for your very
## busy sites. And if you have a lot of RAM. 🙂
##
fastcgi.server = ( ".php" =>
                   ( "php-local" =>
                     (
                       "socket" => socket_dir + "/php-fcgi.socket",
                       "bin-path" => "/usr/local/bin/php-cgi",
                       "bin-environment" => (
                         "PHP_FCGI_CHILDREN" => "8",
                         "PHP_FCGI_MAX_REQUESTS" => "10000",
                       ),
                       "max-procs" => 1,
                       "broken-scriptfilename" => "enable",
                     )
                   ),
                )
simple_vhost.conf 内容

simple_vhost.conf
#######################################################################
##
##  Simple Virtual hosting
## ————————
##
## http://www.lighttpd.net/documentation/simple-vhost.html
##
server.modules += ( "mod_simple_vhost" )
 
##  If you want name-based virtual hosting add the next three settings and load
##  mod_simple_vhost
##
## document-root =
##   virtual-server-root + virtual-server-default-host + virtual-server-docroot
## or
##   virtual-server-root + http-host + virtual-server-docroot
##
simple-vhost.server-root   = vhosts_dir + "/"
simple-vhost.default-host  = "example.org"
simple-vhost.document-root = "htdocs"
 
##
## Print some errors for finding the document-root
##
#simple-vhost.debug = "enable"
 
##
#######################################################################

4: 启动 Lighttpd 服务

请在 /etc/rc.conf 加入以下一行。那么每次重启 FreeBSD 皆会自动启动 Lighttpd

lighttpd_enable="YES"

不想重启 FreeBSB,立即启动 Lighttpd 的话,按上面修改 /etc/rc.conf 后输入以下命令便可。

% su –
# service lighttpd start
# exit

原文链接:http://wiki.freebsdchina.org/doc/l/lighttpd_1_14_29

在GPT盘的ZFS上安装FreeBSD8

在GPT盘的ZFS上安装FreeBSD8

本文参考了Installing FreeBSD Root on ZFS using GPT

通过DVD或者Memstick启动,选择Fixit。

硬盘gpt分区

创建gpt盘

gpart create -s gpt ad0

创建引导区

gpart add -s 64K -t freebsd-boot ad0

创建swap分区(标记label,避免将来硬盘接口改变导致无法识别)

gpart add -s 8G -t freebsd-swap -l swap0 ad0

创建用于zfs的分区

gpart add -t freebsd-zfs ad0

写入freebsd的zfs引导

gpart bootcode -b /mnt2/boot/pmbr -p /mnt2/boot/gptzfsboot -i 1 ad0

创建zpool

加载zfs模块

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

创建zpool

mkdir /boot/zfs
zpool create zroot ad0p3
zpool set bootfs=zroot zroot

创建zfs分区(计划通过md加载/tmp,所以在这里没有建立/tmp)

zfs create zroot/var
zfs create zroot/usr
zfs create zroot/home

安装系统

export DESTDIR="/zroot"
cd /dist/8.*
cd base && ./install.sh
cd ../lib32 && ./install.sh
cd ../manpages && ./install.sh
cd ../src && ./install.sh all
cd ../kernels && ./install.sh generic
cp -Rlpv /zroot/boot/GENERIC/* /zroot/boot/kernel/

配置基础系统和zfs引导配置

chroot /zroot

基础配置文件

/etc/src.conf

LOADER_ZFS_SUPPORT=YES

/boot/loader.conf

zfs_load="YES"
vfs.root.mountfrom="zfs:zroot"
vfs.root.mountfrom.options="rw"
vfs.zfs.prefetch_disable=0

/etc/rc.conf

hostname="gptzfsboot.freebsd.org"
defaultrouter="10.0.0.1"
ifconfig_re0="inet 10.0.0.1 netmask 255.255.255.0"
tmpmfs="YES"
tmpsize="512M"
zfs_enable="YES"

/etc/resolv.conf

nameserver 8.8.8.8

/etc/fstab

/dev/gpt/swap0 none swap sw 0 0

编译安装支持zfs的bootloader

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

基础的设置命令

passwd

tzsetup

cd /etc/mail && make aliases

退出chroot

umount /dev
exit

完成安装

cp /boot/zfs/zpool.cache /zroot/boot/zfs/
export LD_LIBRARY_PATH=/mnt2/lib
zfs unmount -a
zfs set mountpoint=legacy zroot
zfs set mountpoint=/usr zroot/usr
zfs set mountpoint=/var zroot/var
zfs set mountpoint=/home zroot/home
exit

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

FreeBSD下安装LibreOffice

FreeBSD下安装LibreOffice

LibreOffice安装已经不需要依赖JDK了,所以有没有JDK没什么关系 软件比较大所以最好在有足够时间的情况下执行,本人曾因为中断编译导致出错,没找到解决办法,最后重新开始了。

安装

安装 OpenOffice.org

#cd /usr/ports/editors/libreoffice/ && make install clean

注意:如需简体中文版请加上LOCALIZED_LANG=zh-CN

#make LOCALIZED_LANG=zh-CN install clean

包括的组件

LibreOffice 3.3 Base
使用 Base 管理数据库并创建查询和报表,以对信息进行跟踪和管理。

LibreOffice 3.3 Calc
使用 Calc 进行计算、分析信息以及管理电子表格中的列表。

LibreOffice 3.3 Draw
使用 Draw 创建并编辑图形、流程图和徽标。

LibreOffice 3.3 Impress
使用 Impress 创建并编辑幻灯片、会议和网页中使用的演示文稿。

LibreOffice 3.3 Math
使用 Math 创建并编辑科学公式和方程式。

LibreOffice 3.3 Writer
使用 Writer 创建并编辑信函、报表、文档和网页中的文本和图形。

包安装和中文化

FreeBSD 8.2-RELEASE已经包含libreoffice的编译包,所以升级系统之后可以直接

#pkg_add -r libreoffice

省去了大量的编译时间(人生苦短)。不过这个编译包不含中文语言文件。

经实践可以采用Linux的中文语言包来支持中文化。 在这里http://download.documentfoundation.org/libreoffice/stable/3.3.0/rpm/

根据i386/amd64平台分别选择x86/x86_64。这里以amd64为例,下载

http://download.documentfoundation.org/libreoffice/stable/3.3.0/rpm/x86_64/LibO_3.3.0_Linux_x86-64_helppack-rpm_zh-CN.tar.gz

执行以下命令:

#tar -xvf LibO_3.3.0_Linux_x86-64_helppack-rpm_zh-CN.tar.gz
#cd LibO_3.3.0rc4_Linux_x86-64_langpack-rpm_zh-CN/RPMS/
#mkdir tmp
#cd tmp
#foreach f (`ls ../*rpm`)
foreach? rpm2cpio $f | cpio -i –make-directories
foreach? end
#cp -R opt/libreoffice/* /usr/local/lib/libreoffice/

打开你的libreoffice,啊,多么熟悉的界面!好好享受人生吧……

原文链接:http://wiki.freebsdchina.org/software/l/libreoffice