2008年5月5日 星期一

防止ssh恶意攻击

DenyHosts是Python语言写的一个程序,它会分析sshd的日志文件,当发现重复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏IP的功能。
 
DenyHosts官方网站为:http://denyhosts.sourceforge.net
 
以下是安装记录(以CentOS 4.3, DenyHosts 2.5 为例)
 
安装 # cd /usr/local/src
# wget http://mesh.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.5.tar.gz
# tar -zxvf DenyHosts-2.5.tar.gz
# cd DenyHosts-2.5
# python setup.py install
 
默认是安装到/usr/share/denyhosts目录的。
 
配置 # cd /usr/share/denyhosts/
# cp denyhosts.cfg-dist denyhosts.cfg
# vi denyhosts.cfg
 
根据自己需要进行相应的配置(解释见下文件的配置文件)
 
设置启动脚本 # cp daemon-control-dist daemon-control
# chown root daemon-control
# chmod 700 daemon-control
 
完了之后执行daemon-contron start就可以了。 # ./daemon-control start
 
如果要使DenyHosts每次重起后自动启动还需做如下设置: # cd /etc/init.d
# ln -s /usr/share/denyhosts/daemon-control denyhosts
# chkconfig �add denyhosts
# chkconfig �level 2345 denyhosts on
 
或者修改/etc/rc.local文件: # vi /etc/rc.local
 
加入下面这条命令 /usr/share/denyhosts/daemon-control start
 
DenyHosts配置文件: vi /etc/denyhosts.cfg
SECURE_LOG = /var/log/secure
#ssh 日志文件,它是根据这个文件来判断的。
HOSTS_DENY = /etc/hosts.deny
#控制用户登陆的文件
PURGE_DENY = 5m
#过多久后清除已经禁止的
BLOCK_SERVICE  = sshd
#禁止的服务名
DENY_THRESHOLD_INVALID = 1
#允许无效用户失败的次数
DENY_THRESHOLD_VALID = 10
#允许普通用户登陆失败的次数
DENY_THRESHOLD_ROOT = 5
#允许root登陆失败的次数
HOSTNAME_LOOKUP=NO
#是否做域名反解
ADMIN_EMAIL = iakuf@163.com
#管理员邮件地址,它会给管理员发邮件
DAEMON_LOG = /var/log/denyhosts
#自己的日志文件
 
然后就可以启动了: service denyhost start
 
可以看看/etc/hosts.deny内是否有禁止的IP,有的话说明已经成功了。

标签:

centOS 常用管理手札


for centOS
 
一、用户环境
#locale    显示系统语言环境      语言环境参数保存在/etc/sysconfig/i18n文件里 LANG最主要
#locale �a       查看系统对语言的支持情况
#LANG=zh_CN.GB2312       使系统支持以中文形式显示
 
#chkconfig kudzu --list  检查某个服务状态(包括各个级别0~6的状态)
#less /etc/sysconfig/hwconf 硬件信息
 

二、系统管理常用命令
 
1.      useradd redhat
 
2.      passwd redhat
 
3.      su �
 
4.      exit
 
5.      df �h 分区情况
 
6.      du �sh  /*      统计文件或目录使用空间的大小
 
7.      fdisk �l  /dev/sda
 
8.      netconfig        配置网络参数
 
9.      ifconfig          显示网络配置信息
 
10.  service network restart
 
11.  route �n          查看路由信息(默认路由)
 
12.  ping �b 192.168.0.255    扫描整个网段(检查活动主机)
 
13.  ifconfig eth0 10.0.0.254 netmask 255.255.255.0  修改IP地址
 
14.  ifconfig eth0显示指定网卡参数
 
15.  修改IP信息后会删除默认路由,需手工添加
 
route add default gw 192.168.0.1
 
16.  ifconfig route 修改过的参数不会保存,重启后会消失
 
要用service network restart命令把参数保存到文件ifcfg-eth0
 
/etc/sysconfig/network-scripts/ifcfg-eth0
 
可以vi直接修改该文件,然后service network restart 重新启用网络服务
 
17.  redhat-config-network-tui是redhat独有的配置工具,当用这个命令配置网络参数后,会写入到/etc/sysconfig/networking/profiles/目录里,并且比network-scripts/ifcfg-eth0优先,所以用过这个工具配置就不要再使用netconfig,或者先将profiles目录清空
 
三、文件系统维护
 

ext2/ext3通过数据块储存文件
 
格式化文件系统:
 
mkfs.ext3 �b 4096 �i 8192 �m 5 /dev/sdb4
 
-b      数据块大小
 
-i inode节点表示的字节数(或数据块大小)
 
-m 5      为管理员保留的磁盘管理空间5% 
 
ls �lh /mnt/u
 
du �sh /mnt/u
 
df �lh
 
#tune2fs �l /dev/sdb1          打印文件系统属性
 
#df
 
tune2fs 调整ext2/ext3文件系统特性的工具
 
-l 查看文件系统信息
 
-m      保留块百分比
 
-c <count>  设置强制自检的挂载次数
 
-i <n day>  设置强制自检的间隔时间
 
-j          ext2转成ext3
 
 
 
tune2fs �c -1 /dev/sdb1    不管挂载多小次都不自检
 
tune2fs �c -1 �i 0 /dev/sdb1  让分区永远不自检
 
#mkfs.ext2 /dev/sdb4  格式化成ext2
 
#tune2fs �j /dev/sdb4  转换为ext3
 
#df �T              查看分区信息
 
判断间ext2还是ext3:
 
tune2fs �l /dev/sdb1 | grep features
 
看Filesystem features: has_journal
 
是否有has_journal,有则是ext3文件系统
 
 
 
grep �i "name"  不区分大小写
 
df �T 分区类型
 
fsck      检查文件系统数据完整性的工具
 
用法一、fsck �t ext2 /dev/sdb1
 
  二、fsck.ext3 /dev/sdb1
 
#more /etc/fstab
 
如发现挂载选项有1或2,那么应该进行自检了
 
#fsck.ext3 �y /dev/sdb1          自动修复错误
 

四、管理磁盘文件系统
 

mount 设备名 挂载点
mount /dev/fd0 /mnt/floppy
光驱(IDE) /dev/cdrom    (/dev/hdx)
光驱(SCSI)/dev/scdN    (N=0,1…)
硬盘(IDE) /dev/hdX      (X=a,b,c…)
硬盘(SCSI)/dev/sdX      (X=a,b,c…)
U盘        /dev/sdX      (X=a,b,c…)
 
弹出光盘#eject
收回#eject �t
因为USB设备内置USB-SCSI转换接口,所以被认为是SCSI硬盘
#mkdir /mnt/u
#mount /dev/sda1 /mnt/u
默认内核已支持SCSI和USB接口
#modprobe usb-storage          检查usb-storage模块是否已加载,否则无法自动识别USB设备
 
#mount �t vfat /dev/hda2 /mnt/c
#mount �t ntfs /dev/hda3 /mnt/d 需重新编译内核才能支持NTFS
#mount �t iso9660 /dev/cdrom /mnt/cdrom
#mount �t vfat �o iocharset=gb2312 /dev/sdb1 /mnt/u
常用字符编码有gb2312和utf8
#mount /dev/sdb2 /mmt/d �o iocharset=utf8,ro,uid=redhat,umask=0077 
 
Linux下使用U盘
#ls /dev          确认设备已识别
#mount -o iocharset=gb2312 /dev/sda1
more后ctrl+F向下翻页(或空格)ctrl+b(上滚)
ls -a            显示隐藏文件(以.开头的文件)
文件权限rws        s表示执行这个程序的使用者,临时拥有和所有者一样的权力身份来执行该程序
cp -r 源  目的    -r参数表示连子目录一起拷贝
rm -i            确认删除
  -r            删除子目录
  -f            强制删除
du                磁盘或目录使用了多少空间
df                磁盘或目录剩余可用空间
cat >file1        等价你输入文字,输完后ctrl+C或ctrl+D结束
>>符号表示在文件尾附加,>符号表示创建新文件
less  可上下滚动文件内容
which    在$PATH设置的目录查找文件
 
五、使用磁盘配额
 

默认系统内核已支持quota
 
mount �o usrquota,grpquota /dev/sdb1 /mnt/d1 或
 
mount �o remount,usrquota,grpquota /
 
也可以修改 /etc/fstab文件来启用每个文件系统的配额 ---- 添加选项usrquota,grpquota
 
例:
 
将LABEL=/home  /home  ext3  defaults  1 2
改为
LABEL=/home  /home  ext3  defaults,usrquota  1 2
 

#init 1      (进入单用户环境)
 
#quotacheck �cvuga  或 quotacheck �cvag  /dev/sdb1    (a代表all)(g代表用户组)
 
#quotaon �a 激活
 
#edquota �u redhat          进VI编缉用户配额
 
编缉用户可用的字节数,软性的,硬性的,文件数,软件性的,硬性的
 
quota �u redhat      查看用户磁盘配额
 
edquota �t          配置过期时间
 
edquota命令能为一系列用户设置同一配额。假设已为用户ez设立了配额,以下命令将为随后的用户(即mj、jm和tp)复制完全相同的配额限制:
 
$ sudo /usr/sbin/edquota -up ez mj jm tp
 
quotaoff /mnt/sdb1  关闭磁盘配额
 
quotaon /mnt/sdb1    开启
 
repquota命令按用户(-u)或组(-g)报告配额使用情况。用repquota -a命令可以得到所有文件系统的报告。
 
如果想检查单个用户(-u)或组(-g),可以使用quota命令。单个用户可以用此命令检查他们自己的配额使用情况。
 
关于putty 0.58的简单设置
 
1.      修改语言环境 LANG=zh_CN.utf8
 
2.      修改传输数据的字符集translationàUTF8
 
3.      修改外观appearance字体font为新宋体
 
  ls �ld      显示文件属主,详细信息
 
六、Raid
 

安全的动态磁盘策略
linux内核可以模拟RAID控制器,用来管理硬盘,但只支持级别0,1,4,5
RAID0 又称striping
把连续的数据访问分散到多个磁盘上来提高存储性能,速度最快,但最危险。
RAID1 又称Mirror或Mirroring
最大限度的保证用户数据的可用性和可修复性,用户数据100%自动复制到另外一个硬盘上,速度稍慢,因为要同时写多个硬盘。
RAID5    最少需三个硬盘
不对存储的数据时行备份,而把数据和对应的奇偶校验信息分别存储在不同的磁盘上,当一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
RAID0+1      也称RAID10
结合RAID0和RAID1的优点,很多公司在应用
 
Linux中的软件RAID
1.默认内核已支持软件RAID控制器
2.需安装raidtools工具来创建管理RAID设备,raidtools包含有RAID创建管理工具和默认的示范性配置文件,安装完后编辑/etc/raidtab这配置文件,它可以从raidtools中的示范配置文件里(在/usr/share/doc/raid-~/目录下)复制。最后用以下命令创建RAID设备:
 
#mkraid /dev/md0
#mkraid -f /dev/md0
#mkraid -R /dev/md0
  后两个命令是强制创建,覆盖以前建的超级块。
 
  但Fedora Core5不使用这个,而用mdadm工具。
3.软件RAID设备文件名:/dev/mdN        (N=0,1,2…)
4.软件RAID设备可以当分区看待,需格式化后挂载
#mkfs.ext3    /dev/md1
#mount /dev/md1 /opt
5.停止RAID设备
#umount /opt
#raidstop /dev/md0
  要永久删除RAID设备,还需删除raidtab文件,否则重启后RAID仍起作用。
6.显示RAID设备信息
#lsraid -A -a /dev/md1
7.RAID1故障模拟
  假设sdb1与sdc1两个磁盘做RAID1,sdb1磁盘坏了,加入新一块磁盘sdd1。
#raidsetfaulty /dev/md1 /dev/sdb1
#raidhotadd /dev/md1 /dev/sdd1       
#more /proc/mdstat                    查看磁盘修复过程
#raidhotremove /dev/sdb1
  最后还要修改raidtab文件。
 
使用mdadm来创建和管理RAID
RAID0
      添加硬盘
      RAID设备的成员是硬盘分区,需先对硬盘分区,分区不能在同一物理硬盘上
      #fdisk /dev/sdb
      n创建主分区,t分区类型fd,w写保存
      #fdisk /dev/sdc
      #mdadm �Cv /dev/md0 �l0 �n2 /dev/sdb1 /dev/sdc1
              -C,--create            创建一个新的阵列
              -v,verbose            显示细节
              /dev/md0              阵列设备的名称
              -l,--level=              阵列级别,如0,1,4,5,6
              -n,--raid-devices=  阵列活动数目
              /dev/sd[bc]1          阵列包含的设备列表
      #more /proc/mdstat              查看阵列状态
      #mkfs.ext3 /dev/md0    创建文件系统
      #mount /dev/md0 /mnt/raid
      让系统自动挂载,修改/etc/fstab,添加
      /dev/md0      /mnt/raid        ext3 defaults 0 0
 
RAID5 故障模拟
      前面已创建了一个RAID5设备md0
      #mdadm �Cv /dev/md0 �l5 �n3 �x1 �c128 /dev/sd[b,c,d,e]1
      1.将/dev/sdb1标记为已损坏的设备
      #mdadm /dev/md0 �f  /dev/sdb1
      这时阵列开始重构和恢复数据
      2.移除损坏的设备
      #mdadm /dev/md0 �r /dev/sdb1
      3.将新设备添加到阵列
      注意,一:对硬盘正确分区,二:添加设备名要与被移除的一致,如sdb1
      #mdadm /dev/md0 �a /dev/sdb1
     
生成配置文件/etc/mdadm.conf
格式如下:
DEVICE /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 ARRAY /dev/md10 level=raid10 num-devices=4 UUID=12334343dkfj
 
其中UUID信息通过#mdadm �D /dev/md10得到
#mdadm �Ds 扫描该文件信息
 
常用阵列维护命令
1.启用阵列
      #mdadm �As /dev/md0
      -A    启用已存在的阵列
      -s    以/etc/mdadm.conf为依据
      没有创建mdadm.conf文件,则采用如下方法启用
      #mdadm �A /dev/md0 /dev/sd[bc]1
2.停止阵列
      #mdadm �S /dev/md0
3.显示阵列详细信息
      #mdadm �D /dev/md0

标签:

2008年2月19日 星期二

FreeBSD 用cvsd创建cvs服务器

1. 下载及安装

 

用ports 安装cvsd,位于 /usr/ports/devel/cvsd
用ports 安装cvs,位于 /usr/ports/devel/cvs ipv6

创建 cvsd 用户(#useradd)。

2. 修改配置

指定虚拟根目录的实际路径,在RootJail命令后设置
/usr/local/etc/cvsd/cvsd.conf

# RootJail
# This is the location of the chroot jail
# cvs should be run in.
# Specify @#none@# (without quotes) to not use
# a chroot jail.
# This directory should be initialized with
# the cvsd-buildroot script.
RootJail /home/soft/cvsd

创建 /home/soft/cvsd,
使用命令行 /usr/local/sbin/cvsd-buildroot /home/soft/cvsd/ 初始化虚根目录

创建cvsroot 目录 : mkdir /home/soft/cvsd/cvsroot

用命令 cvs -d /home/soft/cvsd/cvsroot init 初始化cvs目录

用命令建立cvs用户:
cvsd-passwd /home/soft/cvsd/cvsroot/ cvsuser:cvsd
上面的命令建立cvsuer 这个帐号,它和系统的 cvsd用户挂接。注意,cvsd是操作系统的用户名,是第一步操作中建立的。
你还可以使用该命令建立其它帐号.

将cvsroot 加入/usr/local/etc/cvsd/cvsd.conf的最后一行,如下面
Repos /cvsroot

此句指明要使用虚拟根下的 "cvsroot" 这个仓库。

3 设置启动脚本
#echo cvsd_enable="YES" >> /etc/rc.conf
#reboot

4.注意事项

cvsd只是cvs的一个外壳程序,将cvs运行在虚拟根环境下,提高系统的安全性。你在安装cvsd后还必须安装cvs程序。

不要跨分区建立仓库,否则会提示找不到用户.
我的/home 和/ 是两个不同的分区.我开始在home下创建仓库,在var下创建虚根目录,作了符号链接后不能读取文件.

声明:

转载此文请保留此声明信息。

驱动开发网 华语地区核心层开发专业网站 http://www.driverdevelop.com

软件创造价值,驱动提供力量!

标签:

2008年1月29日 星期二

freeBSD ftpd配置介绍

像自带sendmail一样,freeBSD在系统安装时自带了ftp,这就是freeBSD的ftpd进程,默认以inetd方式运行,你只要在/etc/inetd.conf里如下设置:
ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l
ftp stream tcp6 nowait root /usr/libexec/ftpd ftpd -l
并在/etc/rc.conf里设置:
inetd_enable="YES"
这样ftpd就能顺畅运行。
但是如果你的ftp运行很繁忙,用inetd方式运行ftp势必影响效率和性能,此时建议你以独立方式运行freeBSD的ftpd,方法很简单,如下:
在/etc/inetd.conf里注释掉以上两句,用如下方式启动:
#/usr/libexec/ftpd -D
ftpd的参数比较多常用的如下:
-A: 只允许匿名登录;
-M: 不允许匿名创建目录;
-m: 赋予匿名修改,覆盖等权限;
更多参数请man ftpd.
ftpd的相关设置文件:
/etc/ftpusers List of unwelcome/restricted users.
/etc/ftpchroot List of normal users who should be chroot'd.
/etc/ftphosts Virtual hosting configuration file.
/etc/ftpwelcome Welcome notice.
/etc/ftpmotd Welcome notice after login.
/var/run/nologin Displayed and access refused.
/var/log/ftpd Log file for anonymous transfers.
/var/log/xferlog Default place for session logs.

标签:

2008年1月11日 星期五

基于Apache mod_proxy的反向代理缓存加速实现

  Apache包含了mod_proxy模块,可以用来实现代理服务器,针对后台服务器的反向加速
  安装apache 1.3.x 编译时:
  --enable-shared=max --enable-module=most
  注:Apache 2.x中mod_proxy已经被分离成mod_proxy和mod_cache:同时mod_cache有基于文件和基于内存的不同实现
  创建/var/www/proxy,设置apache服务所用户可写
  mod_proxy配置样例:反相代理缓存+缓存
  架设前台的www.example.com反向代理后台的www.backend.com的8080端口服务。
  修改:httpd.conf
  <VirtualHost *>
  ServerName www.example.com
  ServerAdmin admin@example.com
  # reverse proxy setting
  ProxyPass / http://www.backend.com:8080/
  ProxyPassReverse / http://www.backend.com:8080/
  # cache dir root
  CacheRoot "/var/www/proxy"
  # max cache storage
  CacheSize 50000000
  # hour: every 4 hour
  CacheGcInterval 4 bitsCN_com
  # max page expire time: hour
  CacheMaxExpire 240
  # Expire time = (now - last_modified) * CacheLastModifiedFactor
  CacheLastModifiedFactor 0.1
  # defalt expire tag: hour
  CacheDefaultExpire 1
  # force complete after precent of content retrived: 60-90%
  CacheForceCompletion 80
  CustomLog /usr/local/apache/logs/dev_access_log combined
  </VirtualHost>
  
  基于Squid的反向代理加速实现
  Squid是一个更专用的代理服务器,性能和效率会比Apache的mod_proxy高很多。
  如果需要combined格式日志补丁:
   http://www.squid-cache.org/mail-archive/squid-dev/200301/0164.html
  squid的编译:
  ./configure --enable-useragent-log --enable-referer-log --enable-default-err-language=Simplify_Chinese --enable-err-languages="Simplify_Chinese English" --disable-internal-dns 
  make
  #make install
  #cd /usr/local/squid
  make dir cache
  chown squid.squid *
  vi /usr/local/squid/etc/squid.conf 中国网管论坛
  在/etc/hosts中:加入内部的DNS解析,比如:
   192.168.0.4 [url]www.chedong.com[/url]
  192.168.0.4 news.chedong.com
  192.168.0.3 bbs.chedong.com
  ---------------------cut here----------------------------------
  # visible name
  visible_hostname cache.example.com
  # cache config: space use 1G and memory use 256M
  cache_dir ufs /usr/local/squid/cache 1024 16 256
  cache_mem 256 MB
  cache_effective_user squid
  cache_effective_group squid
  
  http_port 80
  httpd_accel_host virtual
  httpd_accel_single_host off
  httpd_accel_port 80
  httpd_accel_uses_host_header on
  httpd_accel_with_proxy on
  # accelerater my domain only
  acl acceleratedHostA dstdomain .example1.com
  acl acceleratedHostB dstdomain .example2.com
  acl acceleratedHostC dstdomain .example3.com
  # accelerater http protocol on port 80
  acl acceleratedProtocol protocol HTTP
  acl acceleratedPort port 80
  # access arc 中国网管联盟
  acl all src 0.0.0.0/0.0.0.0
  # Allow requests when they are to the accelerated machine AND to the
  # right port with right protocol
  http_access allow acceleratedProtocol acceleratedPort acceleratedHostA
  http_access allow acceleratedProtocol acceleratedPort acceleratedHostB
  http_access allow acceleratedProtocol acceleratedPort acceleratedHostC
  # logging
  emulate_httpd_log on
  cache_store_log none
  # manager
  acl manager proto cache_object
  http_access allow manager all
  cachemgr_passwd pass all
  
  ----------------------cut here---------------------------------
  创建缓存目录:
  /usr/local/squid/sbin/squid -z
  启动squid
  /usr/local/squid/sbin/squid
  停止squid:
  /usr/local/squid/sbin/squid -k shutdown
  启用新配置:
  /usr/local/squid/sbin/squid -k reconfig
  通过crontab每天0点截断/轮循日志:
  0 0 * * * (/usr/local/squid/sbin/squid -k rotate)
  
  附:SQUID性能测试试验

bitscn.com


  phpMan.php是一个基于php的man page server,每个man
  page需要调用后台的man命令和很多页面格式化工具,系统负载比较高,提供了Cache
  Friendly的URL,以下是针对同样的页面的性能测试资料:
  测试环境:Redhat 8 on Cyrix 266 / 192M Mem
  测试程序:使用apache的ab(apache benchmark):
  测试条件:请求50次,并发50个连接
  测试项目:直接通过apache 1.3 (80端口) vs squid 2.5(8000端口:加速80端口)
  
  测试1:无CACHE的80端口动态输出:
  ab -n 100 -c 10 [url]http://www.chedong.com:81/phpMan.php/man/kill/1[/url]
  This is ApacheBench, Version 1.3d <$Revision: 1.2 $> apache-1.3
  Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd,
  [url]http://www.zeustech.net/[/url]
  Copyright (c) 1998-2001 The Apache Group, [url]http://www.apache.org/[/url]
  
  Benchmarking localhost (be patient).....done
  Server Software:   
  Apache/1.3.23                  
  Server Hostname:    localhost
  Server
  Port:      BBS.bitsCN.com网管论坛
  80
  
  Document Path:    
  /phpMan.php/man/kill/1
  Document Length:    4655 bytes
  
  Concurrency Level:   5
  Time taken for tests:  63.164 seconds
  Complete requests:   50
  Failed requests:    0
  Broken pipe errors:   0
  Total transferred:   245900 bytes
  HTML transferred:    232750 bytes
  Requests per second:  0.79 [#/sec] (mean)
  Time per request:    6316.40 [ms]
  (mean)
  Time per request:    1263.28 [ms]
  (mean, across all concurrent requests)
  Transfer rate:    
  3.89 [Kbytes/sec] received
  
  Connnection Times (ms)
        
  min mean[+/-sd] median  max
  Connect:    0 
  29 106.1   0  553
  Processing: 2942 6016
  1845.4  6227 10796
  
  Waiting:  
  2941 5999 1850.7  6226 10795
  
  Total:   
  2942 6045 1825.9  6227 10796
  
  Percentage of the requests served within a certain time (ms)
bitsCN.Com

   50%  6227
   66%  7069
   75%  7190
   80%  7474
   90%  8195
   95%  8898
   98%  9721
   99% 10796
  100% 10796 (last request)
  
  测试2:SQUID缓存输出
  /home/apache/bin/ab -n50 -c5
  "http://localhost:8000/phpMan.php/man/kill/1"
  This is ApacheBench, Version 1.3d <$Revision: 1.2 $> apache-1.3
  Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd,
  [url]http://www.zeustech.net/[/url]
  Copyright (c) 1998-2001 The Apache Group, [url]http://www.apache.org/[/url]
  
  Benchmarking localhost (be patient).....done
  Server Software:   
  Apache/1.3.23                  
  Server Hostname:    localhost
  Server
  Port:     
  8000
  
  Document Path:    
  /phpMan.php/man/kill/1
  Document Length:    4655 bytes
  
  Concurrency Level:   5
  Time taken for tests:  4.265 seconds
  Complete requests:   50

bitsCN.nET中国网管博客


  Failed requests:    0
  Broken pipe errors:   0
  Total transferred:   248043 bytes
  HTML transferred:    232750 bytes
  Requests per second:  11.72 [#/sec] (mean)
  Time per request:    426.50 [ms] (mean)
  Time per request:    85.30 [ms] (mean,
  across all concurrent requests)
  Transfer rate:    
  58.16 [Kbytes/sec] received
  
  Connnection Times (ms)
        
  min mean[+/-sd] median  max
  Connect:   
  0   1 
  9.5   0  68
  Processing:  
  7  83 537.4  
  7 3808
  
  Waiting:   
  5  81 529.1  
  6 3748
  
  Total:    
  7  84 547.0  
  7 3876
  
  Perce

标签:

2007年12月27日 星期四

查看硬件信息[freebsd]

less /var/run/dmesg.boot

标签:

2007年12月25日 星期二

FreeBSD 下安装Samba

1. Samba 安装
-----------------
Samba有二进制安装的版本, 也有源代码安装版本. 我用的系统是FreeBSD,
Samba的二进制安装并不支持FreeBSD. 所以, 我就选择了源代码安装方式.
 
我使用的samba版本是 samba-3.0.21a.tar.gz
 
shell> tar zxvf samba-3.0.21a.tar.gz
shell> cd samba-3.0.21a/source
shell> ./configure
shell> make
shell> make install
shell> cp ../examples/smb.conf.default /usr/local/samba/lib/smb.conf
 
 
 
2. 创建用户
-------------
这里我不得不说一句,目前我还没看到网上有任何一篇文章仔细地解释samba的用户关系问题!
不厚道啊~~ 我是摸索了好久才得出以下认识的:
    (1)samba用户管理使用smbpasswd和pdbedit命令
    (2)samba认证使用的用户和组首先要在本地系统中存在
    (3)samba只存储独立于本地系统的用户和口令信息,组则使用本地系统的组信息
 
首先在本地系统中创建用户user1和user2, 创建组group1和group2, user1属于group1,
user2属于group2.
 
 
然后再创建samba用户:
 
shell> /usr/local/samba/bin/smbpasswd -a user1
New SMB password: <new password>
Retype new SMB password: <new password>
 
shell> /usr/local/samba/bin/smbpasswd -a user2
New SMB password: <new password>
Retype new SMB password: <new password>
 
如果失败,则可能是本地系统没有事先建立同名帐号.
 
 
可以使用pdbedit -L列出现有samba用户清单, 如果清单中有新加入的用户名, 则说明用户
创建成功.
 
 
 
3. 配置Samba
-----------------
 
shell> vi /usr/local/samba/lib/smb.conf
 
下面是我实际搭建环境中的一个实例:
-----------------------------------
# Samba config file created using SWAT
# from 10.217.15.133 (10.217.15.133)
# Date: 2006/01/05 09:42:54
 
[global]
        workgroup = MYGROUP
        netbios name = SINA-NFS
        server string = Sina NFS
        log file = /usr/local/samba/var/log-%M-%I
        max log size = 50
        load printers = No
        dns proxy = No
 
[it]
        path = /data1/it
        valid users = @group1, @group2
        read list = @group1, @group2
        write list = @group1, @group2
 
[driver]
        path = /data2/driver
        write list = @group1
        guest ok = Yes
 
[software]
        path = /data2/software
        write list = @group1
        guest ok = Yes
 
[patch]
        path = /data2/patch
        write list = @group1
        guest ok = Yes
 
 
以上是通过SWAT配置后生成的最终配置文件,但实际上我手工配置时还在global部分加入了:
 
   security = user
   encrypt passwords = yes
   smb passwd file = /usr/local/samba/private/smbpasswd
 
 
那上面配置要实现的目的是:
 
(1)所有用户都可以看到(browseable)共享目录it,driver,software,patch;
(2)group1的用户对共享目录it,driver,software,patch有读写权限;
(3)group2的用户对共享目录it有读写权限,对共享目录driver,software,patch只读;
(4)非group1和group2的用户对共享目录driver,software,patch只读,对共享目录it无读写权限;
 
 
 
 
4.设置共享目录权限
---------------------
shell> chmod -R 0777 /data1/it
shell> chmod -R 0777 /data2/driver
shell> chmod -R 0777 /data2/patch
shell> chmod -R 0777 /data2/software
 
 
 
5.启动samba
---------------
/usr/local/samba/sbin/smbd -D &
/usr/local/samba/sbin/nmbd -D &
 
 
 
6.自动运行samba
------------------
 
有两种方法:
 
(1)在/etc/rc.local加入以下内容:
 
/usr/local/samba/sbin/smbd -D &
/usr/local/samba/sbin/nmbd -D &
 
 
 
(2)在/etc/inetd.conf中加入以下内容:
 
netbios-ssn  stream  tcp  nowait       root  /usr/local/samba/sbin/smbd -D   smbd
netbios-ns   dgram   udp  wait         root  /usr/local/samba/sbin/nmbd -D   nmbd
swat         stream  tcp  nowait/400   root  /usr/local/samba/sbin/swat      swat
第二种方法要保证inetd正常运行.
 
 
 
7.SWAT管理
-------------
默认情况下SWAT已被安装.
我试过通过执行/usr/local/samba/sbin/swat启动SWAT没有成功, 只有通过inetd.conf才可以成功启动.
 
启动成功后可以通过http://samba_server_ip:901/访问SWAT管理页面.
 
默认情况, SWAT使用本地系统的root用户作为管理帐号. 注意, 是系统用户, 不是samba的共享用户.
 
 
 
8.检查服务是否正常
---------------------
 
通过netstat -an看到服务端口已处理监听状态:
tcp4       0      0  *.901                  *.*                    LISTEN
tcp4       0      0  *.139                  *.*                    LISTEN
udp4       0      0  10.0.0.38.138          *.*                   
udp4       0      0  10.0.0.38.137          *.*
udp4       0      0  *.138                  *.*
udp4       0      0  *.137                  *.*
 
 
 
9.小技巧
-------------
 
(1)如何在一个共享目录中嵌入其它目录
 
有时我们需要使用多块磁盘, 那经常变更目录或更换磁盘非常麻烦, 我还不了解在samba中如何
使用多个磁盘支持同一共享目录. 所以, 我使用的方法是:
 
    *在已有共享目录中建立一个到其它磁盘的链接.*
 
假设我要在共享目录it下建立一个到磁盘/data3上的目录iso的链接, 那么需要进行以下操作:
shell> cd /data1/it
shell> ln -s /data3/iso iso
shell> chmod -R 0777 /data3/iso

标签:

scp(ssh文件复制)[freebsd]

SSH提供了一些命令和shell用来登录远程服务器。在默认情况下它不允许你拷贝文件,但是还是提供了一个"scp"命令。上传:scp 源文件 用户名@主机:目的文件名。scp -r 原文件夹 用户名@主机:目的文件夹。下载:scp 用户名@主机:/path/文件名 /path/文件名。

标签:

2007年12月24日 星期一

sendmail.群发[freebsd]


今天弄清了怎么实现群发功能,设置一个 all@domain.com的邮箱地址当向这个地址发送邮件时可以发送给指定用户
 
在sendmail的设置文件里有这样一支/etc/mail/aliases
我们vi它
最后+上
 
保存
 
#makemap hash /etc/mail/aliases.db < /etc/mail/aliases
 
好了!!

标签:

2007年12月21日 星期五

cvsup资源 - 中国[freebsd]

freebsd 安装 一个老机车的插曲


公司有一台hp的迷你机,光驱是笔记本光驱接口,只有一个ide。于是我在这个ide口上接了一个cd一个hdd准备安装bsd
安装好之后去掉cd发现原来此机器不能用bios来选择先启动的设备,只能按主-从 启动。。。装的时候cd当然是master了,于是hdd就被判为了ad1(从盘)。cd一去掉bsd启动不起了,原因是 /etc/fstab里记录的ad1***都不存在了!!hdd现在变成了master也就是ad0
于是我就进单用户想编辑/etc/fstab。。。郁闷的是我也不知道咋的他就成了只读模式了,还不让我改!!!
逼不得已我拆下硬盘接到了另外一个我已经装好了的bsd下。
 
然后
先check一下是否读到
#dmesg|grep ad
FreeBSD is a registered trademark of The FreeBSD Foundation.
xl0: Ethernet address: 00:b0:d0:bc:9d:ce
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
ad0: DMA limited to UDMA33, controller found non-ATA66 cable
ad0: 14324MB <Maxtor 51536H2 JAC61HU0> at ata0-master UDMA33
ad1: DMA limited to UDMA33, controller found non-ATA66 cable
ad1: 14594MB <Maxtor 51536H2 JAC61HU0> at ata0-slave UDMA33
 
看到了ad1那就是了
 
# fsck ad1
** /dev/ad1s1a
** Last Mounted on /mnt
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
1045 files, 18408 used, 235407 free (1783 frags, 29203 blocks, 0.7% fragmentation)
 
***** FILE SYSTEM MARKED CLEAN *****
# mount -rw /dev/ad1s1a /disc2
#cd /disc2/etc
#ee fstab
 
 
 
 
# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/ad0s1b             none            swap    sw              0       0
/dev/ad0s1a             /               ufs     rw              1       1
/dev/ad0s2f             /data           ufs     rw              2       2
/dev/ad0s2e             /tmp            ufs     rw              2       2
/dev/ad0s2g             /usr            ufs     rw              2       2
/dev/ad0s2d             /var            ufs     rw              2       2
/dev/acd0               /cdrom          cd9660  ro,noauto       0       0
 
 将Device列全改成ad0
保存退出关机卸硬盘
 
装到那台机车机器上一看。。。。oh yeah
起来了!!

标签:

2007年12月18日 星期二

不能用outlook发信?(freebsd sendmail)

在女朋友家用adsl不能从公司的smtp发送邮件。为什么呢?问了老大才解决了这个低级问题。
原来ip没有被授权

解决方法:
添加ip到/etc/mail/access
然后生成map文件
# makemap hash /etc/mail/access.map < /ec/mail/access

 

标签:

Mysql 主从镜像机制[freebsd]

测试用例
 
主机和从机配置完全一样。环境vm5.5.3 Freebsd6.2 Mysql-5.1.4
 
master : 192.168.1.71
slave  : 192.168.1.72
 
mysql是ports默认设置安装的
数据文件在/var/db/mysql/下
 
1.主机配置
#mysql -u root -p
#Enter password:
 
mysql>GRANT FILE,SELECT,REPLICATION SLAVE ON *.* TO seven@192.168.1.72 IDENTIFIED BY 'seven';
mysql> flush tables with read lock;
mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000035 |      106 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.01 sec)
记下file & position
 
mysql>exit
#/usr/local/etc/rc.d/mysql_server stop
 
#ee /etc/my.cnf
 
[mysqld]下
server-id=1
log-bin=mysql-bin #log文件名
 
2.从机配置
 
#ee /etc/my.cnf
[mysqld]下
server-id=2
 
重启mysql
#mysql -u root -p
#Enter password:
 
mysql>CHANGE MASTER TO
    ->     MASTER_HOST='192.168.1.71',           -- 主服务器名或IP地址
    ->     MASTER_USER='seven',             
    ->     MASTER_PASSWORD='seven',
    ->     MASTER_LOG_FILE='mysql-bin.000035',    -- 日志名
    ->     MASTER_LOG_POS=106;                    -- 显示偏移量     
mysql>START SLAVE;                                -- 启动从服务器线程
 

-----重启2台服务器-----
 
******测试*****
在主服务器(1.71)数据库上做如下操作:
mysql> show processlist\G
*************************** 1. row ***************************
     Id: 1
   User: root
   Host: localhost
     db: NULL
Command: Query
   Time: 0
  State: NULL
   Info: show processlist
*************************** 2. row ***************************
     Id: 2
   User: seven
   Host: 192.168.1.72:56493
     db: NULL
Command: Binlog Dump
   Time: 510
  State: Has sent all binlog to slave; waiting for binlog to be updated
   Info: NULL
2 rows in set (0.01 sec)
 

在从服务器(1.72)数据库上做如下操作:
 
mysql> show processlist\G
*************************** 1. row ***************************
     Id: 1
   User: system user
   Host:
     db: NULL
Command: Connect
   Time: 577
  State: Waiting for master to send event
   Info: NULL
*************************** 2. row ***************************
     Id: 2
   User: system user
   Host:
     db: NULL
Command: Connect
   Time: 451
  State: Has read all relay log; waiting for the slave I/O thread to update it
   Info: NULL
*************************** 3. row ***************************
     Id: 3
   User: root
   Host: localhost
     db: NULL
Command: Query
   Time: 0
  State: NULL
   Info: show processlist
3 rows in set (0.01 sec)
 

还可以使用。。。。
 
查看主机状态
mysql> show master status\G
*************************** 1. row ***************************
            File: mysql-bin.000022
        Position: 453
    Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.00 sec)
 
查看从服务器状态
mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.1.71
                  Master_User: seven
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000022
          Read_Master_Log_Pos: 453
               Relay_Log_File: bsd_s-relay-bin.000009
                Relay_Log_Pos: 598
        Relay_Master_Log_File: mysql-bin.000022
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 453
              Relay_Log_Space: 898
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 2013
                Last_IO_Error: error connecting to master 'seven@192.168.1.71:3306' - retry-time: 60  retries: 86400
               Last_SQL_Errno: 0
               Last_SQL_Error:
1 row in set (0.00 sec)
 

标签:

忘记mysql密码?[freebsd]


#killall mysqld
#/usr/local/bin/mysqld_safe --skip-grant-tables &
#mysql
...
mysql>use mysql
mysql>update user set password=password("root") where user="root";
mysql>flush privileges;
mysql>exit
 
#killall mysqld
 
#/usr/local/etc/rc.d/mysql_server start
 
#mysql -u root -p
#Enter password: root
mysql>

标签:

2007年12月17日 星期一

apache 不能启动[Freebsd]


启动 httpd 时出现
Starting httpd: httpd: apr_sockaddr_info_get() failed for MYHOST
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName.
 
这个问题是没有在 /etc/httpd/conf/httpd.conf 中设定 ServerName ,
所以它会用主机上的名称来取代,首先会去找/etc/hosts中有没有主机的定义
解决方式:
1.设定 ServerName
2.在 /etc/hosts 中填入主机名MYHOST:
 
>ee /etc/hosts
 
127.0.0.1 localhost.localdomain localhost MYHOST
 

 

标签:

更改ssh端口[Freebsd]

配置文件位置
/etc/ssh/sshd_config
 
在配置文件中搜索 Port
 
修改为
 
Port 2222
 
*2222为我要修改的当前端口,确保没有被使用。ssh原来的默认端口是22

 

标签:

2007年11月20日 星期二

FreeBSD 利用 ports 安装与配置 apache,mysql,php

首先申明,本帖非原创,但也不是转帖,是本人结合网络搜集的资料与自己实际安装操作过程中总结所得.那么就让我代表广大爱好者向那些站在我们脚下的巨人以及那些能抽出时间为我们写总结的人们致敬吧,因为在本人实践中深切地体会到他们的伟大与能够在百忙与他人分享经验的难能可贵.本帖适合新手或安装过程中出现同类问题的同志们参考,高人可以跳过了;但若能留下指点,自是不胜感激了.

众所周知,FreeBSD 提供了软件的 ports 安装方式, 可以很方便的定制安装所需要的应用软件.当我们装好系统之后,当然首先想到是配置 web 服务器,FreeBSD 默认标准安装并没有安装 apache,mysql 和 php,所以就要亲自动手安装了.ports 安装方式的好处在于,不会像 LINUX 那样,由于一个依懒包或者库文件而导至不得不到处找依懒包或库文件,下载下来全部装好再来装需要安装的软件;因为它会自动下载并安装依懒包或库文件,当然也不是每次都成功的,毕竟每个人遇到的错误可能是千奇百怪的.尽管网络上关于这方面的东西一搜一大堆 ,但个人认为好多都只是概念性的,但手册毕竟不是万能的;所以本人结合网摘与自己在安装过程遇的问题以及对问题的分析与解决来清晰的描述整个安装过程.

测试机环境:%uname -aFreeBSD http://www.myfreebsd.cn/6.2-RELEASE FreeBSD 6.2-RELEASE #0: Fri Jan 11 11:11:11 UTC 2007 root@dessler.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386

言归正传(安装系统不在讨论之列),开始我们的令人兴奋不已的征程吧.

1.apache 的安装与配置apache 给人感觉不光是稳定,还有亲切.之前偶在 RedHat 下手工编译安装过,相当顺利.这次用 ports 安装,同样的顺畅.

%whereis apache22apache22: /usr/ports/www/apache22 %cd /usr/ports/www/apache22%su /*取得管理员权限*/Password:www#make WITH_MPM=worker WITHOUT_IPV6=yes WITH_THREADS=yes WITHOUT_SSL=yes install clean

上面是手工指定编译选项,其实也可用以下命令来通过一个简易图形化界面选择编译选项:www# make config选择好选项 OK ,然后再www# make install clean

现在来配置 apache.www# cd /usr/local/etc/apache22/ /*apache 配置文件的目录*/www# cp httpd.conf httpd.conf.bak /*备份文件,以防不测*/www# vi httpd.conf /*编辑配置文件*/ 以下有改动的地方,当然您要是对 apache 相当熟悉了,可以略过了.(比如默认的服务器目录是 /usr/local/www/apache22/data ,可以根据需要设置.相关的配置文件忒多了.只要记得对应修改就行了.)...#管理员的电子邮箱;ServerAdmin hy0kle@gmail.com...#服务的名称,若没有 DNS 域名最写作主机的 IP;ServerName 192.168.0.226:80...#反正装了 PHP 后要回来设置的,不如一次性写好了.^_^添加对 PHP 的支持;偶当时少写了一个 d ,导至 apache 无法解析 PHP 文件,提示要下载文件;网有网友少写 / ;小小的疏忽造成的后果是花在量时间排错;<IfModule dir_module> DirectoryIndex index.html index.php</IfModule>...AddType application/x-gzip .gz .tgz AddType application/x-httpd-php .phpAddType application/x-httpd-php-source .phps...

设置为开机自动运行.www# vi /etc/rc.conf#添加下面这句后保存退出;apache22_enable="YES"

启动 apache.www# cd /usr/local/etc/apche22/rc.d/www# ./apache22 start

Now,激动人心的时间到了,打开浏览器,输入 http://127.0.0.1/http://localhost 回车.如果看到大大的"It works!"字样,那么恭喜了,apache 安装成功了.

2.安装 mysqlmysql 对我来说有阴影.大四的时候,我一同学在 FreeBSD 下安装 mysql 的次数绝对不下于我在 BSD 下安装五笔[scim]所尝试的次数(几乎方试遍了我所能找到的方法,要不是爱迪生的精神支持着我,怕就放弃了,只不过他在发明,我在发现.最终还是尝到了成功的喜悦).故安装的时候并没有"吊以轻心".但是安装过程还是出了问题,出错信息当时忘了记录了,大致意思是 mysql-client 已经存在,但版本不一致, 无法安装.因为之前我安装过 KDE 桌面,而 mysql-client-5.0 作为一个依懒包已经安装上了.于是为为防止强制安装造成无法使用,而且最新版本不一定就好于旧版本(有点吃不到葡萄说葡萄酸的嫌疑^*^),所以我退而求其次了,没有装 5.1 ,改装 5.0 了.

%cd /usr/ports/databases/mysql50-server/%suPassword:www# make WITH_CHARSET=gbk WITH_XCHARSET=all WITH_PROC_SCOPE_PTH=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes SKIP_DNS_CHECK=yes WITHOUT_INNODB=yes install clean 同样, mysql 也有简易图形化编译选项设置;www# make config选择好选项 OK ,然后再www# make install clean

等待一会儿了...如果没有报错回到提示符,那就说明是好消息了,恭喜! mysql 也安装成功了,下面就设置它也为开机启动吧. www# rehash /*刷新一下系统*/www# vi /etc/rc.conf#添加下面的选项后保存退出;mysql_enable="YES"

OK,来启动 mysql 吧.www# cd /usr/local/etc/rc.d/wwww# ./mysql-server start如果不出意外,现在 mysql 已经启动了,那么就怀着得意的心情测试一下吧:www# mysql理论上会出现 mysql 的提示符.:)

3.安装 phpcome on.当初以为 php 应该不会再有什么问题了吧,可结果装了两次才算完全成功.第一次安装时 php 的扩展选项不怎么搞的没有编译进去,运行 phpMyAdmi 时报错.打印出 phpinfo 和查看 apache 配置文件时才发现, apache 根本就没有加载 php 扩展模块.于是只好卸载了重装了一遍 php.如果遇到无法卸载,想要强制重新安装,可以用以下命令:# make install FORCE_PKG_REGISTER="yes"

OK,开始吧.%cd /usr/ports/lang/php5%suPassword:www# make config#记得一定要选中 APACHE22 ,否则 apache 不认 php 文件,会提示你让你下载文件. OK www# make install clean

又是等待...如果无报错,回到提示符时,则 php 已经安装了,但是还没有扩展库.

www# rehashwww# cd /usr/ports/lang/php5-extensionswww# make config/* php 的扩展库,如 GD,FTP,ZLIB,SESSION,PDF,MYSQL,HASH等等了,按需要定制吧. OK */www# make install clean

如果不出什么意外,就等着收获成功的喜悦吧.不过,现在还不算完.

www# rehash www# cd /usr/local/etc/rc.d/www# ./apache22 restartwww# cd /usr/local/etc/www# cp php.ini-dist php.ini www# vi php.ini/*配置 php.ini,想必到这儿所有都已经不成问题了.还是那句话,按需配置吧;保存并退出.*/...safe_mode_gid = Off...www# rehashwww# cd /usr/local/etc/rc.d/www# ./apache22 restart

标签:

freebsd6.0+apache2.2.0+mysql5.1.7+php5.1.2

操作系统以及版本:freebsd6.0+apache2.2.0+mysql5.1.7+php5.1.2

一、安装mysql51

先添加mysql组和mysql用户

QUOTE:pw addgroup mysqlpw adduser mysql开始安装

QUOTE:cd /usr/ports/databases/mysql51-server/ make install clean # n长的编译过程 rehash cp /usr/local/share/mysql/my- large.cnf /etc/my.cnf #服务器内存1G,但是与apache在一起/usr/local/share/mysql下面有5个my-xxxx.cnf文件my-small.cnf 最小配置安装,内存<=64M,数据数量最少my-large.cnf 内存=512Mmy-medium.cnf 32M<内存<64M,或者内存有128M,但是数据库与web服务器公用内存 my-huge.cnf 1G<内存<2G,服务器主要运行mysqlmy-innodb-heavy-4G.cnf 最大配置安装,内存至少4G

QUOTE:mysql_install_db -u mysql ; mysqld_safe -u mysql & #建立数据库目录二、安装apache22+php5

QUOTE: cd /usr/ports/www/apache22/ make install clean cd ../mod_php5 make install clean 配置/usr/local/etc/apache/httpd.conf:加入

QUOTE:AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps #可不加 *注意:第二行主要为查看php代码用,加上的话web目录下的所有扩展名为.phps的文件在被浏览器访问时都显示其源代码,我安装的时候就加了,但少了.phps的s,之后郁闷了半天

QUOTE:DocumentRoot "/usr/local/www/apache22/data"<Directory "/usr/local/www/apache22/data"> 这两个是你的主页目录,可以根据自己需要跟改,要一致。

QUOTE: Options Indexes FollowSymLinks去掉Indexes可以限制浏览你的主页目录

QUOTE:rehash apachectl start echo "<?php phpinfo() ?>" > /usr/loacl/www/data/info.php 可能你的apache启动的时候和我一样会报这样的错误:

QUOTE:[Wed Apr 12 21:48:09 2006] [warn] (2)No such file or directory: Failed to enable the 'httpready' Accept Filter我在google上找到了解决办法,执行如下操作:

QUOTE:kldload accf_http

grep accf /boot/defaults/loader.confaccf_data_load="NO" # Wait for data accept filteraccf_http_load="NO" # Wait for full HTTP request accept filter #将这个"NO"改成"YES" 但是为什么这样做还不知道,而且这个accf是做什么用的也不知道,还请大侠们来解释一下。

访问http://服务器的IP/info.php,如果有php的说明文件说明基本的php+apache2已经工作正常!

php5扩展功能安装

QUOTE:cd /usr/port/lang/php5-extensions/ make install clean #如果第一次安装会出现提示框,否则先make conf设置 选择需要的模块,当然也可以选择必须的,日后再添加。

apachectl restart 如果http://服务器ip/info.php有改动,恭喜你!安装成功!!

后续工作:

QUOTE:echo ' mysql_enable = "YES" ' >> /etc/rc.conf echo ' apache22_enable="YES" ' >> /etc/rc.conf 以便开机后自动启动mysql apache

标签:

2007年11月3日 星期六

普通用户执行su提示su:Sorry

运行su切换到root的,只有属于wheel组的用户,才能成功的切换到root,否则会出现su:sorry(或相似)的错误提示。所以解决对策是编辑/etc/group 文件,在wheel出现的那行末尾添加用户名,多个用户名以“,”分割

标签:

2007年11月2日 星期五

Linux中文件查找技术大全


 每一种操作系统都是由成千上万个不同种类的文件所组成的。其中有系统本身自带的
文件,用户自己的文件,还有共享文件等等。我们有时候经常忘记某份文件放在硬盘
中的哪个地方。在微软的WINDOWS操作系统中要查找一份文件是相当简单的事情,只
要在桌面上点击"开始"-"搜索"中就能按照各种方式在本地硬盘上,局域网络,甚至
在INTERNET上查找各种文件,文档。

可是使用Linux的用户就没有那么幸运了,在Linux上查找某个文件确实是一件比较麻
烦的事情。毕竟在Linux中需要我们使用专用的"查找"命令来寻找在硬盘上的文件。
Linux下的文件表达格式非常复杂,不象WINDOWS,DOS下都是统一的AAAAAAA.BBB格式
那么方便查找,在WINDOWS中,只要知道要查找的文件的文件名或者后缀就非常容易
查找到。Linux中查找文件的命令通常为"find"命令,"find"命令能帮助我们在使用,
管理Linux的日常事务中方便的查找出我们需要的文件。对于Linux新手来说,"find"
命令也是了解和学习Linux文件特点的方法。因为Linux发行版本繁多,版本升级很快,
在Linux书籍上往往写明某个配置文件的所在位置,往往Linux新手按图索骥还是不能
找到。比如说REDHAT Linux 7.O和REDHAT Linux 7.1中有些重要的配置文件所在的硬
盘位置和文件目录就有了很大的改变,如果不学会使用"find"命令,那么在成千上万
的Linux文件中要找到其中的一个配置文件是相当困难的,笔者在没有精通"find"命
令之前就吃过这样的苦头。好,下面就详细为大家介绍强大的"find"命令的全部使用
方法和用途。

通过文件名查找法:

这个方法说起来就和在WINDOWS下查找文件一样容易理解了。如果你把这个文件放在
单个的文件夹里面,只要使用常见的"ls"命令就能方便的查找出来,那么使用"find"
命令来查找它就不能给你留下深刻的印象,毕竟"find"命令的强大功能不止这个。如
果知道了某个文件的文件名,而不知道这个文件放到哪个文件夹,甚至是层层套嵌的
文件夹里。举例说明,假设你忘记了httpd.conf这个文件在系统的哪个目录下,甚至
在系统的某个地方也不知道,则这是可以使用如下命令:

find / -name httpd.conf

这个命令语法看起来很容易就明白了,就是直接在find后面写上 -name,表明要求
系统按照文件名查找,最后写上httpd.conf这个目标文件名即可 。稍等一会系统会
在计算机屏幕上显示出查找结果列表:

etc/httpd/conf/httpd.conf

这就是httpd.conf这个文件在Linux系统中的完整路径。查找成功。

如果输入以上查找命令后系统并没有显示出结果,那么不要以为系统没有执行
find/ -name httpd.conf命令,而可能是你的系统中没有安装Apache服务器,这时
只要你安装了Apache Web服务器,然后再使用find / -name httpd.conf就能找到这
个配置文件了。

无错误查找技巧:

在Linux系统中"find"命令是大多数系统用户都可以使用的命令,并不是ROOT系统管理
员的专利。但是普通用户使用"find"命令时也有可能遇到这样的问题,那就是Linux系
统中系统管理员ROOT可以把某些文件目录设置成禁止访问模式。这样普通用户就没有
权限用"find"命令来查询这些目录或者文件。当普通用户使用"find"命令来查询这些
文件目录是,往往会出现"Permissiondenied."(禁止访问)字样。系统将无法查询到
你想要的文件。为了避免这样的错误,我们可是使用转移错误提示的方法尝试着查找
文件,输入
find / -name access_log 2>/dev/null

这个方法是把查找错误提示转移到特定的目录中去。系统执行这个命令后,遇到错误
的信息就直接输送到stderrstream 2 中,access_log 2就是表明系统将把错误信息输
送到stderrstream 2中,/dev/null是一个特殊的文件,表明空的或者错误的信息,这
样查询到的错误信息将被转移了,不会再显示了。

在Linux系统查找文件也会遇到这样一个实际问题。如果我们在整个硬盘,这个系统中
查找某个文件就要花费相当长的一段时间,特别是大型Linux系统和容量较大的硬盘,
文件放在套嵌很深的目录中的时候。如果我们知道了这个文件存放在某个大的目录中,
那么只要在这个目录中往下找就能节省很多时间了。使用find /etc -name httpd.conf
就可以解决这个问题。上面的命令就是表示在etc目录中查询httpd.conf这个文件。
这里再说明一下"/ "这个函数符号的含义,如果输入 "find/ "就是表示要求Linux系
统在整个ROOT目录下查找文件,也就是在整个硬盘上查找文件,而"find/etc"就是只
在 etc目录下查找文件。因为"find/etc"表示只在etc目录下查找文件,所以查找的
速度就相应要快很多了。

根据部分文件名查找方法:

这个方法和在WINDOWS中查找已知的文件名方法是一样的。不过