FreeBSD的坏损硬盘修复工具──recoverdisk(1)

2008硬盘磨损年,你需要这个工具,是的,即使你有备份,只要那备份不是实时的,你还是会需要这个工具。

recoverdisk(1)是FreeBSD 7.0新引入基本系统(/sbin!)的磁盘复制工具,这个工具对于修复硬盘、光盘、存在坏盘上的文件等各种情形都能非常有效地进行迅速修复:它首先尝试以1MB的块尺寸读取和写入数据,随后是64K和512字节(1扇区),遇到错误时会自动跳过,从而最大限度地从损坏的磁盘上恢复数据(如果是用 dd(1) 来恢复数据,通常在遇到坏区时会丢掉整个block,而recoverdisk则是先跳过,然后回过头来用较小的块尺寸重新读取直到失败,而此时主要的数据都已经恢复了)。

原文链接:https://blog.delphij.net/2008/04/freebsdrecoverd.html

FreeBSD Name Server配置

FreeBSD系统自带BIND软件,我们编辑/etc/namedb/named.conf即可设置BIND。

把默认的named.conf作个备份
cp /etc/namedb/named.conf /etc/namedb/named.conf.default

修改named.conf
options选项增加
allow-query     { any; };
recursion       no;        // 不提供递归服务
去掉
listen-on       { 127.0.0.1; };

域名记录增加
zone “bsdartbsdart.org” {
type master;
file “bsdart/bsdart.org.db”;
};

zone “23.51.210.in-addr.arpa” {
type master;
file “bsdart/bsdart.org.rev”;
};

新建bsdart目录
mkdir /etc/namedb/bsdart
chown -R bind:wheel /etc/namedb/bsdart

cd /etc/namedb/bsdart
vi bsdart.org.db
$TTL 3600
bsdart.org.     IN      SOA     dns.bsdart.org. admin.bsdart.org. (
2009070901      ; Serial
10800           ; Refresh
3600            ; Retry
604800          ; Expire
300 )           ; Negative Reponse TTL
; DNS Servers
IN      NS      dns.bsdart.org.
; MX Records
IN      MX 10   mail.bsdart.org.

IN      A       210.51.23.23
; Machine Names
localhost       IN      A       127.0.0.1
mail            IN      A       210.51.23.23
dns             IN      A       210.51.23.23
; Aliases
www             IN      CNAME   bsdart.org.

vi bsdart.org.rev
$TTL 3600
23.51.210.in-addr.arpa. IN SOA dns.bsdart.org. admin.bsdart.org. (
2009070901      ; Serial
10800           ; Refresh
3600            ; Retry
604800          ; Expire
300 )           ; Negative Reponse TTL
IN      NS      dns.bsdart.org.
23      IN      PTR     mail.bsdart.org.

vi /etc/rc.conf
新增
named_enable=”YES”

原文链接:http://garey.bsdart.org/2009/12/freebsd-name-server%E9%85%8D%E7%BD%AE/

FreeBSD安装与配置nginx下的php (FastCGI模式)

安装nginx

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

弹出config窗口,选择你需要的模块安装,安装成功后可以执行

echo ‘nginx_enable="YES"’ >> /etc/rc.conf.local

安装php的fastcgi

在config窗口选择支持fastcgi (由于不使用 Apache 来运行 php,故可去掉 APACHE 选项)。

安装spawn-fcgi

spawn-fcgi 先前是 lighttpd 的一部分,后独立成单独的项目。可使用 port 或 package 来安装:

pkg_add -r spawn-fcgi

如果希望自行编译,也可使用 port 安装:

cd /usr/ports/www/spawn-fcgi
make install clean

安装之后,在配置文件中将其设为启动:

echo ‘spawn_fcgi_enable="YES"’ >> /etc/rc.conf.local

注意:预设的 spawn_fcgi 子进程数量为 5 个。对于访问量较大的网站,应调整其设置,例如:

echo ‘spawn_fcgi_children="50"’ >> /etc/rc.conf.local

进程数对性能的帮助有限,请根据需要适当调整。

其他可配置的选项包括:

spawn_fcgi_app="/usr/local/bin/php-cgi" # 预设的应用程序名字。通常不需要改动。
spawn_fcgi_app_args="" # 启动此应用程序时使用的参数。通常不需要改动。
spawn_fcgi_pidfile="/var/run/spawn-fcgi.pid" # 用于重启、停止 spawn-fcgi 时的 PID 文件名字,通常不需要改动。
spawn_fcgi_username="www" # 执行 PHP 时使用的系统用户名。应使用预设值,或某个非特权用户。
spawn_fcgi_groupname="www" # 执行 PHP 时使用的系统组名。应使用预设值,或某个非特权组。
spawn_fcgi_chroot_dir="" # chroot的名字,用于限制 PHP 能够访问的目录范围。此配置会以“外科手术”的方式进行,请小心使用。
spawn_fcgi_bindaddr="127.0.0.1" # 监听的 IP 地址。需要与nginx中的相应配置相同。
spawn_fcgi_bindport="9000" # 监听端口。需要与nginx中的相应配置相同。
spawn_fcgi_bindsocket="" # 监听的 Unix socket 路径,需要与nginx中的相应配置相同。注意:一般来说,不必同时使用TCP和Unix socket监听。
spawn_fcgi_bindsocket_mode="0777" # Unix socket 的权限。个人建议 FastCGI 应与 nginx 使用同样的用户/组,和权限0660。
spawn_fcgi_children="5" # 子进程数量。
spawn_fcgi_max_requests="1000" # 每个 PHP 进程可以服务的请求数量。这个设置主要是避免php内部的内存泄漏等导致的问题,如果太小会导致php反复启动,故对性能有负面影响。
spawn_fcgi_web_server_addrs="" # Web服务器的IP地址列表。对于只监听本地端口的服务来说没有任何必要。
spawn_fcgi_allowed_env="" # 额外的允许传给 PHP 的环境变量。通常不应另外设置。
spawn_fcgi_path_env="/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin" # FastCGI程序使用的 PATH。通常不需要另外设置。

启动服务

启动nginx

/usr/local/etc/rc.d/nginx start

启动php的fastcgi模式

/usr/local/etc/rc.d/spawn_fcgi start

原文出自:http://wiki.freebsdchina.org/howto/n/php_fastcgi_nginx