专注业务连续性支持与数据保护
2009-09-28技术合集

linux无盘桌面已关闭评论

linux无盘桌面

由于公司运营监视的需要,要一套统一标准的桌面来进行运营监视工作,所以要建立一个Linux桌面系统的无盘工作站,经过多次测试,发现debian真是一个非常好的系统,整个环境由服务器到客户端全部都用debian实现,通过DHCP以及PXE配合,所需要的功能基本都能实现。
服务器的搭建
首先安装debian,由于是服务器所以对于分区有严格要求。分区如下:
/ 300M 存放最小基本系统
swap RAMx2 但不用大于4G
/usr 2G 存放系统高级功能
/var 2G 存放日至
/tmp 300M 临时文件
/client 10G 存放客户端系统
/home 剩余所有 存放客户端用户目录和数据
安装完以后开始安装CLIENT需要的环境。在同一服务器里开始安装第二个debian系统。安装的时候到分区的时候分区不要有任何变动,选择以前的/client那个分区作为这个系统的/分区,开始安装,安装过程中选上桌面系统。安装完成后牵涉到grub,这个就无所谓了,只要让grub安装到mbr里。安装完成以后重新启动进入非桌面系统的debian,由于刚才已经破坏了服务器系统的grub,所以进入这个系统后运行:
grub-install (hd0,0)
让这个系统的grub重新正式工作,至于桌面系统的debian就暂时不用管了,因为最终是给客户端使用的。到此系统已经安装完成,开始设置服务器。
既然使用的是dhcp+pxe,那么服务器肯定就必须有TFTP服务,使用:
aptitude install tftpd-hpa
安装tftp服务,设置/etc/inetd.conf文件,肯定有如下内容:
tftp dgram udp wati root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /home/tftproot
这个设置是让tftp的根目录为/home/tftproot,然后到:http://archive.ubuntu.com/ubuntu/dists/dapper/main/installer-i386/current/images/netboot/ 里下载pxelinux.0这个文件,这个文件到处都有,在google里输入这个一下就能找到。把这个文件放到/home/tftproot目录里,另外需要一个linux的内核,由于这个内核将来要直接给桌面系统使用,所以我从ubuntu系统里弄了一个内核过来,因为ubuntu的内核做桌面非常好。当然其实主要是要ubuntu内核的源代码,因为外面成形的内核都不支持网络DHCP以及nfsroot。把ubuntu的内核源代码拿到手以后,在自己的服务器环境安装上gcc等必须的编译工具。同时安装上kernel-package这个包,开始编译内核,内核必须包含如下配置:
Networking —> Networking options —> IP:kernel level autoconfiguration以及 IP:DHCP support 这两个都必须直接编译进内核,不能以模块的形式存在。
由于我的client都是8139的网卡,所以我把Device Drivers里,网络设备中8139网卡编译进内核。
内核选项完成以后运行如下命令:
make-kpkg kernel-image
完成以后会在/usr/src里生成一个linux-image-2.6.xxxxxx.deb的文件。把这个文件放到/client目录里安装,命令:
chroot /client
dpkg -i /linux-image-2.6.xxxxxx.deb
exit
安装完后,把这个新内核放到/home/tftproot目录里:
cp /client/boot/vmlinuz-2.6.xxxxx /home/tftproot/bzImage
启动TFTP服务:
/etc/init.d/openbsd-inetd restart
在windows系统下输入如下命令应该能下载到指定文件:
tftp x.x.x.x get pxelinux.0
tftp x.x.x.x get bzImage
表示TFTP服务已经成功安装,并且运行正常。现在开始设置pxelinux的配置文件。因为pxelinux默认会读取/home/tftproot/pxelinux.cfg/default文件,所以我们需要手工配置:
cat <<EOF > /home/tftproot/pxelinux.cfg/default
TIMEOUT 100
PROMPT 1
DEFAULT linux
LABEL linux
kernel bzImage
append vga=0x317 ip=dhcp nfsroot=10.4.2.20:/client root=/dev/nfsroot rw —
LABEL single
kernel bzImage
append vga=nomal ip=dhcp nfsroot=10.4.2.20:/client root=/dev/nfsroot ro – single
EOF
由于我的服务器的IP为10.4.2.20,所以这里是请根据实际情况修改。
到此pxelinux已经配置完成,现在开始设置DHCP,DHCP非常简单,由于设置DHCP不是本文的讨论范围,我这里就只介绍重点,就是在DHCP分配的IP设置里增加如下:
next-server 10.4.2.20;
filename "pxelinux.0";
就可以了。这里是告诉网卡TFTP的服务器以及需要自举的文件。
配置完成DHCP就开始配置NFS服务了,NFS服务默认debian可能没有安装,但安装也简单:
aptitude install nfs-kernel-server
安装完编辑/etc/exports文件,内容如下:
/home *(rw,no_subtree_check,no_root_squash)
/client *(rw,no_subtree_check,no_root_squash)
完成后 /etc/init.d/nfs-kernel-server restart重新启动让NFS共享出去的目录生效,然后修改客户端配置文件,编辑/client/etc/fstab取消所有的硬盘分区,只留下proc,同时添加如下文件系统:
10.4.2.20:/client / nfs rw 0 0
/dev/shm /tmp tmpfs rw 0 0
/dev/shm /var/run tmpfs rw 0 0
第一行是让/目录挂到服务器的/client目录,第二行是因为/tmp是一个存放临时文件的地方,所以不少锁文件都是放到这个目录里,所以必须让每个客户端有自己的空间,并且由于/tmp存放的文件非常少,所以挂到一个临时内存空间里。同样/var/run是存放系统进程服务的部分pid文件的,同样不能混合,所以该目录也挂到临时内存空间里。客户端由于还面临计算机名等问题,由于所有客户端不能使用相同的计算机名,所以为了让系统每次启动后又自己的名称,所以这里使用一个脚本,让系统启动的时候自动运行,脚本如下:
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
case $1 in
start)
echo -n "set hostname:"
mount -t tmpfs /dev/shm /var/workdata
HOST_NAME=ws`date ‘+%H%m%S’`
echo $HOST_NAME > /var/workdata/hostname
echo "127.0.0.1 localhost" > /var/workdata/hosts
echo "127.0.0.1 $HOST_NAME" >> /var/workdata/hosts
echo "OK"
;;
stop)
umount /var/workdata
;;
esac
脚本里根据启动时间来作为计算机名,由于精确到秒,所以很少能碰到电脑名会相同的情况。到此无盘工作站的服务器已经建立完成。
客户端的设置
客户端最重要的是打开网卡的PXE功能,公司使用的品牌电脑,所以网卡都带了PXE和PBL芯片,设置为PXE的模式,这样系统就能自动启动进入无盘的Linux状态了。

2009-09-28生活琐记

dd命令实例已关闭评论

dd命令实例

dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝
的同时进行指定的转换。
1. 命令简介
dd 的主要选项:
指定数字的地方若以下列字符结尾乘以相应的数字:
b=512, c=1, k=1024, w=2, xm=number m
if=file
输入文件名,缺省为标准输入。
of=file
输出文件名,缺省为标准输出。
ibs=bytes
一次读入 bytes 个字节(即一个块大小为 bytes 个字节)。
obs=bytes
一次写 bytes 个字节(即一个块大小为 bytes 个字节)。
bs=bytes
同时设置读写块的大小为 bytes ,可代替 ibs 和 obs 。
cbs=bytes
一次转换 bytes 个字节,即转换缓冲区大小。
skip=blocks
从输入文件开头跳过 blocks 个块后再开始复制。
seek=blocks
从输出文件开头跳过 blocks 个块后再开始复制。(通常只有当输出文件是磁盘或磁带时才有效)。
count=blocks
仅拷贝 blocks 个块,块大小等于 ibs 指定的字节数。
conv=conversion[,conversion…]
用指定的参数转换文件。

转换参数:
ascii 转换 EBCDIC 为 ASCII。
ebcdic 转换 ASCII 为 EBCDIC。
ibm 转换 ASCII 为 alternate EBCDIC.
block 把每一行转换为长度为 cbs 的记录,不足部分用空格填充。
unblock 使每一行的长度都为 cbs ,不足部分用空格填充。
lcase 把大写字符转换为小写字符。
ucase 把小写字符转换为大写字符。
swab 交换输入的每对字节。
noerror 出错时不停止。
notrunc 不截短输出文件。
sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
2.实例分析
2.1.数据备份与恢复
2.1.1整盘数据备份与恢复
备份
将本地的/dev/hdx整盘备份到/dev/hdy :dd if=/dev/hdx of=/dev/hdy
将/dev/hdx全盘数据备份到指定路径的image文件:dd if=/dev/hdx of=/path/to/image
备份/dev/hdx全盘数据,并利用gzip工具进行压缩,保存到指定路径:dd if=/dev/hdx | gzip
>/path/to/image.gz
恢复
将备份文件恢复到指定盘:dd if=/path/to/image of=/dev/hdx
将压缩的备份文件恢复到指定盘 :gzip -dc /path/to/image.gz | dd of=/dev/hdx
2.1.2.利用netcat远程备份
在源主机上执行此命令备份/dev/hda:dd if=/dev/hda bs=16065b | netcat < targethost-IP >
1234
在目的主机上执行此命令来接收数据并写入/dev/hdc:netcat -l -p 1234 | dd of=/dev/hdc
bs=16065b
以下两条指令是目的主机指令的变化分别采用bzip2 gzip对数据进行压缩,并将备份文件保存在当
前目录 :
netcat -l -p 1234 | bzip2 > partition.img
netcat -l -p 1234 | gzip > partition.img
2.1.3.备份MBR
备份:
备份磁盘开始的512Byte大小的MBR信息到指定文件:dd if=/dev/hdx of=/path/to/image
count=1 bs=512
恢复:
将备份的MBR信息写到磁盘开始部分:dd if=/path/to/image of=/dev/hdx
2.1.4.备份软盘
将软驱数据备份到当前目录的disk.img文件:dd if=/dev/fd0 of=disk.img count=1 bs=1440k
2.1.5.拷贝内存资料到硬盘
将内存里的数据拷贝到root目录下的mem.bin文件:dd if=/dev/mem of=/root/mem.bin
bs=1024
2.1.6.从光盘拷贝iso镜像
拷贝光盘数据到root文件夹下,并保存为cd.iso文件:dd if=/dev/cdrom of=/root/cd.iso
2.2.增加Swap分区文件大小
创建一个足够大的文件(此处为256M):dd if=/dev/zero of=/swapfile bs=1024 count=262144
把这个文件变成swap文件:mkswap /swapfile
启用这个swap文件:swapon /swapfile
在每次开机的时候自动加载swap文件, 需要在 /etc/fstab 文件中增加一行:/swapfile swap
swap defaults 0 0
2.3.销毁磁盘数据
利用随机的数据填充硬盘:dd if=/dev/urandom of=/dev/hda1
在某些必要的场合可以用来销毁数据。执行此操作以后,/dev/hda1将无法挂载,创建和拷贝操作
无法执行。
2.4磁盘管理
2.4.1.得到最恰当的block size
通过比较dd指令输出中所显示的命令执行时间,即可确定系统最佳的block size大小:
dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file
dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file
dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file
2.4.2测试硬盘读写速度
通过两个命令输出的执行时间,可以计算出测试硬盘的读/写速度:
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
hdd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
2.4.3.修复硬盘
当硬盘较长时间(比如一两年年)放置不使用后,磁盘上会产生magnetic flux point。当磁头读到
这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致
硬盘报废。下面的命令有可能使这些数据起死回生。且这个过程是安全,高效的。
dd if=/dev/sda of=/dev/sda

2009-09-28技术合集

cherokee已关闭评论

cherokee

cherokee的官方网址是:http://www.cherokee-project.com,你可以从这里下载到最新的

源代码,找到它详细的说明文档。

下面这段文字简单翻译自官方的说明文档

cherokee是一个高效的、轻量级的、高稳定性的、容易配置的web服务器 …

cherokee支持很多技术:FastCGI , SCGI , PHP, CGI , X-Sendfile , TLS , SSL …

cherokee支持虚拟主机、权限认证、负载均衡 …

cherokee的日志格式与apache是兼容的 …

继续阅读 »

2009-09-22关注学习

中国每年出生人口数 1976年 – 2000年 历年男女性别比已关闭评论

中国每年出生人口数 1976年 – 2000年 历年男女性别比

年份 比例 总数 男 女
1976年出生 50.92% 20,491,797 10,435,196 10,056,601
1977年出生 50.86% 17,931,155 9,119,685 8,811,470
1978年出生 50.55% 18,831,591 9,519,345 9,312,246
1979年出生 50.45% 18,924,822 9,548,059 9,376,763
1980年出生 50.64% 18,393,809 9,315,481 9,078,328
1981年出生 51.00% 19,122,938 9,752,137 9,370,801
1982年出生 51.02% 23,100,427 11,786,950 11,316,732
1983年出生 51.21% 20,065,048 10,275,677 9,789,371
1984年出生 51.53% 20,313,426 10,468,201 9,845,225
1985年出生 51.88% 20,429,326 10,598,460 9,830,866
1986年出生 51.85% 23,190,076 12,023,710 11,166,366
1987年出生 53.87% 25,282,644 13,619,530 12,663,114
1988年出生 52.00% 24,576,191 12,779,621 11,796,570
1989年出生 52.16% 25,137,678 13,110,848 12,026,830
1990年出生 52.69% 26,210,044 13,811,030 12,399,014
1991年出生 53.16% 20,082,026 10,674,963 9,407,063
1992年出生 53.40% 18,752,106 10,014,222 8,737,884
1993年出生 53.53% 17,914,756 9,590,414 8,324,342
1994年出生 53.83% 16,470,140 8,866,012 7,604,128
1995年出生 54.08% 16,933,559 9,157,597 7,775,962
1996年出生 54.24% 15,224,282 8,257,145 6,967,137
1997年出生 54.64% 14,454,335 7,897,234 6,557,101
1998年出生 54.97% 14,010,711 7,701,684 6,309,027
1999年出生 55.09% 11,495,247 6,332,425 5,162,822
2000年出生 54.08% 13,793,799 7,460,206 6,333,593

2009-09-19技术合集

Ubuntu Server 9.04下安装nginx+PHP+MySQL已关闭评论

Ubuntu Server 9.04下安装nginx+PHP+MySQL

笔记而已,供以后查阅,大部分的内容参照http://blog.s135.com/nginx_php_v5/和http://rashost.com/blog,省去了第三方的一些编译,个人来说特别不喜欢编译(除非没有办法),自己编译不会带来性能多大的提高,维护起来还比较麻烦,尤其是卸载升级的时候。

Ubuntu Server 9.04的安装是最干净的那种,除了openssh-server,openssh-client外别的没有安装。

安装完系统后,如果选的是中文的话,最好重新设置一下语言:

vi /etc/default/locale

LANG="en_US.UTF-8"
LANGUAGE="en_US:en"这样不会有一些乱码啊,菱形字的出现。

设置apt升级源:

vi /etc/apt/sources.list全部干掉,测试了两个速度比较好的源:

deb http://mirror.optus.net/ubuntu/ jaunty main restricted universe multiverse
deb http://mirror.optus.net/ubuntu/ jaunty-security main restricted universe multiverse
deb http://mirror.optus.net/ubuntu/ jaunty-updates main restricted universe multiverse
deb http://mirror.optus.net/ubuntu/ jaunty-proposed main restricted universe multiverse
deb http://mirror.optus.net/ubuntu/ jaunty-backports main restricted universe multiverse
deb-src http://mirror.optus.net/ubuntu/ jaunty main restricted universe multiverse
deb-src http://mirror.optus.net/ubuntu/ jaunty-security main restricted universe multiverse
deb-src http://mirror.optus.net/ubuntu/ jaunty-updates main restricted universe multiverse
deb-src http://mirror.optus.net/ubuntu/ jaunty-proposed main restricted universe multiverse
deb-src http://mirror.optus.net/ubuntu/ jaunty-backports main restricted universe multiverse

deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ jaunty main restricted universe multiverse
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ jaunty-security main restricted universe multiverse
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ jaunty-updates main restricted universe multiverse
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ jaunty-proposed main restricted universe multiverse
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ jaunty-backports main restricted universe multiverse
deb-src http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ jaunty main restricted universe multiverse
deb-src http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ jaunty-security main restricted universe multiverse
deb-src http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ jaunty-updates main restricted universe multiverse
deb-src http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ jaunty-proposed main restricted universe multiverse
deb-src http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ jaunty-backports main restricted universe multiverse当然,你也可以试试163的源,不过我这边的情况是龟速:

deb http://mirrors.163.com/Ubuntu/ jaunty main restricted universe multiverse
deb http://mirrors.163.com/Ubuntu/ jaunty-security main restricted universe multiverse
deb http://mirrors.163.com/Ubuntu/ jaunty-updates main restricted universe multiverse
deb http://mirrors.163.com/Ubuntu/ jaunty-proposed main restricted universe multiverse
deb http://mirrors.163.com/Ubuntu/ jaunty-backports main restricted universe multiverse
deb-src http://mirrors.163.com/Ubuntu/ jaunty main restricted universe multiverse
deb-src http://mirrors.163.com/Ubuntu/ jaunty-security main restricted universe multiverse
deb-src http://mirrors.163.com/Ubuntu/ jaunty-updates main restricted universe multiverse
deb-src http://mirrors.163.com/Ubuntu/ jaunty-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/Ubuntu/ jaunty-backports main restricted universe multiverse设置完源之后,执行:

apt-get update获得软件包信息,如果需要升级系统,还需要:

apt-get upgrade这个貌似比yum要复杂些,怀念yum update & yum install yum-fastestmirror

安装MySQL

直接来apt-get安装吧:

apt-get install mysql-server-5.1 mysql-client-5.1 –no-install-recommends记得加上–no-install-recommends,要不然连postfix都给你装了。

安装nginx

添加www用户和www用户组

/usr/sbin/groupadd www
/usr/sbin/useradd -g www www安装第三方包:

apt-get install gcc
apt-get install libpcre3-dev libssl-dev下载源码编译:

tar xzf nginx-0.8.14.tar.gz -C /usr/local/src
cd /usr/local/src/nginx-0.8.14/
./configure –user=www –group=www –with-http_stub_status_module –with-http_ssl_module
make && make install缺什么就apt-get安装,编辑nginx配置文件:vi /usr/local/nginx/conf/nginx.conf

user www www

worker_processes 2

error_log /var/log/nginx/error.log crit

pid /usr/local/nginx/nginx.pid

#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200

events
{
use epoll
worker_connections 51200
}

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

#charset gb2312

server_names_hash_bucket_size 128
client_header_buffer_size 32k
large_client_header_buffers 4 32k
client_max_body_size 8m

sendfile on
tcp_nopush on

keepalive_timeout 60

tcp_nodelay on

fastcgi_connect_timeout 300
fastcgi_send_timeout 300
fastcgi_read_timeout 300
fastcgi_buffer_size 64k
fastcgi_buffers 4 64k
fastcgi_busy_buffers_size 128k
fastcgi_temp_file_write_size 128k

gzip on
gzip_min_length 1k
gzip_buffers 4 16k
gzip_http_version 1.0
gzip_comp_level 2
gzip_types text/plain application/x-javascript text/css application/xml
gzip_vary on

#limit_zone crawler $binary_remote_addr 10m

server
{
listen 80
server_name 127.0.0.1
index index.html index.htm index.php
root /data/www

#limit_conn crawler 20

location ~ .*\.php
{
include fcgi.conf
}

location ~ .*\.(gifjpgjpegpngbmpswf)$
{
expires 30d
}

location ~ .*\.(jscss)?$
{
expires 1h
}

log_format access '$remote_addr – $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for'
access_log /var/log/nginx/access.log access
}
}编辑fcgi.conf文件,让nginx支持PATH_INFO变量:

fastcgi_pass 127.0.0.1:9000

#fastcgi_index index.php

set $path_info ""
set $real_script_name $fastcgi_script_name
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1
set $path_info $2
}

fastcgi_param SCRIPT_FILENAME $document_root$real_script_name
fastcgi_param SCRIPT_NAME $real_script_name
fastcgi_param PATH_INFO $path_info

fastcgi_param GATEWAY_INTERFACE CGI/1.1
fastcgi_param SERVER_SOFTWARE nginx

fastcgi_param QUERY_STRING $query_string
fastcgi_param REQUEST_METHOD $request_method
fastcgi_param CONTENT_TYPE $content_type
fastcgi_param CONTENT_LENGTH $content_length

#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name
#fastcgi_param SCRIPT_NAME $fastcgi_script_name
fastcgi_param REQUEST_URI $request_uri
fastcgi_param DOCUMENT_URI $document_uri
fastcgi_param DOCUMENT_ROOT $document_root
fastcgi_param SERVER_PROTOCOL $server_protocol

fastcgi_param REMOTE_ADDR $remote_addr
fastcgi_param REMOTE_PORT $remote_port
fastcgi_param SERVER_ADDR $server_addr
fastcgi_param SERVER_PORT $server_port
fastcgi_param SERVER_NAME $server_name

# PHP only, required if PHP was built with –enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200安装PHP

下载最新的PHP5.2.10、php-fpm:

wget http://cn.php.net/get/php-5.2.10.tar.gz/from/this/mirror
wget http://php-fpm.org/downloads/php-5.2.10-fpm-0.5.13.diff.gz安装一些要用到的第三包:

apt-get install libxml2-dev libmcrypt-dev libssl-dev libldap2-dev libmhash-dev libmysqlclient-dev libcurl4-openssl-dev libpng-dev libjpeg-dev libsasl2-dev libdb4.7-dev解压缩PHP源码,并打上php-fpm补丁:

tar xzf php-5.2.10.tar.gz -C /usr/local/src
gzip -cd php-5.2.10-fpm-0.5.11.diff.gz patch -d /usr/local/srcphp-5.2.10 -p1编译安装PHP&php-fpm:

./configure –with-iconv –with-zlib –enable-xml –disable-rpath –enable-discard-path –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –with-curl –with-curlwrappers –enable-mbregex –enable-fastcgi –enable-fpm –enable-force-cgi-redirect –enable-mbstring –with-mcrypt –with-gd –enable-gd-native-ttf –with-mhash –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –with-mysql –with-mysqli –enable-sqlite-utf8 –with-pdo-mysql –enable-ftp –with-jpeg-dir –with-png-dir –enable-dba –with-db4=/usr/lib/ –without-pear
make
make install可以看到我在扩展里面打开了dba扩展,并且指定了bdb库位置,如果你不需要PHP去访问bdb可以不用。安装的过程中提示缺什么包,直接apt-get install就可以了,也没有必要担心安装的不全,到时候缺什么,直接单个编译就可以了,比如想编译APC支持,到APC源码位置:

phpize
./configure
make
make install如果没有安装autoconf包,直接apt-get install autoconf就可以。把编译好的so文件拷贝到php扩展目录就可以了。

复制php.ini-recommended为php.ini到php ini配置目录,目录可以通过php -i|grep php.ini查看。找到php-fpm.con(命令:whereis php-fpm.conf),去掉display_errors参数的注释,修改参数值为1;去掉user,group参数的注释,设置user,group,一般设定为www就可以;修改max_children参数的值。

启动服务器

ulimit -SHn 51200
/usr/local/sbin/php-fpm start
/usr/local/nginx/sbin/nginx测试
最基础的测试,phpinfo.php:

测试了下ColaPHP在nginx+php+fastcgi下的表现,原生的PHP大概940RPS,ColaPHP大概是650RPS。

2009-09-08技术合集

BT3所支持的无线网卡型号已关闭评论

BT3所支持的无线网卡型号

2.1 PCI
2.1.1 Asus WL-138g v2
2.1.2 Belkin F5D8001
2.1.3 CNet CWP-854
2.1.4 Dlink DWL-AG530
2.1.5 Dlink DWL-G520
2.1.6 Dlink DWL-G550
2.1.7 Dlink DWL-G510
2.1.8 Foxconn WLL-3350
2.1.9 MSI PC60G
2.1.10 Netgear WG311T
2.1.11 Netgear WPN311
2.1.12 SMC SMCWPCI-G
2.2 Mini PCI (Built in)
2.2.1 Broadcom BCM4306 802.11b/g (rev 3)
2.2.2 Broadcom BCM4318 802.11b/g
2.2.3 IBM AR5212 802.11abg NIC (rev 01)
2.2.4 IPW2100
2.2.5 IPW2200
2.2.6 WN360G
2.3 Mini PCIe (Built in)
2.3.1 Broadcom BCM4311 802.11b/g
2.3.2 IPW3945
2.3.3 IPWRAW (IPW3945 Monitor + Inject)
2.3.4
2.4 PCMCIA Cards
2.4.1 3COM 3CRWE154G72 v1
2.4.2 3COM 3CRPAG175B with XJACK Antenna
2.4.3 Agere Systems oriNOCO GOLD PC Card Classic
2.4.4 AirLink101 AWLC4130
2.4.5 ASUS WL100G
2.4.6 Belkin F5D6020 v3
2.4.7 Belkin F5D7010 V1000
2.4.8 Belkin F5D7010 V3000UK
2.4.9 Belkin F5D7010 V5000
2.4.10 Belkin F5D7010 V6000
2.4.11 Belkin F5D7011
2.4.12 Buffalo WLI-CB-G54HP
2.4.13 Cisco AIR-LMC350
2.4.14 Cisco AIR-PCM350-T
2.4.15 Cisco Aironet AIR-CB21AG-A-K9
2.4.16 Dlink DWA-645
2.4.17 Dlink DWL-650+
2.4.18 Dlink DWL-G650
2.4.19 Dlink DWL-G630, 650+/-
2.4.20 Dlink DWL-G650M
2.4.21 Dlink DWL-G650+
2.4.22 D-Link WNA-1330
2.4.23 Enterasys Roamabout 802.11 DS High Rate
2.4.24 Gigabyte GN-WM01GT AirCruiserG Mach G
2.4.25 Lucent Technologies orinoco Silver
2.4.26 Linksys WPC11v4
2.4.27 Linksys WPC11v4
2.4.28 Linksys WPC54G v3
2.4.29 Motorola WN825G v2
2.4.30 NetGear MA401
2.4.31 NetGear WPN511
2.4.32 NetGear WPN511 – Range Max
2.4.33 NetGear WG511T
2.4.34 NetGear WAG511v2
2.4.35 NetGear WG511 v1
2.4.36 NetGear WG511v2
2.4.37 Netgear WG511U
2.4.38 NetGear WPN511GR
2.4.39 Netgear WPNT511
2.4.40 PROXIM oriNOCO 802.11b/g Gold (Model: 8470-WD)
2.4.41 Senao NL-2511CD PLUS EXT2
2.4.42 Senao Sl-2511CD Plus EXT2
2.4.43 Senao SL-2511 CD PLUS (the one w/o external connectors)
2.4.44 Sitecom WL-100b
2.4.45 SMC 2532W-B
2.4.46 SMC SMC2536W-AG
2.4.47 SMC WCB-G
2.4.48 SWEEX LW051 ver:1.0
2.4.49 TP-link SuperG&eXtended Range 108M Wireless Cardbus Adapter(TL-WN610G)
2.4.50 TP-link eXtended Range 54M Wireless Cardbus Adapter (TL-WN510G)
2.4.51 Ubiquiti SRC
2.4.52 Wistron WLAN 802.11a/b/g Cardbus CB9-GP
2.4.53 X-Micro WLAN 11g PCMCIA Card (XWL-11GPAG)
2.4.54 ZCom XI-325HP+
2.4.55 Zyxel ZyAIR G-100 PCMCIA Card (FCC ID:N89-WE601l)
2.5 USB Dongles
2.5.1 Airlink101 AWLL3026
2.5.2 ALFA Networks AWUS036H
2.5.3 ASUS WL-167G
2.5.4 AVM Fritz!Wlan USB V1.1
2.5.5 Belkin F5D7050 V1
2.5.6 Belkin F5D7050 (4000 series)
2.5.7 Belkin F5D7050B
2.5.8 Belkin F5D7051
2.5.9 Buffalo Airstation G54 WLI-U2-KG54-AI (2A)
2.5.10 Chiefmax
2.5.11 D-Link DWL 122 (USB) F/W 3.2.1 H/W A1
2.5.12 D-Link DWL G122 (USB) F/W 2.03 B1
2.5.13 D-Link WUA-1340
2.5.14 Edimax EW-7317UG
2.5.15 Edimax EW-7318USG
2.5.16 Linksys WUSB54g v4
2.5.17 Linksys WUSB54GC
2.5.18 MicroEdge MEG55A Wireless-G USB Dongle
2.5.19 NetGear WG111v2
2.5.20 NetGear WG111T
2.5.21 Netopia ter/gusb-e
2.5.22 OvisLink Evo-w54usb
2.5.23 SafeCom SWMULZ-5400
2.5.24 ZyDAS 1211
2.5.25 SMCWUSB-G EU
2.5.26 MSI US54SE
2.5.27 Hawking HWUG1

2009-09-03技术合集

GNU Cfengine 配置文件已关闭评论

GNU Cfengine 配置文件

# cfservd.conf
control:
domain = ( haoyuan-inc.com )
AllowUsers = ( root )
cfrunCommand = ( "/usr/sbin/cfagent" )
any::
IfElapsed = ( 1 )
ExpireAfter = ( 5 )
MaxConnections = ( 50 )
MultipleConnections = ( true )
grant:
/var/cfengine/inputs *.haoyuan-inc.com

#update.conf
control:
actionsequence = ( copy tidy )
domain = ( haoyuan-inc.com )
policyhost = ( cfg.haoyuan-inc.com )
work_dir = ( /var/cfengine )
cf_install_dir = ( /usr/local/sbin )
SplayTime = ( 0 )

copy:
$(work_dir)/inputs/cfagent.conf dest=$(work_dir)/inputs/cfagent.conf
server=$(policyhost)
mode=644

tidy:

#cfagent.conf

control:
actionsequence = ( shellcommands )

shellcommands:
/bin/echo "fuck you !"