红联Linux门户
Linux帮助

我的linux红帽子家族学习借鉴使用笔记(备份用,里面大部分是转别人的)无限更新~~

发布时间:2009-11-25 09:47:05来源:红联作者:baizx
[i=s] 本帖最后由 baizx 于 2010-1-29 09:31 编辑 [/i]

Ip 配置方法:

ip addr add dev eth0
ip link set dev eth0

vi /etc/rc.d/rc.local ifcongfig etho IP或者写个脚本
bash
再就是改/etc/sysconfig/network-scrips/ifcfg-eth0然后 ifdown eth0 再ifup eth0 或者service network restart 重启网卡服务 就不用重启LINUX了

SETUP 或者netconfig也可以


Linux下星际译王 stardict 的安装

  
“星际译王”是用Gtk2开发的跨平台的国际化的词典软件。它具有“通配符匹配”、“选中区取词”、“模糊查询”等强大功能。本文主要解说一下主程序和词库的安装;

  
一、什么是星际译王 stardict ;

  
“星际译王”是用Gtk2开发的跨平台的国际化的词典软件。它具有“通配符匹配”、“选中区取词”、“模糊查询”等强大功能。所以他不仅仅是汉英和英汉词典;目前星际译王的词库多多;但国人大多还是用英汉和汉英比较多;

  
官方主站: http://stardict.sourceforge.net

  
词库页面: 词库页面http://stardict.sourceforge.net/Dictionaries.php

  
中英字典: 中(简体)英词典http://stardict.sourceforge.net/Dictionaries_zh_CN.php

  
其它词典,请到词库存页面上查看;

  
二、安装星际译王 stardict;

  
1、安装主程序 stardict

  
您可以通过到官方直接下载 stardict 的RPM 包,也可以通过 yum 或apt 来在线安装stardict ;其实系统光盘映像中也有stardict的主程序包,只是没有词典;

  
[root@localhost beinan]# yum install stardict

  
或者直接下载rpm 包来安装;

  
[root@localhost beinan]#rpm -ivh stardict*

  
2、安装词典;

  
我们通过 中(简体)英词典下载所有的RPM 包,放在一个目录中,比如是stardict目录;执行安装命令;

  
[root@localhost stardict]# rpm -ivh stardict*.rpm

  
Preparing... ########################################### [100%]

  
1:stardict-xdict-ec-gb ########################################### [ 13%]

  
2:stardict-cdict-gb ########################################### [ 25%]

  
3:stardict-cedict-gb ########################################### [ 38%]

  
4:stardict-hanzim ########################################### [ 50%]

  
5:stardict-langdao-ec-gb ########################################### [ 63%]

  
6:stardict-oxford-gb ########################################### [ 75%]

  
7:stardict-stardict1.3 ########################################### [ 88%]

  
8:stardict-xdict-ce-gb ########################################### [100%]

  
3、调用stardict ;

  
[beinan@localhost stardict]$ stardict

  
加载字典详细信息如下:

  
bookname: 朗道英汉字典5.0 , wordcount 435468

  
bookname: XDICT英汉辞典 , wordcount 177842

  
bookname: stardict1.3英汉辞典 , wordcount 51214

  
bookname: CEDICT汉英辞典 , wordcount 23451

  
bookname: XDICT汉英辞典 , wordcount 160997

  
bookname: 牛津现代英汉双解词典 , wordcount 39429

  
bookname: CDICT5英汉辞典 , wordcount 57510

  
bookname: Hanzi Master 1.3 , wordcount 25992

  
4、其它词典的安装;

  
大同小异,自己下载,直接rpm -vih file.rpm 就能安装上;没有什么难的;

  



yum
举例:比如下载了一个没有签名的软件包,可以这样安装


1. yum --nogpgcheck install 软件包名称


复制代码

我一般习惯先su到root,再用yum。网上很多直接再普通用户下用yum的用法,这个例子就应该是这样的


1. su -c 'yum --nogpgcheck install 软件包名称‘


复制代码

我觉得如果要连续操作的时候还是先切到su方便些,不然老要输入密码,命令格式也显的复杂。如果只是安装一个软件的话网上流行的这种方法很好,装完之后自动退出到普通用户模式,安全性高。本文只是列出常用的操作,有些参数和命令没有涉及,不够应该是够用了。

新装好的系统应该简单配置一下yum,载入几个常用的插件,让它更好用


1. yum install yumex yum-presto yum-fastestmirror yum-security yum-allowdowngrade


复制代码

yumex yum的扩展,图形前端

yum-presto 增量包应用插件,有增量包的时候优先下载增量包,可以大大减少下载量

yum-fastestmirror 可以让yum选择速度最快的源(软件仓库)

yum-security 安全插件,具体功能我也不是很清楚

yum-allowdowngrade 允许软件降级的插件


yum是个功能强悍的包管理工具,命令语法很简单的:yum --操作参数 命令 包名称1 包名称2 .......,,有些操作也可以没有包名称(软件名) ,支持再在报包名称中使用通配符*来一次安装多个名称前端一致的软件包。 下面把操作参数和命令列出来,大多数时候没必要要操作参数的。


Options list (操作参数)

h, --help 显示帮助信息,并退出

-t, --tolerant 忍受发生的错误

-C 从缓冲中运行,而不是升级缓存

-R [minutes] 最大化的命令等待时间

-d [debug level] 调试输出级别

--showduplicates 显示复制, 在repo,list/search命令下

-e [error level] 错误输出级别

-q, --quiet 安静的操作

-y 回答所有的问题为是

--version 显示 YUM版本信息并退出

--installroot=[path] 设置为root安装

--enablerepo=[repo] 激活一个或多个仓库(支持通配符)

--disablerepo=[repo] 禁掉一个或多个仓库(支持通配符)

-x [package], --exclude=[package] 在名称或glob不包含包。

--disableexcludes=[repo] 禁掉出了这个之外的别的仓库

--noplugins 禁掉yum插件

--nogpgcheck 禁掉GPG验证检查,没有签名的软件安装加这个参数

--disableplugin=[plugin] 用名称禁掉插件

--enableplugin=[plugin] 用名称启用插件

--skip-broken 忽略包的依赖问题

--allow-downgrade 晕软件包降级

--disablepresto 禁用Presto 插件并且不下载任何增量包



list of Commands:(操作命令)


check-update 检查可提供的包升级

clean 删除缓存数据

deplist 列出包依赖相关

downgrade 降级一个软件包

erase 移除一个或多个包从你的系统

groupinfo 显示关于包组的细节

groupinstall 从组里安装软件包到你的系统

grouplist 列出当前的组

groupremove 在一个组中移除包从您的系统

help 显示帮助用法信息

info 显示关于包或一组包的细节信息

info-security 返回影响系统安全的数据

install 安装一个或多个软件包在你的系统

list 列出一个包或某组的包

localinstall 安装本地 RPM

makecache 生成原数据缓存

reinstall 重新安装一个包

repolist 显示软件仓库的配置

resolvedep 决定哪个包提供了给定的依赖

search 查找包细节居给定的字符串

shell 运行交互式的yum shell

update 更新一个或多个系统 中已安装的包

update-minimal 只升级安装最新的包,系统补丁

upgrade 升级整个系统,一般在系统版本升级的时候用





yum -y remove httpd
卸载多个相类似的软件时
yum -y remove httpd*
卸载多个非类似软件时
yum -y remove httpd php php-gd mysql


像windows下的快捷方式-刚摸索出来。

1.rpm包

rpm包一般在终端输入对应与以包名命名的命令

就可以起动,如,vi起动vi编译器,xmms起动xmms.........


下面讲一下怎样利用ln创建rpm包的快捷方式:

例如,rpm -ql gedit,看一下gedit的安装位置和其执行命令的位置

/etc/gconf/schemas/gedit.schemas
/usr/bin/gedit




上面显示了gedit在/usr/bin下,

好了,开始创建(注意大小写):

ln -s /usr/bin/gedit /root/Desktop/gedit

ok。上面的意思是把快捷方式放在桌面上,命名为gedit


其他rpm包,道理same!


2.tar.gz包

此包不能rpm -ql

拿我的gftp举例(我把rpm包的gftp卸了,装tar.gz的gftp包,在

/usr/local/gftp)

我也是新手,我是安装时候制定安装位置的,

在安装位置找到gftp

同样:

ln -s /usr/local/gftp/bin/gftp /root/Desktop/gftp

ok..........

3.
其他情况

有些安装包,以现在的技术,找不到它,

但我知道执行的命令--难道每次用都要输入执行命令?

不必,

在桌面上新建起动器,在命令框,输入执行它的命令
ok






双系统只有一个启动解决:

在双安装系统的时候 记得在格完盘后的启动项那里 一个是LINUX的 一个是以前的系统的要设置好


如忘记设置 可在/BOOT/GRUB下的menu.lst 或grub.conf




双系统时间不能同步:

问题主要是FC7中是启用了UTC时间。关闭UTC即可。
打开:/etc/sysconfig/clock
内容为:
# The ZONE parameter is only evaluated by system-config-date.
# The timezone of the system is defined by the contents of /etc/localtime.
ZONE="Asia/Shanghai"
UTC=true
ARC=false
把 UTC=true 一行改为: UTC= false
保存,退出, 重启,恢得正常了。
也可以用右键点击时间栏,然后选择调整日期和时间,然后去掉时区下面的系统时钟使用UTC的选项,保存退出即可。
最好的办法还是装一个webmin可以同时调整系统时间和硬件时间,以及将系统时间和硬件时间同步,而且可以方便的管理系统其他的信息。
安装webmin的方法和使用,见
wenmin的网址

Linux硬件时间的设置方法(转载):
hwclock [--adjust][--debug][--directisa][--hctosys][--show][--systohc][--test]
[--utc][--version][--set --date=]
补充说明:在Linux
中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。当
Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。所有Linux相关指令与函数都是读取系统时钟的设定。
参  数:
--adjust  hwclock每次更改硬件时钟时,都会记录在/etc/adjtime文件中。使用--adjust参数,可使hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟。
--debug  显示hwclock执行时详细的信息。
--directisa  hwclock预设从/dev/rtc设备来存取硬件时钟。若无法存取时,可用此参数直接以I/O指令来存取硬件时钟。
--hctosys  将系统时钟调整为与目前的硬件时钟一致。
--set --date=  设定硬件时钟。
--show  显示硬件时钟的时间与日期。
--systohc  将硬件时钟调整为与目前的系统时钟一致。
--test  仅测试程序,而不会实际更改硬件时钟。
--utc  若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作。
--version  显示版本信息

Vista下安装LINUX
安装准备:1.磁盘分区。vista下用系统自带的分区工具分出2个新区,一个做根分区,一个做swap分区。Vista系统有个UAC的东西,要先把这个东西关了。进入控制面板>用户帐户和家庭安全>用户帐户>打开或关闭用户帐户控制。右键单击桌面“计算机”图标,选择“管理”,进入“计算机管理”窗口,选择“存储”-“磁盘管理”。查看硬盘分区,分出两个空白分区,最好是最后的两个区。xp下用相应的分区工具。更多磁盘分区知识,请参考 零命令玩转Ubuntu 8.04 之 安装篇 (准备知识)2.下载文件。下载一个最新grub for dos ,下载ubuntu8.04安装文件,ubuntu-8.04.1-desktop-i386.iso ,ubuntu-8.04.1-alternate-i386.iso,ubuntu-8.04.1-dvd-i386.iso 三个文件都可以,只不过后面操作稍有不同。安装过程:SP1 不能双系统(其实是过于麻烦)1.解压grub4dos文件夹中的grldr,grldr.mbr,menu.lst到C:\ 。 备注:menu.lst不复制也行,自己用记事本新建一个文件另存为menu.lst。C盘格式为ntfs或者fat32都可以安装。2.把ubuntu安装程序放到c盘根目录下,解压缩ISO文件中的casper目录内的initrd.gz和vmlinuz两个文件,并将其复制到C盘根目录下。如果下载的是desktop版,除了以上文件外,还需要把ISO镜像中的.disk目录也复制到C盘根目录下。3.把grub添加到系统启动菜单。vista和xp下的操作不一样。 vista下:在cmd中输入以下命令: bcdedit /create /d "GRUB4DOS" /application bootsector 命令结果应该会返回一个GUID,后面的命令用到这个GUID bcdedit /set {GUID} device partition=C: bcdedit /set {GUID} path \grldr.mbr bcdedit /displayorder {GUID} /addlast xp下:在C盘根目录系统文件boot.ini的最后加上一行:c:\grldr=”GRUB4DOS“ 如果boot.ini中的timeout值为零,把它设置为大于0的数字,例如timeout=30,然后保存。 注意:boot.ini文件一般是隐藏的,你需要在文件夹选项中设置显示所有文件,或者在cmd中使 用以下命令来去掉boot.ini的隐藏属性:attrib -s -r -h c:\boot.ini4.用记事本编辑刚才复制的menu.lst(如果没有复制,就新建一个),粘贴以下内容:color black/cyan yellow/cyantimeout 30default /defaulttitle Microsoft Windows Vistaroot (hd0,0)savedefaultmakeactivechainloader +1title Install Ubunturoot (hd0,0)kernel=/vmlinuzinitrd=/initrd.gztitle rebootsavedefault --wait=2reboottitle haltsavedefault --wait=2halt如果是alternate和dvd的,直接复制粘贴上面的代码。如果是desktop的,把红色代码替换为:title Install Ubunturoot (hd0,0)kernel /vmlinuz boot=casper iso-scan/filename=/ubuntu-8.04.1-desktop-i386.isoinitrd /initrd.gz备注:如果第一个分区是系统还原分区,C盘在第二个分区,把(hd0,0)改为(hd0,1)。如果desktop安装过程提示找不到文件,检查你下载的文件名是否和iso-scan/filename=/ubuntu-8.04.1-desktop-i386.iso中的文件名一样,如不一样,修改代码。5.重新启动电脑,启动菜单多了一个GRUB4DOS选项,进入后选Install Ubuntu。 安装过程中可以参考 ubuntu中文wiki的” 写给ubunt新手 “或者网上其他图文教程,主要是磁盘分区过程。后面有一个步选择安装软件时,普通用户选desktop就可以了。 最后一步可以把grub写入mbr,用grub引导vista和ubuntu双系统,也可以跟我一样,写在linux分区,用vista的启动管理器引导grub,再用grub引导ubuntu。 如果网速不快,安装时可以拔掉网线。如果自动配置了网络,在后来apt-get下载软件时,速度很慢,可以 Ctrl+Alt+F2 ,sudo pkill apt-get ,Alt+F7。6.重启,进入vista,编辑menu.lst,添加ubuntu启动项。title Start Ubuntu 8.04root (hd0,5)kernel /boot/vmlinuz-2.6.24-19-generic root=/dev/sda6 ro quiet splashinitrd /boot/initrd.img-2.6.24-19-generic如果懒得重复修改menu.lst,直接复制我下面的。重启进入GRUB4DOS,选择Start Ubuntu 就能登陆ubuntu系统了。包括各种ubuntu的安装和启动菜单的menu.lst:color black/cyan yellow/cyantimeout 30default /defaulttitle Microsoft Windows Vistaroot (hd0,0)savedefaultmakeactivechainloader +1title Start Ubuntu 8.04root (hd0,5)kernel /boot/vmlinuz-2.6.24-19-generic root=/dev/sda6 ro quiet splashinitrd /boot/initrd.img-2.6.24-19-generictitle Start Ubuntu 8.04 (rescue)root (hd0,5)kernel /boot/vmlinuz-2.6.24-19-generic root=/dev/sda6 ro single quiet splashinitrd /boot/initrd.img-2.6.24-19-generictitle Install Ubuntu (alternate / dvd)root (hd0,0)kernel=/vmlinuzinitrd=/initrd.gztitle Install Ubuntu 8.04 (desktop)root (hd0,0)kernel /vmlinuz boot=casper iso-scan/filename=/Ubuntu-8.04.1-desktop-i386.iso quiet splash ro locale=zh_CN.UTF-8initrd /initrd.gztitle rebootsavedefault --wait=2reboottitle haltsavedefault --wait=2halt备注:代码中红色部分需要根据自己的实际情况进行更改。1. 一处是hd(0,5),对应的是sda6 hd(0,5) 是指第一硬盘的第6分区,对应于ubuntu,就是sda6。 hd(1,2) 是指第二硬盘的第3分区,对应于ubuntu,就是sdb3。 GRUB 要求设备名被括在一个 ( ) 中。fd表示软盘,hd 表示硬盘(不区分 IDE 还是 SCSI)。其次设备是从 0 开始编号,分区也是如此,分区和设备之间用一个 ‘,’ 分开。 ""注意"":"root"必须指向你的'/boot/'分区,如果你有的话。没有,则指向'/'分区。2. kernel和initrd后面的红色数字为内核版本,安装过程中需要留意一下,如果是8.04.1的话,应该是2.6.24-19 ,如果是其他内核,请自己修改一下。
tips:硬盘分区简单介绍

1. 硬盘分区 一块硬盘可以分为四个主分区,或三个主分区加上一个扩展分区。扩展分区其实只是一个容器,我们实际上并不直接使用扩展分区。在扩展分区内,我们可以继续划分逻辑分区。一般的认为在一个扩展分区内,能分出无数个逻辑分区。正因为有了逻辑分区,一块硬盘才能被分成很多个分区。
2. Linux中的硬盘分区 与Windows不同,Linux并不是用C, D, E, F等盘符来标识每一个分区的,而是用一系列设备文件来标识----Linux把一切硬件设备都当成文件。比如,Linux下,四个主分区分别对应/dev /sda1, /dev/sda2, /dev/sda3, /dev/sda4。其中/dev是设备文件所在的目录,sd代表SCSI Disk,a代表第一个SCSI设备,数字1,2,3,4分别代代表了四个主分区。如果你不知道什么是SCSI Disk,不用担心,因为你并不需要知道它究竟是什么。通常,如果你的电脑中只有一块硬盘,那么,这块硬盘一定是/dev/sda。
可能你以前接触过Linux,或曾经在一些老旧的资料中看到过/dev/hda代表第一个主IDE通道上的硬盘,……你现在已经无需知道这些了。因为 Ubuntu已经取消了用hd和sd区分不同类型的硬盘的机制,取而代之的,用sda统一代表电脑中的第一块硬盘。
Linux下,/dev/sdaX中的数字X的编号是有限的。在Linux下,最大的分区编号是16。因此,主分区和扩展分区编号占用 1~4,逻辑分区占用5~16。即使你的硬盘中只有一个主分区(如,/dev/sda1)和一个扩展分区(/dev/sda2),剩下的两个主分区编号: /dev/sda3, dev/sda4 也不会分配给逻辑分区。第一个逻辑分区一定是从/dev/sda5开始编号的。这点与Windows下盘符的编制类似。如:A盘一定是3.5英寸软驱,B 盘一定是5.25英寸软件,而从C盘开始才是硬盘分区。即使电脑上没有软驱,第一个硬盘分区的编号也是C,而不是A。

XP下安装:
最近安装了Fedora11,遇到不少的困难,也走了很多弯路,在这里总结下。

一、安装准备
我是在windowsXP下安装的F11,就是装个双系统。
首先给系统分区,我是分了三个区: 使用了分区魔术师
1、主分区,就是挂载“/”根目录的分区,给了15G。
2、挂载“/tmp”目录的分区,因为在装软件的时候经常要求/tmp文件有一定的空间,所以,我就单独给了它一个分区,2G。
3、swap分区,交换分区,这个必须要有的,一般是内存空间的2倍,我的内存2,所以划给它4G。
总共20G。
4,当然你也可以不需要先分区,但是一到定要 删除 WIN的一部分分区留给LINUX。安装的时候手动分区就好

二、下载镜像
我是在F10的官方网站http://fedoraproject.org/zh_CN/get-fedora下载的那个3G多的,就是Upgrade to Fedora 10 from an older version这个,还有一个685M的liveCD,可以制作CD,DVD啥的,从光盘安装,这里我用了个分量大的,从硬盘安装。(很明显两个里面的目录结构是不同的)。
下载之后将它放在一个FAT32格式的硬盘下,一定是FAT32,要不然安装的时候找不到文件。从中提取几个必要的文件,isolinux文件夹中的vmlinuz和initrd.img,为了文件目录的完整性,直接解压出文件夹就行了,放在跟镜像同一个目录下。还有一个images文件夹,也解压到同一个目录下。
文件目录:


Fedora-11-i386-DVD.iso
isolinux
images


三、grub4dos的使用
grub for dos 可以帮助你引导安装linux,如果想详细了解什么是grub4dos可以去百度下。
http://www.52zhe.cn/read.php/213.htm
我是下载的grub4dos-0.4.4,这是个绿色版的。
从中提取三个文件: grldr , , menu.lst放在C盘下,其实是放在FAT32文件系统的盘下就行,我就放在C盘下,用完了可以删除。 打开文件menu.lst,在文档的末尾添加如下代码

title Install-Fedora11
kernel (hd0,0)/isolinux/vmlinuz
initrd (hd0,0)/isolinux/initrd.img



这3条命令最好抄下来,如果是第一次安装的话。

然后打开我的电脑->右击属性->高级->启动与故障恢复->高级->编辑,打开boot.ini文件,在文件最后添加
C:\grldr="GRUB"
确认之后,可以重启了,启动之后就可以看到grub启动的选项,进入后,可以看到很多选项,当然我们选择刚才配置的最后一项Install-Fedora11,进入,就可以安装Fedora11了,至此第一步完成。

故障处理:

如果不小心弄坏了,但是还有grub提示,那么可以进入grub命令行依次输入:
root (hd0,0)
makeactive
chainloader +1
boot
就可以重新进入Windows了。

如果没有在menu.lst中添加上面的代码,在选项中找不到Install-Fedora11这项,也可以进入命令行,依次输入:
kernel (hd0,0)/isolinux/vmlinuz
initrd (hd0,0)/isolinux/initrd.img
boot
就行了。

如果在安装的过程中因为人为原因或者自然原因导致安装没完成就机器断电了,使其MBR表损坏不能进入任何系统,任何界面。
可以使用PE进入系统然后安装DiskGenius 修复 MBR 重启 ,OK! 又可以进入WINDOWS XP了!呵呵……

sensors(cpu温度)
groupadd (建立组)
groupdel (删除组)
mv (移动或更名现有的文件或目录)
cp(copy)
find (查找)
tar(解压)
gzip (压缩)
zip (压缩)
unzip(解压缩zip文件)
su -l(变量也跟过来)
uname -a (查看系统是 32 还是64)(686 386=32;86_64 64 大概)
pklill (群杀进程)
date (日期显示与添加修改)
useradd (建立用户)passwd (建立密码) -d(删除密码)
userdel (删除用户)
;(例子)#(注销)(vi 某个文件里)
#(注销) “”(如有文档 -AX 之类的无法删除则加)
cat (把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案)
rm -rf(强制删除)
mkdir(建目录)mkdir --mode(-m)=666 dir2 (建出来的目录权限) -p(确保路径目录存在)
touch(建文件)
ls -lh (查看文件大小) ls -l=ll
DF -m (查看磁盘使用M)df(查看是否正确mount)
ifdown ifup (关闭启动 网卡)
ntsysv setup 网络配置
vi /etc/inittab(修改 3 5 )
set nu(加上数字)
startX=init 5(进入图形界面)
mount (挂载)
umount (卸载)
chgrp (变更文件所属组)
chmod(变更文件目录权限)
chown (变更文件或目录的拥有者或所属群组。)
chkconfig --list dhcpd(查看级别)
chkconfig --level 35 dhcpd on(提升DHCP 3 5 on)
ps -e(查看所有进程)
arp (使用前先PING一下)
vi /etc/rc.d/rc.local(启动时候最后的脚本)
system-config-packages(在图形界面下安装各种服务)
pwd(查看绝对路径)
vi -o 文件1 文件2(同时打开两个文件)
vi -o 1.txt 2.txt
rpm -qa | grep XXX(安装多少系列软件)
rpm -ql XXX(软件安装到哪里)
grep -v "^#" /etc/samba/smb.conf |grep -v "^;"(查看SMB有效命令)
yum upgrade(升级整个系统)
yum update(升级已经有的包)
linux内核升级后如何删除旧的内核
用fdisk -l ;df -lh ;more /etc/fstab来确认分区情况;
inux下为php添加GD库的步骤如下:一、下载
gd-2.0.33.tar.gz http://www.boutell.com/gd/jpegsrc.v6b.tar.gz http://www.ijg.org/libpng-1.2.7.tar.tar http://sourceforge.net/projects/libpng/zlib-1.2.2.tar.gz http://sourceforge.net/projects/zlib/freetype-2.1.9.tar.gz http://sourceforge.net/projects/freetype/php-4.3.9.tar.gz http://www.php.net
安装步骤:安装libxml # tar -zxf libxml2-2.6.19.tar.gz# cd libxml2-2.6.19# ./configure (xml默认安装就可以,不要指定路径了,因为安装时php可能找不到它,PHP5只支持libxml2-2.5.10以上版本) # make # make install 安装zlib # tar -zxf zlib-1.1.3.tar.gz# cd zlib-1.1.3# ./configure --prefix=/usr/local/zlib (注意,如果您以前没有安装zlib,可以不指定路径,我是没有删除以前的低版本才指定的!以下雷同!) # make # make install 安装jpeg # tar -zxf jpegsrc.v6b.tar.gz # cd jpeg-6b/ # ./configure --prefix=/usr/local/jpeg# make # make install-lib 如果你选择默认安装,可能很顺利,指定路径后,请先创建以下文件夹 错误提示:...... /usr/bin/install -c -m 644 jconfig.h /usr/local/jpeg6/include/jconfig.h /usr/bin/install: 无法创建一般文件‘/usr/local/jpeg/include/jconfig.h’: 没有那个文件或目录 make: *** [install-headers] Error 1 # mkdir /usr/local/jpeg# mkdir /usr/local/jpeg/include # mkdir /usr/local/jpeg/lib # make install-lib # make install 安装时如果错误提示: /usr/bin/install: 无法创建一般文件‘/usr/local/jpeg6/lib/libjpeg.a’: 没有那个文件或目录 make: *** [install-lib] Error 1 创建如下文件夹: # mkdir /usr/local/jpeg/lib # make install /usr/bin/install -c cjpeg /usr/local/jpeg/bin/cjpeg /usr/bin/install: 无法创建一般文件‘/usr/local/jpeg/bin/cjpeg’: 没有那个文件或目录 make: *** [install] Error 1 # mkdir /usr/local/jpeg/bin /usr/bin/install -c -m 644 ./cjpeg.1 /usr/local/jpeg/man/man1/cjpeg.1 /usr/bin/install: 无法创建一般文件‘/usr/local/jpeg/man/man1/cjpeg.1’: 没有那个文件或目录 make: *** [install] Error 1 # mkdir /usr/local/jpeg/man # mkdir /usr/local/jpeg/man/man1 # make install 好了,直到安装成功! 安装libpng: # tar -zxf libpng-1.2.29.tar.gz# cd libpng-1.2.29.tar.gz # ./configure --prefix=/usr/local/libpng# make # make install 安装freetype: # tar -zxf freetype-2.3.5.tar.gz # cd freetype-2.3.5 # ./configure --prefix=/usr/local/freetype # make # make install 安装gd库: # tar -zxf gd-2.0.35.tar.gz # cd gd-2.0.35.tar.gz # ./configure --prefix=/usr/local/gd --with-zlib=/usr/local/zlib/ --with-png=/usr/local/libpng/ --with-jpeg=/usr/local/jpeg/ --with-freetype=/usr/local/freetype/ (请指定及格插件的安装路径,否则安装php的时候可能出错!) # make # make install
安装GD可能出现的错误:
当make 时出现 configure.ac:64: error: possibly undefined macro: AM_ICONV
下载gettext-devel-0.14.1-13.i386.rpm,然后安装上就行了.
重新安装编译php5: # tar -zxf php-5.1.4.tar.gz # cd php-5.1.4 # ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-jpeg-dir=/usr/local/jpeg/ --with-png-dir=/usr/local/libpng/ --with-gd=/usr/local/gd/ --with-freetype-dir=/usr/local/freetype/ --enable-trace-vars --with-zlib-dir=/usr/local/zlib/ -with-mysql=/usr/local/mysql

内核下载删除:
首先我们需要查看一下当前使用的是哪个内核:

uname -r 该命令会告诉你当前使用的内核版本

接下来,如果你是自己动手编译的内核的话,请删除以下文件和文件夹

1. 删除掉/lib/modules/目录下过时的内核库文件
2. 删除掉/usr/src/kernels/目录下过时的内核源代码
3. 删除掉/boot目录下启动的核心档案以及内核映像
4. 更改/boot/grub/menu.lst,删除掉不用的启动列表

如果你使用的是yum或者rpm包管理器更新的话

rpm -qa | grep kernel* 查找所有linux内核版本
rpm -e kernel-(相要删除的内核版本)

用rpm命令行删除的话会遇到依赖关系问题,也就是说如果卸载的时候出现不让卸载的情况,请使用

rpm -e --nodeps kernel-(要删除的版本) 不检查依赖关系直接删除

或者:

yum remove kernel-(要删除的版本)

建议用这个来删除,它会提示所有的依赖关系,如果你确认他会把这些相关的文件全删了,即卸载的很干净。



在CentOS 5.3 命令行中显示中文

第一,打开语系支持文件:#vim /etc/sysconfig/i18n

LANG="en_US.UTF-8”  ← 找到这一行,将“UTF-8”,改为"GB2312"
第二,安装中文环境的shell : 首先安装libstdc++.so.5包:# yum install libstdc++.so.5

再下载zhcon:# wget http://nchc.dl.sourceforge.net/sourceforge/zhcon/zhcon-0.2.3-1.i386.rpm

安装下载的zhcon:# rpm -ivh zhcon-0.2.3-1.i386.rpm
完了,用zhcon 命令就可以显示中文了。

http://linux.chinaunix.net/techdoc/desktop/2008/09/22/1033890.shtml
如果通过 SSH 方式登录服务器,比如用PuTTY登录,不必安装 zhcon就能够实现中文显示,详情请见:Putty中文教程

用putty登录,这样上面wget那段地址就可以直接复制去,不必一个个敲到命令行界面里



?置 ?置在Linux?的?名
IDE硬碟? /dev/hd[a-d]
SCSI/SATA/USB硬碟? /dev/sd[a-p]
USB快?碟 /dev/sd[a-p](?SATA相同)
?碟? /dev/fd[0-1]
印表? 25?: /dev/lp[0-2]
USB: /dev/usb/lp[0-15]
滑鼠 USB: /dev/usb/mouse[0-15]
PS2: /dev/psaux
?前CDROM/DVDROM /dev/cdrom
?前的滑鼠 /dev/mouse
磁?? IDE: /dev/ht0
SCSI: /dev/st0

网卡:
/etc/sysconfig/network
???案主要的功能在於?定『主?名?( HOSTNAME )??? Network ?否』!一般??,如果您??????案?的主?名??,??必重新?? (reboot), 因???才??系?上面所有的程式都使用最新?定的主?名?喔!( 在 SuSEL 上面,主?名?是??在 /etc/HOSTNAME ?面的!)


/etc/sysconfig/network-scrips/ifcfg-eth0
???案的?容即是?定?路卡??的?案啦!?面可以?定『network, IP, netmask, broadcast, gateway, ???的 IP 取得方式( DHCP, static ), 是否在??的?候??』等等。至於 ifcfg-eth0 指的是第一??路卡,而第二??路卡? ifcfg-eth1 以此?推。(在 SuSE 上面?是使用 /etc/sysconfig/network/ifcfg-eth0 )。


/etc/modprobe.conf
如果硬?要能?作,?然要核心有支援才行!同?,我?也可以利用外?的核心模? (可以?他想成是??程式) ???硬?,而???用??定?入核心模?的?案就是 modprobe.conf 啦。一般??,目前的 distributions 通常使用模?的方式????路卡??程式,所以, ?您安?完?後,您的?路卡?模???通常已??到???案?中?!


/etc/resolv.conf
我?在?路基??面稍微提到的 DNS 功能是什???啦, 就是?行主?名?? IP 的??!而 resolv.conf 就是?定 DNS IP (名?解析伺服器) 的?案, 常常有人提到『咦!我已?可以 ping 到外部??的公共 IP 了,?何?入?址??法???』 通常?生的??就是???案?面的?定不正?啦!?注意! 通常???案可以?入中??信的 DNS ( 168.95.1.1 )!


/etc/hosts
???案可以????的 IP ??主?的名?或者主?的?名!特?留意的是, 在?域?路?有些服?需要反查 Client 的身份,此?就??用到主?名??? IP 的?料。 但是因??域?路?使用私有保留 IP ,?然?法?行 Hostname ?? IP 的行?, ???候?服?就?呆呆的等待 30~60 秒~如果可以避???反查,或者是直接告?主? Hostname ? IP 的??,那?就可以?省??反查的??了!所以,如此一?省去反查的??,就可以改善 LAN ?的??速度了!?? hosts 就是用??定 Hostname ?? IP 的啦! 更多的???查?後?伺服器章? DNS 伺服器的介?。


/etc/services
???案?是??架?在 TCP/IP 上面的???定,包括 http, ftp, ssh, telnet 等等服?所定?的 port number ,都是???案所??出?的。如果您想要自?一?新的?定? port 的??,就得要改???案了;


/etc/protocols
???案?是在定?出 IP 封包?定的相??料,包括 ICMP/TCP/UDP ?方面的封包?定的定?等。

大概知道上面????案後,未?要修改?路???,那就太??了! 至於?路方面的??指令的?,可以?得????的指令即可喔!

/etc/init.d/network restart
?? script 最重要!因?可以一口?重新??整??路的??! 他?主?的去?取所有的?路?定?,所以可以很快的恢?系???的??值。


ifup eth0 (ifdown eth0)
??或者是??某??路介面。可以透?????的 script ??理喔! ??? script ?主?到 /etc/sysconfig/network-scripts/ 目?下, ?取??的?定???理啊! (例如 ifcfg-eth0)。
IDE\Jumper Master Slave
IDE1(Primary) /dev/hda /dev/hdb
IDE2(Secondary) /dev/hdc /dev/hdd


GRUD加密
etc/grub
password=xxxxx
/sbin/grub-md5-crypt
password --md5 xxxxxx(你得到的那串数字)



default=0

timeout=10

passwd=123456

splashimage=......

title......

root......

kernel......

initrd(AS5此处有点不同)/initrd......

password=123456

:wq


(解压源安装):
tar.gz tar zxvf
tar.bz2 tar jxvf
cd 解压目录
./config
make
make install

RPM(Red Hat Package Manager)
命令:rpm

1、查询、检查软件包
rpm {-q|--query} [select-options] [query-options]
rpm {-V|--verify} [select-options] [verify-options]
2、安装、升级、删除软件包
rpm {-i|--install} [install-options] PACKAGE_FILE ...
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]
[--notriggers] [--repackage] [--test] PACKAGE_NAME ...
3、其他
rpm {--initdb|--rebuilddb}
rpm {--addsign|--resign} PACKAGE_FILE ...
rpm {--querytags|--showrc}
rpm {--setperms|--setugids} PACKAGE_NAME ...
RPM(Red Hat Package Manager)
命令:rpm

select-options
[PACKAGE_NAME] [-a,--all] [-f,--file FILE]
[-g,--group GROUP] {-p,--package PACKAGE_FILE]
[--fileid MD5] [--hdrid SHA1] [--pkgid MD5] [--tid TID]
[--querybynumber HDRNUM] [--triggeredby PACKAGE_NAME]
[--whatprovides CAPABILITY] [--whatrequires CAPABILITY]

query-options
[--changelog] [-c,--configfiles] [-d,--docfiles] [--dump]
[--filesbypkg] [-i,--info] [--last] [-l,--list]
[--provides] [--qf,--queryformat QUERYFMT]
[-R,--requires] [--scripts] [-s,--state]
[--triggers,--triggerscripts]

verify-options
[--nodeps] [--nofiles] [--noscripts]
[--nodigest] [--nosignature]
[--nolinkto] [--nomd5] [--nosize] [--nouser]
[--nogroup] [--nomtime] [--nomode] [--nordev]
RPM(Red Hat Package Manager)
命令:rpm

install-options
[--aid] [--allfiles] [--badreloc] [--excludepath OLDPATH]
[--excludedocs] [--force] [-h,--hash]
[--ignoresize] [--ignorearch] [--ignoreos]
[--includedocs] [--justdb] [--nodeps]
[--nodigest] [--nosignature] [--nosuggest]
[--noorder] [--noscripts] [--notriggers]
[--oldpackage] [--percent] [--prefix NEWPATH]
[--relocate OLDPATH=NEWPATH]
[--repackage] [--replacefiles] [--replacepkgs]
[--test]


【示例】
rpm -v 显示rpm程序的详细信息
rpm --version 显示rpm的版本号
rpm -qa 显示系统中安装的所有软件包
rpm -q gcc 查询指定软件包是否已安装
rpm -qi gcc 显示指定软件包的详细信息
RPM(Red Hat Package Manager)
命令:rpm

rpm -ql gcc 显示指定软件包所包含的文件列表
rpm -qf /usr/lib/bash 查看指定文件所属的软件包
rpm -qp /tmp/webmin.rpm 查询RPM包文件中的文件信息

rpm -i webmin-1.290-1.noarch.rpm 安装指定的RPM包
rpm -ivh webmin-1.290-1.noarch.rpm 安装并显示详信息

rpm -ivh --test webmin-1.290-1.noarch.rpm 对安装进行测试,并不是安装
rpm -ivh --replacepkgs webmin-1.290-1.noarch.rpm
软件包重复安装将会失败,若仍需要安装必须加--replacepkgs
rpm -ivh --replacefiles webmin-1.290-1.noarch.rpm
软件包的某个文件已在安装其他软件包时安装过,则安装将会失败,若仍需要安装必须加--replacefiles
rpm -ivh --nodeps webmin-1.290-1.noarch.rpm
软件包所依赖的软件包未安装,则安装将会失败,若仍需要安装必须加--nodeps

rpm -ivh --force webmin-1.290-1.noarch.rpm 强制安装指定软件包
(忽略软件包依赖性和文件冲突,不建议)
RPM(Red Hat Package Manager)
命令:rpm

rpm -U webmin-1.29 升级指定的软件包
rpm -Uvh webmin-1.29 升级指定的软件包(显示详细信息)


rpm -e webmin-1.29 删除指定的软件包

rpm -V webmin 验证软件包webmin
rpm -Vf /bin/vi 验证包含指定文件的软件包是否正确
rpm -Va 验证所有已经安装的软件包
rpm -Vp webmin.rpm 利用RPM文件验证软件包

注:如校验正确将没有任何输出(.表示验证通过)
5 MD5校验
S 文件尺寸
L 符号链接
T 文件修改日期
D 设备
U 用户
G 用户组
M 模式(包括权限和文件类型)

webmin 安装
rpm -ivh /mnt/Server/ perl-5.8.8-10.i386.rpm

http://www.openssl.org/source/
tar zxvf openssl-0.9.8e.tar.gz
cd openssl-0.9.8e
./config
make
make install

http://search.cpan.org/dist/Net_SSLeay.pm/

tar zxvf Net_SSLeay.pm-1.30.tar.gz
cd Net_SSLeay.pm-1.30
perl Makefile.PL
make install
(如果64系统下 怎么都不行 那么 使用 yum -y install perl-Net-SSLeay 来安装)

http://prdownloads.sourceforge.net/webadmin
rpm -ivh webmin-1.350-1.noarch.rpm
(tar包 解压后 进入目录后使用./setup.sh 来安装 一路回车 后默认ADMIN)

问https://Linux服务器的IP或域名:10000/


as4.0

DHCP的配置:(无主配置文件!需要COPY)

ifconfig eth0 (查看Eth0的IP)

rpm -qa | grep dhcp

df(看光盘是否挂载)

mount /dev/cdrom /mnt
rpm -ivh dhcp-.....
rpm -ql dhcp

/etc/rc.d/init.d/dhcpd(启动脚本)

cp /usr/share/doc/dhcp-3.01/dhcpd.conf.sample(模板文件) etc/dhcpd.config (生成配置文件)

man dhcpd.conf(说明)

service dhcpd restart(重启)
service dhcpd status(查看状态)

租约文件dhcpd.leases中记录了DHCP服务器向DHCP客户机提供租用的每个IP地址的信息
# tail -7 /var/lib/dhcp/dhcpd.leases
具体配置:
# cat /etc/dhcpd.conf
ddns-update-style ad-hoc;(全局设置中一定要包括ddns-update-style设置项,dhcpd才能够正常启动)
default-lease-time 21600;(缺省租约时间使用default-lease-time参数设置,参数值的单位是秒)
max-lease-time 43200;(最大租约时间使用max-lease-time参数设置,参数值的单位是秒 )
option domain-name "abc.com";(主机所在域的名称使用domain-name选项进行设置)
option domain-name-servers 192.168.1.1;(DNS服务器的IP地址使用domain-name-servers选项进行设置)
subnet 192.168.1.0 netmask 255.255.255.0 {(subnet关键字后面设置子网的网络地址,netmask关键字后面设置子网的掩码) range 192.168.1.100 192.168.1.200;(subnet中可供动态分配的IP地址范围使用range配置参数设置)
option subnet-mask 255.255.255.0;(subnet-mask选项设置子网内分配IP地址的子网掩码)
option routers 192.168.1.1;(routers选项设置给DHCP客户端分配的IP地址所使用的缺省网关地址)
host Server01 { (host关键字后面需要为DHCP客户端主机设置主机名称)
hardware ethernet b0:c0:c3:22:46:81;(hardware参数在host声明中用于指定客户端主机的物理地址)
fixed-address 192.168.1.11;(fixed-address参数在host声明中用于指定为客户端分配的固定使用的IP地址)
}
}

主机拥有多个网络接口时需要在文件中指定提供dhcp服务的网络接口
在/etc/sysconfig/dhcpd文件中设置
DHCPDARGS=

DHCPDARGS=eth0

eth0是提供dhcp服务的网络接口名称
设置网络接口文件

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp

NIS

rpm -ivh ypserv-。。。。。。

NIS服务器的运行需要time和time-upd服务的支持
vi /etc/sysconfig/network(改域名
NISDOMAIN=XXX
rpm -ivh xinetd-...
service xined start
rpm -ivh portmap-......
service portmap start
chkconfig time on
chkconfig time-udp on
service xinetd restart
vi /etc/ypserv.conf(改配置文件)
:set nu
127.0.0.0/255.255.255.0 : * : * : none
192.168.1.0/255.255.255.0 : * : * :none
*:*:*:deny
:wq

vi /var/yp/securenets(安全配置文件只写允许)
host 127.0.0.1
255.255.255.0 192.168.1.0

service portmap status
/etc/rc.d/init.d/ypserv restart
/etc/rc.d/init.d/yppasswdd restart
建在客机器的登陆
user baizx
passwd baizx
123456
构建数据库
/usr/lib/yp/ypinit -m

客户端
rpm -qa ypbind
nisdomainname xxx
vi /etc/yp.conf
domain bai server 192.168.1.1
vi /etc/nsswich.conf
:set nu
33 nis 34 nis 35 38 nis

service ypbind restart
login baizx

NFS AS5

vi /etc/exports

/home 192.168.1.0/24(rw)

9.0
mount -t nfs 192.168.1.1:/home /home

VSFTP
匿名
不能上传
安装VSFTPD-XXX-XXX

touch/var/fto/111

chmod 777 111

ifconfig eth0 192.168.1.1

客户机
ifconfig eth0 192.168.1.2
ftp 192.168.1.1
匿名登陆 anonymous ftp

>get mget

本地
useradd baizx
passwd baizx
123456
vi /etc/vsftpd/vsftpd.conf
chroot_local_user=YES
service vsftpd restart

~(家目录)
客户机登陆
su root
FTP 192.168.1.1
baizx
123456
FTP>pwd
/

服务器
/etc/vsftpd.ftpuser(不允许登陆)(优先级别大)

/etc/vsftpd.user_list(默认不允许登陆FTP/只让这里的登陆
vi /etc/vsftpd.user_list

useradd bzx
passwd bzx
123456

vi /etc/vsftpd.config
chroot_lock_user
userlist_enable=YES
userlist_deny=NO
service vsftpd restart

客户端

su -l root
FTP 192.168.1.1
bzx
530(不能登陆)

baizx
230(没问题)

服务器

touch /home/baizx/222
cd /home/baizx
chmod 777 222

客户端

su -l root
touch 333
chmod 777 333
ftp 192.168.1.1

ftp>get 222
ftp>put 333

虚拟用户

建口令文件
vi abc
abcde(用户名)
123(密码)

db_load -T -t hash -f abc /etc/vsftpd/abc.db(把口令生成数据库文件)

建PAM配置文件vi /etc/pam.d/vsftpd.vu
auth required /lib/security/pam.userdb.so db=/etc/vsftpd/abc
account required /lib/security/pam.userdb.so db=/etc/vsftpd/abc

建普通用户

useradd vu

修改配置文件 优于单独建虚拟目录

vi /etc/vsftpd/vsftpd.conf
guest_enable=YES(开启虚拟用户功能)
guest_username=vu(假借)
pam_service_name=vsftpd.vu(指定认证文件)

单独虚拟用户
vi /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/ftp(目录)
mkdir /etc/ftp
cd /etc/ftp

vi abcde(给权限)
max_clients=100(用户有100)
max_per_ip=5(多线程,每IP有5)
local_max_rate=500000(本地传输)
anon_max_rate=200000(匿名传输)
anon_word_readable_only=NO(用户可以上传下载)
anon_upload_enable_=YES(上传)

samba

安装samba-XXX

查看smb.conf有效配置的命令
# grep -v "^#" /etc/samba/smb.conf |grep -v "^;"

smbstatus

vi /etc/samba/smb.conf

[dir]
path=/tmp/
guest ok=yes
writable=yes

service smb restart

useradd text
useradd abc

smbpasswd -a text
smbpasswd -a abc

vi /etc/samba/smb.conf
[dir2]
path=/tmp2
valid user=abc.text
Read list=text
write list=abc

service smb restart

网页配置samba-swat

chkconfig swat on
service xinetd restart
http ://serverIP:901

smbclient //192.168.1.123/share -U osmond
文章评论

共有 188 条评论

  1. paladin0 于 2009-11-30 14:15:56发表:

    to much txt

  2. koko_hyc 于 2009-11-28 17:41:48发表:

    对呀,整理成文档,清晰很多的。

  3. koko_hyc 于 2009-11-28 17:40:51发表:

    学习中!!!谢谢

  4. wdl115 于 2009-11-27 14:06:37发表:

    太乱了.要是整合到一个文件中.然后再分一下章节会更好.

  5. baizx 于 2009-11-26 16:28:59发表:

    Solaris/Linux 命令行 简单手册
    1. 系统# passwd:修改口令# exit:退出系统2. 文件# cp:复制文件或目录,参数:-a递归目录,-i覆盖确认# mv:改名移动# rm:删除,参数:-r递归删除3. 目录# mkdir:创建目录# rmdir:删除空目录# cd:改变工作目录# pwd:查看当前路径# ls:列目录,参数:-a所有文件,-c按时间排序,-l详细信息4. 文本# sort:排序# uniq:删除重复行5. 备份压缩# tar:档案,参数:-c创建新档案,-r追加到末尾,-t列出档案内容,-u更新文件,-x释放文件,-f使用档案文件或设备,-M多卷,-v详细报告,-w每步确认。例tar cvf text.tar *.txt# gzip:压缩解压缩,参数:-d解压,-r递归压缩# unzip:解压缩,参数:-d目录,-x解压缩6. 权限# chmod:改变权限,r可读,w可写,x可执行。0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。例如,如果想让某个文件的属主有“读/写”二种权限,需要把4(可读)+2(可写)=6(读/写)。# chgrp:改变所属用户组# chown:改变属主7. 管理# wall:发送信息到全部登录用户# write:向某个用户发送信息# mesg y:设定允许别人给自己发送信息# sync:缓存同步校验# shutdown:关机,参数:-r重启,-h关机不重启,-f快速关机,-c取消关机# free:查看内存# uptime:显示系统运行时间# df:磁盘占用空间,参数:-a显示所有文件系统# du:磁盘使用情况# dd:拷贝并格式转换# fdformat:低格软盘# echo:显示文字# cal:日历# date:系统日期和时间# clear:清屏8. 我的回忆 by tom2sun# who:查看当前用户# finger:查看其他用户信息# rlogin:远程登录# rcp:远程复制# netstat:网络状态# cat:一次完全显示# more:分屏显示# file:列出文件类型# grep:查找内容# find:查找文件# ps:当前运行程序,参数-a显示所有进程# at:时间,命令,Ctrl+D结束# lp:打印# nice:指定优先级# renice:调整优先级# kill:终止进程# man:获取命令帮助# touch:改变时间记录# ln:链接# mount -t vfat /dev/hda1 /mnt/dos:挂载Dos分区(不适用于Unix-Center)9. FTP# ftp:启动FTP程序ftp>open:打开close:关闭bye:离开get:下载put:上传mget/mput:多个文件下载/上传reget:恢复下载binary:二进制传送文件ascii:ASCII码传送cd:改变远程目录lcd:改变本地目录mkdir:建目录rmdir:删除目录delete:删除文件mdelete:一次删除多个rename:重命名status:显示状态prompt:交互式hash:每传送1024字节显示#(hash)size:显示文件大小reset:重置10. via,i:进入输入状态ESC:返回命令状态:命令模式Q!:退出11. 快键及其他Alt+F1~F6:访问多个虚拟控制台(不适用于Unix-Center)Tab:命令补全末尾&:后台进程----------------------------------------硬件系统:1、如何查看cpu的状态? # psrinfo -v# mpstat 可以列出多cpu负载的状态2、如何查看内存? # prtconf | grep 'Memory' 可以查看内存的多少.# /usr/platform/sun4u/sbin/prtdiag3、如何动态添加swap分区? # $su - root ----- 成为超级用户# mkfile 100m /home/swapfile ----- 创建100m的Swap文件# /usr/sbin/swap -a /path/filename ----- 激活Swap文件# /usr/sbin/swap -l ----- 验证swap文件# /usr/sbin/swap -d /path/filename ----- 取消swap文件# rm -rf /home/swapfile ----- 删除swap文件4、如何查看当前网卡是以何种速率起来的? # dmesg |grep Link5、如何调整x-window的分辨率和刷新频率? 字符界面登陆,运行:#/kdmconfig6、如何使用光、软驱?一般情况下用:# /etc/init.d/volmgt start# volcheck以上方法不行,用:# /etc/init.d/volmgt stop# mount -F hsfs -o ro /dev/dsk/c0t6d0s0 /cdrom --挂接光驱# mount -F pcfs /dev/diskette0 /floppy --挂接软驱solaris定义系统磁盘文件系统说明:ufs - UNIX文件系统。是Solaris缺省的文件系统。hsfs - 高密度CD-ROM文件系统,是只读文件系统。pcfs - PC文件系统,支持DOS格式化的软盘7、SCSI设备的命名规则是什么?带有总线控制器的硬盘的使用,下面列出了总线控制器的硬盘命名习惯:cWtXdYsZc Logical controller numbert Physical bus target numberd Drive numbers Slice (or partition) number (0 to 7)例如:/dev/rdsk/c0t0d0s0 该原始接口对应第一个控制器的第一个SCSI目标地址的第一个硬盘的第一片(根)/dev/rdsk/c0t0d0s2 该原始接口对应第一个控制器的第一个SCSI目标地址上的第一个硬盘的第三片(表示整上硬盘)8、如何查看硬盘的使用情况? # df -k??? 可以看到已安装的文件系统的空间大小及剩余空间大小。# quota -v? 查看用户的磁盘空间信息,如果你用quota限制了用户空间大小的话。# du -sk *??? 查看目录的使用情况# du -k | sort -n 可以迅速发现那个目录是最大的。9、如何查看硬盘物理信息?# format 这个命令也可以查看硬盘的类型和分区的详细情况# iostat -E??看硬盘的大小和型号# prtvtoc /dev/rdsk/c0t0d0s0 显示某个磁盘的分区状况10、查看系统内核命令。 # isainfo 看内核的bit, # isainfo -kv 调整内核# modinfo 显示可载入的模组# prtconf 显示系统硬件配置(周边设备)#sysdef 显示可载入的模组,硬件配置与一些可以调整的核心参考值#ulimit -a11、打印当前的OBP版本号 # prtconf -VOBP 3.20.0 2000/10/24 10:47# /usr/platform/sun4u/sbin/prtdiag -v | grep OBPOBP 3.20.0 2000/10/24 10:47 POST 6.1.0 2000/10/24 10:49ok. .versionRelease 3.20 Version 0 created 2000/10/24 10:47OBP 3.20.0 2000/10/24 10:47POST 6.1.0 2000/10/24 10:49OBDIAG 4.5.1 2000/10/24 10:4812、查看及启动系统的32位或64位内核模式 64位模式# isalist -vsparcv9+vis sparcv9 sparcv8plus+vis sparcv8plus sparcv8 sparcv8-fsmuld sparcv7 sparc# isainfo -v64-bit sparcv9 applications32-bit sparc applications# isainfo -b64启动64位内核模式ok. boot kernel/sparcv9/unix32位模式# isalist -vsparcv8plus+vis sparcv8plus sparcv8 sparcv8-fsmuld sparcv7 sparc# isainfo -v32-bit sparc applications# isainfo -b32启动32位模式ok. boot kernel/unix13、测定当前的显示器刷新频率# /usr/sbin/fbconfig -rev \?14、如何配置网卡ip?# ifconfig -a --查看网卡,例如是hme0# ifconfig hme0 unplumb --停止网卡# ifconfig hme0 plumb --起用网卡# ifconfig hme0 inet 192.168.2.3 netmask 255.255.255.0 up --添加ip、子网掩码# vi /etc/defaultrouter 添加默认路由的ip# vi /etc/hostname.hme0 添加主机名# vi /etc/nodename 添加主机名# vi /etc/resolv.conf domain china.com 你的域名 nameserver 202.106.0.20 你使用的nds ip# vi /etc/nsswitch.conf 更改 hosts:file dns15、 PROM状态命令与参数格式: OK>; 指令 命令 说明banner 显示当前机器配置状况,CPU,内存,hostid,EtherNetprobe-scsi 显示内部SCSI通道所挂接设备probe-scsi-all 显示所有SCSI通道及所挂接设备probe-ide 显示所有IDE通道及所挂接设备(针对U10,U5)devalias 显示设备别名,如 cdrom,disk,disk0,disk1等printenv 无参数,显示环境变量或 参数为环境变量名 如: printenv auto-boot?setenv 设置环境变量,如: setenv auto-boot? falseset-default 恢复环境变量预定值 如:set-default auto-boot?set-defaults 恢复所有环境变量预定值boot device option 启动主机 设备别名: cdrom 或 disk 设备名: /pci@1f,4000/scsi@3,1/disk@6,0:f option -r 设备配置 -s 单用户eject cdrom|floppy 弹出cdrom或floppyreset 复位test net watch-net-all show-devs 16、查找网卡名称及接口个数 # grep network /etc/path_to_inst17、如何一块网卡帮定三个ip,并且子网掩码不同?举例说明,网卡名hme0:# vi /etc/hosts127.0.0.1 localhost192.168.2.1 dbs loghost192.168.9.15 dd192.168.9.65 aa# vi /etc/netmasks192.168.2.0 255.255.255.0192.168.9.0 255.255.255.192192.168.9.64 255.255.255.252#vi /etc/hostname.hme0dbs#vi /etc/hostname.hme0:1dd#vi /etc/hostname.hme0:2aa# ipconfig hme0 inet 192.168.2..1 netmask 255.255.255.0 up # ipconfig hme0:1inet 192.168.9.15 netmask 255.255.255.192 up# ipconfig hme0 inet 192.168.9.65 netmask 255.255.255.252 up# init 6#ipconfig -a18、如何在prom状态下查看光纤硬盘 ? stop +a进入ok状态:ok>; select 光纤卡设备名(可用show-devs查看到)ok>; show-children19、主机双屏幕设置。 1.Confirm there are two Video Cards。2.Confirm driver installed and patches installed if need。3.vi /usr/dt/config/Xservers.comment the last line.and uncomment the nearest line like this.4.reboot.20、查看硬盘参数及其物理地址:#format ; test.out这样可以将 test.dat 内 ^M(\015) 这个字元去掉, 产生 test.out11、关机命令。关闭系统的方式根据关闭的原因而不同.执行关闭有的是为了转至执行等级S,有的是要停止操作系统并关闭设备的电源.(1) /usr/sbin/shutdown -gtime -ilevel -y(2) init 0(3) halt(4) STOP+A ; sync(5) 关闭电源紧急情况,按Stop_A , 如Stop_A不起作用,则将设备电源关闭再打开.这是极端情况.这两种方法不是干净的关闭,是突然关闭的,仅在紧急情况使用.12、Solaris下怎么发送即时消息?用wirte命令到单个用户的终端。$ wirte username输入消息正文,结束按ctrl-d,消息就会出现在用户终端。用户可以用mesg n[y]来决定是否启动接受消息。用wall,是发给所有系统用户。$ wallhello ,i love you ...... 结束用ctrl-D.rwall -n netgroup 给网络上所有用户。$ rwall -n workgroup --------发给组workgroup下的每一个用户hi ! no smoking ...... 结束用ctrl -d$ rwall sune450 ------或者主机名为sune450。用法如上。。。13、系统是sunos5.8, 不知何种原因现在唯一的普通用户起不了Terminal, vi等,但是超级用户可以,如何补救? 用/etc/skel/local.cshrc 替换掉登陆路径下的 .cshrc, 重新登陆, 就OK了!$cp /etc/skel/local.cshrc ./14、关机时这个题是什么意思? /usr/sbin/vold[724]: [ID 244572 daemon.error] 卸载 /vol 时发生问题;中断系统调用uxwdog[481]: [ID 248799 daemon.error] error communicating with server (Broken pipe)你还没卸下来/VOL就启动,才出问题,运行:# umount -f /vol后再做。15、find常用的例子:命令格式: find dir -name filename command例子:# find . -name hello -print 寻找目前目录及所有的子目录内叫hello的文档。# find . -ctime +7 -print 找出七天内未被更动的文档# find . -size +2000m -print 找出大小超过2000 bytes的文档# find /tmp -user b1234567 -print 在/tmp下属於b1234567的文档# find . -name '*.c' -exec rm {} 删除所有的.c档# find . -name test\* -print 显示当前目录及其子目录文件名前4位为test的文件名16、忘记solarsi的root口令怎么办? 方法一:1.别怕 ,跟我来.2.把你的solaris光盘放进cdrom3.键入stop+a4.当出现'ok'字样时,键入boot cdrom -s5.cd /tmp6.mkdir /tmp/xxx (xxx是什么鬼东西就无关紧要了)7.mount /dev/dsk/c0t0d0s0 /tmp/xxx (在这里c0t0d0s0是你的root盘)8.运行csh9.TERM=sun;export TERM或者setenv TERM vt22010.cp /tmp/root/xxx/shadow /tmp/root/xxx/shadow/shadow.backup11.vi /tmp/root/xxx/shadow并且将password里root项删除。12.重启动,你就可以以无密码的root登陆了,这时更改你的密码。要是没有shadow,就把/etc/passwd里root用户名后面的X删掉,就可以了方法二:找一台有系统的solaris机器,把忘记密码的系统放进去mount上来,重复方法一10以后的步骤.solaris for x86的机器:用光盘启动到要你安装的时候退出去就成单用户,剩下的操作如上。17、常见文件的解压 ??一般而言,在solaris下,会有这么几种格式的软件:1) .gz结尾的文件,我们用gunzip或者gzip -d来解压,再用tar来解压.2) .tar结尾的文件,我们肯定知道用tar xvf的格式来解压.3) .zip结尾的文件,我们用unzip,注意,这个只有在高版本的solaris下,才有.而且该文件格式以solaris的patch比较多.4) .Z结尾的文件,我们一般用uncompress来解压(当然,每个人的习惯不一样.)上面讲的是解压,一般解压后,会生成这么几种方式:1)生成.local的文件,这个时候,我们用: pkgadd -d xxx.local来安装.2) 生成一个目录,而且该目录下会有一些pkg信息,我们用: pkgadd -d . ;指在当前目录下,安装,并且按照缺省的路径来安装.3) 生成一个数字的目录,一般是指solaris的patch,这个时候我们用patchadd来安装.18、如何在命令行界面替换一个文件中的字符段?# vi file 在命令模式中输入::1, $s/diag/peng/g 全文件查找diag并替换为peng19、请问TERM=VT100和TERM=dtterm都在什么情况下设置? 一般情况下如果你在机器的显示器上登陆或者通过XMANAGER等登陆,就默认是dtterm,telnet 一般是ansi,当你通过telnet修改文件的时候,需要设置成 TERM = VT100 ; exportTERM20、如何查看系统的版本?$ uname -X$ more /etc/release21、命令行进入CDE:#/usr/dt/bin/dtlogin -daemon;exitor#/etc/rc2.d/S92dtlogin start;exit;22、查看patch安装过程中返回错误代码的含义:#more /usr/sbin/patchadd23、如何从一台SOL8的机器登录到另外一台SOL8的CDE桌面上去。登陆CDE的时候点击一下菜单:选择--登陆远程主机--24、如何查看你的默认语言环境? C.Arthur# more /etc/default/init25、如何更改/home的权限? 停掉autofs服务,或者将/etc/auto_master的home注释掉:#vi /etc/auto_master ------------内容如下----------# Master map for automounter#+auto_master/net -hosts -nosuid,nobrowse#/home auto_home -nobrowse/xfn -xfn第三方软件应用或技巧:1、查看当前的bind版本信息 # nslookup -class=chaos -q=txt version.bind2、在登录时显示系统指定的消息?#vi /etc/motd ----删除所有过时的消息,输入新消息注意:对于已经登录且正在使用系统的用户不显示该消息,超过一屏的消息无法显示。每次修改该文件后,该文件的时间戳随之更新。3、去掉文本中^M# dos2unix aaa.txt bbb.txt,会去掉aaa.txt中的^M,生成bbb.txt文件。4、将系统中7天前的txt文件查找并打包。# find / -mtime -7 >;aaa.txt # tar cvf bbb.tar -I aaa.txt---查找出文件记录在aaa.txt文件中,在作成bbb.tar文件包。5、查找并删除比某一天更老的文件:#find . ! -mtime -; | /usr/bin/xarys rn -rf6、solaris9普通用户下无法正确输入中文的解决方法:在用户目录在#vi .profile 修改如下:stty cs8 -istrip7、请问如何防止telnet登陆发呆时间过长被踢呢?这里,vi /etc/default/login# TIMEOUT sets the number of seconds (between 0 and 900) to wait before# abandoning a login session.##TIMEOUT=300修改之后不是立即生效,在这之后所又的login session都符合这个要求,但是在修改之前已经建立的连接不受影响。8、如何安装gcc。去sunfreeware.com上下载相应平台的pkg包的gcc版本。#pkgadd -d gcc*设置环境变量:bash 和sh 的shell:vi $home/.profielPATH=/bin:/sbin:/usr/bin:/usr/sbin:/etc:/usr/local/bin:/usr/ccs/bin;export PATHCC=gcc;export CCcsh的shell:vi $home/.cshrcset path=( /bin /usr/bin /usr/ucb /etc /usr/local/bin /usr/local/sbin .)setenv CC gcc 9、列出当前目录下的目录。 ls -al | grep '^d'10、用命令行来打开一个新的terminal。 /usr/dt/bin/dttermX86或者Vmware:1、在Solaris10 x86上挂接window98分区的方法。 #mount -F pcfs /dev/dsk/c0d1p0:e /mnt总结一下:偶的硬盘是接在IDE1的slaver盘上,用上述命令可将E:盘挂在/mnt目录下。如果你的电脑只有一个硬盘,并且是接在主板的IDE1槽,设为Master盘(通常这种情况较多),现在想挂WIN98下的D:盘,可输入#mount -F pcfs /dev/dsk/c0d0p0:d /mnt注意,/mnt可以改为任意的其它空目录,如/data(我在文件管理器中自己新建的一个目录),可改为#mount -F pcfs /dev/dsk/c0d0p0:d /data按回车后如没有任何出错提示,则表示挂接成功,你就可以进入挂接的文件夹(此处为/data)找到你所挂接的win98的D:分区上的文件了。本方法经过偶N次实验,是确实可行的。为后来者不再偶走过的弯路,偶特在此总结一下,哪位初学者不会在Solaris10 x86(Solaris9也应该行)挂win98分区的话,可参考本方法

  6. baizx 于 2009-11-26 16:27:17发表:

    第一部分:如何破解root密码。linux安装完毕后会有一个root用户。那么如何在不知道密码的情况下修改掉root用户的密码呢?本系统使用RedHat Linux 安装环境是vmware 6.0 使用GRUB引导。方法如下:1.在grub引导界面中按“e”进入grub的编辑模式。2.编辑模式下选择第二项,即:“kernel /vmlinuz-2.4.20-8 ro root=LABEL=/”。然后再按“e”编辑此项。3.在后面加上“ single”(注意:前面有一个空格)。然后回车,再按“b”这样就启动了linux的单用户模式。4.由于是单用户模式,所以不需要密码。启动完毕后,在提示符下(注意这时提示符是sh-2.05b#之类的,不是以前的提示符了)输入:“passwd root”(passwd是修改用户密码的命令。)。然后根据提示修改密码就可以了。(有时会提示bad password,没有关系的。主要是设置的密码过于简单或者是常见的单词的原因。)5.重启,正常进入。OK,root密码被修改了。第二部分:防止别人通过单用户模式修改密码。由于想引导单用户模式需要在grub中进行编辑。因此,我们只要对grub进行加密,不让别人修改grub就可以防止了。方法如下:1.grub有一个配置文件,在/etc这个文件夹中。名称是“grub.conf”,找到这个文件,用vi编辑。2.我们看下文件中的内容:(注释就免了)default=0timeout=10splashimage=(hd0,0)/grub/splash.xpm.gztitle Red Hat Linux (2.4.20-8)root (hd0,0)kernel /vmlinuz-2.4.20-8 ro root=LABEL=/initrd /initrd-2.4.20-8.img具体含义大家可以查看下grub的相关文档,这里我们要加进密码。共有两个地方可以添加密码。3.第一处是“timeout=10”的下面,在这里加上“password=123456”(123456是自己的密码)。保存,退出,重启。我们可以看到,在grub的界面上已经不可以按“e”进行修改了。想修改必须按“p”输入密码后进行修改。4.第二处是“initrd /initrd-2.4.20-8.img”的下面。在这里加上“password=123456”(123456是自己的密码)。保存,退出,重启。我们可以看到,linux启动前(过了grub界面)又多了一个密码。值得注意的是:这个密码是可以防止单用户模式进入的。也就是说,即使我们通过编辑grub启动单用户模式,还是要输入这个密码的。第三部分:如何破解grub密码,进而取得用户权限。想要取得grub密码,我们就得想办法读取到grub.conf文件。但是没有grub密码,没有root密码。。。因此我们就不能通过grub引导。方法如下:1.首先要修改这个虚拟机的启动方式,我们需要从光盘启动。而虚拟机默认是硬盘为第一启动方式。在虚拟机刚启动的时候(那个大大的“vmware”的界面)马上按“F2”进入bios。2.选择到boot那一栏。选中“CD-ROM Drive”一项,按“+”把“CD-ROM Drive”这一项提升到最上面。这样系统就默认光盘启动为第一启动方式了。3.把linux的第一张安装盘镜像绑定光驱后,保存,重启。系统会直接进入linux的安装界面。在提示符下输入“linux rescue”回车,系统将启动linux救援模式。4.途中会有几个选项,按照提示选择就好。最后会看到一个说明,大概是说这个救援系统把原来的系统文件(硬盘上的那个)挂载到了“/mnt/sysimage”文件夹下。5.启动好后,我们就可以寻找grub.conf文件了。这里要注意下文件夹的结构:我们现在在救援系统的根目录下。而我们要找的是原系统的“/etc/grub.conf”,因此完整的路径是:“/mnt/sysimage/etc/grub.conf”。用vi编辑此文件,我们便可以看到,并且修改该文件。从而破解掉grub密码。第四部分:如何防止别人引导到linux救援模式。我们可以看到,要引导到救援模式必须修改bios。那么我们就可以通过对bios加密来达到防止别人修改bios,从而无法从光盘引导的目的。方法如下:这个比较简单。进入bios后选择“Security”项。在“Set Supervisor Password”上回车。设置密码就可以了。这样。我们重新启动系统再次进入bios的时候就需要密码了。第五部分:如何破解bios密码。我们平时清除主机bios密码的时候经常用什么方法呢?拔跳线,抠电池,让bios恢复出厂设置。那么,在虚拟机上有类似的方法么? 方法如下:找到虚拟机所在的文件夹,里面应该有一个后缀名是“.nvram”的文件。把这个文件删掉。启动系统。我们可以看到。bios被重置了。第六部分及后续:防止别人删除文件等等。这部分已经属于windows的内容了,不再叙述。这里我想说的是,过分的依赖技术只会导致系统变得越来越复杂,过多的密码已经给我们造成了很大的负担。况且,没有绝对安全的系统,最终的解决办法还是需要人们自觉的遵守规定。

    linux
    一、进入单用户模式    1.使用Linux 系统启动软盘     如果你已创建了Linux 系统的启动软盘,而且设置计算机系统从软盘启动,当显示boot 提示符后输入:     boot: linux single系统进入了提示符为“#”的单用户模式,计算机引导的运行级别为1,本地文件系统被挂载,很多系统服务没有运行,跳过所有系统认证,是一个系统管理员使用特定的机器,把 root 文件系统挂为读写,此时你可以使用:    (1)passwd 程序来设置root的新密码    # passwd root    # reboot    重启系统后,root 密码已被更新。    (2)通过修改 /etc/shadow 文件,删除root 的密码    # cd /etc    # vi shadow    将以root 开头的一行中“root:”后和下一个“ :”前的内容删除,    第一行将类似于“root ::??”,保存后重启系统,root 密码置为空。    2.以LILO 多系统引导程序启动    当系统以LILO 引导程序启动时,在出现LILO 提示符时输入:     LILO: linux single 进入单用户后,更改password 的方法同1。    3.以GRUB 多系统引导程序启动    用GRUB引导系统进入单用户步骤:    (1) 启动GRUB,选择Red Hat Linux的选项,然后键入 e 来编辑;    (2) 选择以kernel开头的一行,再按e 键,在此行的末尾,按空格键后输入single,以回车键来退出编辑模式;    (3) 回到了 GRUB 屏幕后,键入 b 来引导进入单用户模式。    进入单用户后,更改password 的方法同1。二、使用Linux 系统安装盘    如果你既没做系统启动软盘,同时多系统的引导LILO 和GRUB 又被删除(如重装了Windows 系统后),那么只能使用Linux 系统安装盘来恢复root 的密码。用第一张Linux 系统安装盘启动,出现boot 提示符后输入:    root: linux rescue此时系统进入救援模式,然后根据提示完成:    1.选择语言和键盘格式;    2.选择是否配置网卡,一般系统因网络不需要,所以可以选择否跳过网卡配置;    3 . 选择是否让系统查找硬盘上的Redhat Linux 系统,选择继续;    4.系统显示硬盘上的系统已经被找到,并挂载在/mnt/sysimage 下;    5.进入拯救状态,可重新设置root 的密码:    # chroot/mnt/sysimage (让系统成为根环境)    # cd /mnt/sysimage    # passwd root

  7. baizx 于 2009-11-26 16:25:31发表:

    解决Linux 字符界面乱码问题2006-11-10 15:10我们知道大部分Linux系统是无所谓中文版和英文版的,以FC4 Linux为例,系统发行的时候全世界都一样,系统是中文的还是英文的完全取决于你选择的语言包。不同国家的人在安装使用的时候选择属于自己国家的语言包,应用程序中的语言也不是写死的,它根据系统的设置来调用相关的语言,所以,一个应用程序写出来不经过修改,全世界不同国家的用户都可以以母语界面使用它,这就事所谓的internationalization(国际化),简称i18n。这也是未来软件的发展趋势。

    那么,如果我在系统中安装了不同的语言包和不同的字体,系统是如何判断我所要的语言界面并调用相关的字体的呢?系统中那些文件和变量在控制这些呢?

    在redHat和FC系列Linux系统下,记录系统默认使用语言的文件是/etc/sysconfig/i18n,如果默认安装的是中文的系统,i18n的内容如下:

    代码:

    LANG="zh_CN.UTF-8"
    SYSFONT="latarcyrheb-sun16"
    SUPPORTED="zh_CN.UTF-8:zh_CN:zh"



    其中LANG变量是language的简称,稍微有英语基础的用户一看就看出来这个变量是决定系统的默认语言的,即系统的菜单、程序的工具栏语言、输入法默认语言等。SYSFONT是system font的简称,决定系统默认用哪一种字体。SUPPORTED变量决定系统支持的语言,即系统能够显示的语言。需要说明的是,由于计算机起源于英语国家,因此,不管你把这些变量设置成什么,英语总是默认支持的,而且不管用什么字体,英文字体总包含在其中。

    这些变量中LANG变量是在字符模式和图形界面下都用到的,在你登录系统后就被读取并生效,相信很多人在字符界面下输入Linux命令的时候经常会遇到显示出来的出错信息是乱码的情况,必需安装zhcon或者cce等字符模式下的中文软件才能正常显示中文的出错信息。如果我不要他显示中文乱码,我也不要为了看个很简单的出错信息而特意起用zhcon那我该怎么办呢?一个简单的零时解决的办法就是设置一下LANG变量:

    代码:

    [root@gucuiwen ~]# LANG="en_US.UTF-8"



    即把系统的语言临时设置成英文,或者更简单一点,可以直接这样:

    代码:

    [root@gucuiwen ~]# LANG=""


    即把LANG变量清空,由于英语是无论什么情况都支持的,LANG变量被清空后,系统就默认用英语。这样设置后,在字符模式下输出的出错信息等就是全英文的了。但这种设置是临时的,只是临时改变了LANG这个bash变量而已。当退出重新登录或者切换到其他字符终端后就无效了。到现在,读者应该想到了,只要把i18n文件中的LANG变量设置成英文的”en_US.UTF-8”,就可以永久解决这个问题了。修改后的文件如下:
    代码:

    #LANG="zh_CN.UTF-8"
    LANG="en_US.UTF-8"
    SYSFONT="latarcyrheb-sun16"
    SUPPORTED="zh_CN.UTF-8:zh_CN:zh"


    请不要把LANG变量简单的清空,因为这个变量不仅在字符模式下用到,在图形界面下也用到,简单清空在字符模式下确实不会有问题,但在图形界面下,却会造成中文无法正常显示的情况,在过去Re d ha t 系列的版本中i18n文件中还有一个叫LANGUAGE的变量,专门控制图形界面下的语言设置,现在的FC系列中已经把这两个变量整合成一个变量了。

    经过修改这个变量,重新起动图形界面后,就可以看到界面一经完全是英文的了。但是按ctrl+空格却不能调出中文输入法,输入法菜单中也不能添加中文输入法。我们只简单的修改了LANG变量改变了系统语言设置,当然这一步也可以用图形界面下的工具修改,而不用亲自修改配置文件。


    1.进入字符界面

    为了在Linux启动时直接进入Console界面,我们可以编辑/etc/inittab文件。找到id:5:?initdefault:这一行,将它改为id:3:initdefault:后重新启动系统即可。我们看到,简简单单地将5改为3,就能实现启动时进入X-Window图形操作界面或Console字符界面的转换,这是因为Linux操作系统有六种不同的运行级(run level),在不同的运行级下,系统有着不同的状态,这六种运行级分别为:

    0:停机(记住不要把initdefault 设置为0,因为这样会使Linux无法启动 )
    1:单用户模式,就像Win9X下的安全模式。
    2:多用户,但是没有 NFS 。
    3:完全多用户模式,标准的运行级。
    4:一般不用,在一些特殊情况下可以用它来做一些事情。
    5:X11,即进到 X-Window 系统。
    6:重新启动 (记住不要把initdefault 设置为6,因为这样会使Linux不断地重新启动)。

    其中运行级3就是我们要进入的标准Console字符界面模式。

    2.自由转换字符界面和X-Window图形界面

    在了解了启动自动进入X-Window图形操作界面和Console字符操作界面的转换后,也许你会想,这两种操作界面各有各的好处,我能不能“贪心”一点,同时拥有这两种操作界面呢?在无所不能的Linux操作系统中,这个要求当然是可以得到满足的。

    在X-Window图形操作界面中按“Alt+Ctrl+功能键Fn?n=1~6?”就可以进入Console字符操作界面。这就意味着你可以同时拥有X-Window加上6个Console字符操作界面,这是一件多么令人振奋的事情啊!

    在Console字符操作界面里如何回到刚才的X-Window中呢?很简单,按“Alt+Ctrl+F7”即可。这时Linux默认打开7个屏幕,编号为tty1~tty7。X-Window启动后,占用的是tty7号屏幕,tty1~tty6仍为字符界面屏幕。也就是说,用“Alt+Ctrl+Fn”组合键即可实现字符界面与X Window界面的快速切换。

    Linux的老用户们都知道,X-Window是一个非常方便地图形界面,它能使用户用鼠标最简单的进行操作,但是它也有不少缺点:比如启动和运行速度慢、稳定性不够、兼容性差、容易崩溃等。但是一旦X-Window系统出了问题,并不会使整个Linux系统的崩溃而导致数据丢失或系统损坏,因为当X-Window由于自身或应用程序而失去响应或崩溃时,我们可以非常方便地退出X-Window进入Console进行故障处理,要做的只是按“Alt+Ctrl+Backspace”键,这意味着只要系统没有失去对键盘的响应,X-Window出了任何问题,都可以方便地退出

    Linux 网卡配置文件设置

    配置文件
    /etc/hosts(本地主机ip地址映射,可以有多个别名)。
    /etc/services(端口号与标准服务之间的对应关系)。

    /etc/sysconfig/network(设置主机名,网关,域名)。
    HOSTANME=zjw.com(主机名)(需要重启计算机才有效)
    GATEWAY=192.168.1.1(网关)

    /etc/rc.d/init.d/network restart(脚本服务启动)
    service network restart(同上,是命令执行)

    2.和DNS相关
    /etc/host.conf
    /etc/nsswitch.conf
    /etc/resolv.conf(配置dns)

    3.网卡配置文件
    /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0(哪张网卡)
    ONBOOT=yes
    BOOTPROTO=static(静态ip状态设置)
    BOOTPROTO=dhcp(dhcp获取)
    IPADDR=192.168.1.8(静态ip地址)
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1(网关)(如果在此设置网关,则上面的无效)
    MACADDR=00:0C:29:96:38:F8(修改mac地址)(永久有效)
    /etc/rc.d/init.d/network restart(脚本启动)
    service network restart(命令启动)

    4.IP配置方法及自动获取ip
    ifconfig eth0 192.168.0.10 将采用默认子网掩码
    ifconfig eth0 192.168.0.10 netmask 255.255.255.252 (手动定义子网掩码)
    ifconfig eth0 up(激活网卡)

    /etc/sysconfig/network-scripts/ifup eth0(脚本激活网卡)或者
    ifup eth0(指向/sbin/ifup的符号链接)。注:修改mac地址,用此好像无效,切记。

    ifconfig eth0 down(关闭网卡)
    /etc/sysconfig/netowrk-scripts/ifdown eth0(脚本关闭网卡)或者
    ifdown eth0(指向/sbin/ifdown的符号链接)

    netconfig
    是文本窗口的形式设置IP的命令,修改好之后用
    service network restart (让配置参数生效)

    ifconfig eth0 -dynamic(手动设置获取dhcp ip地址)

    5.修改MAC地址
    ifconfig eth0 down
    ifconfig eth0 hw ether 00:00:0c:12:34:56
    /etc/rd.d/init.d/network(上面的修改可存储在此脚本中)
    ifconfig eth0 up
    #上面这种方法是在内核中修改,下次开机将还原
    要永久有效在网卡配置文件中加入以下这一条:
    MACADDR=00:00:0c:12:34:56
    /etc/sysconfig/network-scripts/ifcfg-eth0

    6.常用测试命令
    ping -c 4 172.16.1.1
    route (对内核的ip路由表进行操作,主要对己配置的接口的主机或网络设置静态路由,如通过ifconfig程序配)
    route add -net 192.168.1.0 netmask 255.255.255.0 eth0 (添加一条到192.168.1.0网络的路由条目)
    route del -net 192.168.1.0 netmask 255.255.255.0 (删除路由条目)
    route -C 查看缓冲表
    route -n 查看本地路由表
    traceroute 路由跟踪
    注:netconfig、ifconfig、route三者结合使用,不用重启系统及服务。

    7.创建ADSL连接
    rpm -qa |grep rp-pppoe
    rpm -ivh rp-pppoe* (将光盘)
    route del default(删除默认路由)
    adsl-setup (设置连接)
    adsl-start (连接测试)
    adsl-status (查看状态)


    8.附加一些后续实验环境定制
    a.关防火墙
    iptables -F
    iptablers -X
    iptables-save
    service iptables stop
    chkconfig --level 12345 iptables off
    b.开FTP用来上传文件
    useradd file
    passwd file
    密码设为1
    service vsftpd start (开FTP服务)
    在WINDOWS下ftp://file:1@你的虚拟机IP

  8. qlftl 于 2009-11-26 14:58:30发表:

    0:w(5(
    收了

  9. longyun 于 2009-11-26 14:56:43发表:

    谢谢楼主分享,呵呵,辛苦了

  10. baizx 于 2009-11-26 14:17:57发表:

    [i=s] 本帖最后由 baizx 于 2009-11-26 14:50 编辑 [/i]

    DNS

    ifconfig eth0 192.168.1.1

    mount /dev/cdrom /mnt/cdrom

    rpm -ivh bind-......

    rpm -ivh cachang -nameserver

    正向

    vi /etc/named.conf

    zone "163.com" {
    type master;
    file "163.com.zone";
    };

    :wq

    vi /var/name/163.com.zone
    $ TTL 86400
    @ IN SOA 163.com. root.163.com.(
    2009112600
    3600
    1800
    7200
    8400
    )

    @ NS ns.163.com
    @ MX 10 mail.163.com
    ns A 192.168..1
    mail A 192.168.1.2
    www A 192.168.1.1
    ftp CNAME mail.163.com

    :wq

    反向
    vi /name.conf
    Zone "1.168.192.in-addr.arpa"{
    type master;
    file "192.168.1";
    };

    cp /var/named/162.com.zone /var/name/192.168.1
    vi 192.168.1
    @ NS ns.163.com.
    @ MX 110 mail.163.com.
    1 . PTR ww.163.com.
    2. PTR ftp.163.com.

    :wq

    从机器配置
    安装bind caching

    vi /etc/name.conf
    zone " 163.com"{
    type slave;
    file "slave/163.com.zone";
    masters {192.168.1.2;};
    };


    zone "1.168.192.in-addr.arpa"{
    type slave;
    file 'slaves/192.168.1;
    masters{192.168.1.1;}
    };


    :wq




    架??? DNS 主?: ?你成? ISP 啦!(转鸟哥的 ddns的做法)

    什?是?? DNS (Dynamic DNS, DDNS) 主?呢???得我?在 合法的 DNS 主? ?面提到,如果我?本身是以?接制的 ADSL ?上 Internet ?, 我?的 IP 通常是 ISP ??提供的,因此每次上?的 IP 都不固定,所以, 我??有?法以上面的 DNS ?定??予???上 Internet 的方法一???的主?名?。

    也因此,如果我?想要利用???有固定 IP 的??方法架??站?,就得要有特殊的管道了~ 其中之一的方法就是利用 Internet 上面已?提供的免??? IP ??主?名?的服?! 例如: http://www.no-ip.org

    提供??的服?利用的是什?原理呢?基本上, DNS 主??是得要提供 Internet 相?的 zone 的主?名?? IP 的???料才行,所以,DDNS 主? 就必?要提供一??制,?用?端可以透????制?修改他?在 DDNS 主?上面的 zone file ?的?料才行。

    那?不?很?啊?不?啊!我?的 BIND 9 就有提供?似的?制啦!那就是利用 update-policy ????,配合??用的 key ??行?料?案的更新。??的?, 1) 我?的 DDNS 主?先提供 Client 一把 Key (就是??用的?料, 你可以?他想成是???密?的概念), 2) Client 端利用?把 Key ,?配合 BIND 9 的 nsupdate 指令, 就可以?上 DDNS 主?,?且修改主?上面的 Zone file ?的??表了。感?上很像很??喔! ??啊!架?上真的很??的~底下我?就????定一下喔:


    --------------------------------------------------------------------------------

    DDNS Server 端的?定:
    假?我有一?朋友,他使用的 Linux 主?的 IP 是?????的,但是他想要架? Web ?站, 所以他向我申?了一??域名?,那就是 web.vbird.tsai ,此?我必需要?他一把金?, ?且?定我的 named.conf ? vbird.tsai ?? zone 能?接受?自用?端的?料更新才行! 首先?建立?把金?吧!
    [root@linux ~]# dnssec-keygen -a [演算法] -b [密??度] -n [?型] 名?
    ??:
    -a :後面接的 [type] ?演算方式的意思,主要有 RSAMD5, RSA, DSA, DH
    ? HMAC-MD5 等。建?你可以使用常?的 HMAC-MD5 ?演算密?;
    -b :你的密??度?多少?通常?予 128 位元就可以了;
    -n :後面接的?是用?端能?更新的?型,主要有底下??,建?? HOST 即可:
    ZONE:用?端可以更新任何??及整? ZONE;
    HOST:用?端?可以??他的主?名??更新。

    [root@linux ~]# mkdir -p /var/named/keys; cd /var/named/keys
    [root@linux keys]# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST web
    Kweb.+157+50096
    [root@linux keys]# ls -l K*
    -rw------- 1 root root 47 Oct 20 14:20 Kweb.+157+50096.key
    -rw------- 1 root root 81 Oct 20 14:20 Kweb.+157+50096.private
    # 上面那把是公?,下面那把?是私??案!

    [root@linux keys]# cat Kweb.+157+50096.key
    web. IN KEY 512 3 157 +j8TSooNNIUPb3OR9Rh53Q==
    # 注意到最右?的那?密??度,等一下我?要??的?有那?地方!


    接下?你必需要:?公?的密???到 /etc/named.conf ?中,?私???你的 web.vbird.tsai 那部主?上!好了,那就?始?修改 named.conf ?的相??定吧!
    [root@linux ~]# vi /etc/named.conf
    // 先在任意地方加入?? Key 的相?密???!
    key "web" {
    algorithm hmac-md5;
    secret "+j8TSooNNIUPb3OR9Rh53Q==";
    };

    // 然後?你原本的 zone 加入底下?一段宣示
    zone "vbird.tsai" {
    type master;
    file "named.vbird.tsai";
    allow-transfer { 192.168.1.150; };
    update-policy {
    grant web name web.vbird.tsai. A;
    };
    };

    [root@linux ~]# chown named /var/named/chroot/var/named
    [root@linux ~]# /etc/init.d/named restart


    注意到上?的 grant web name web.vbird.tw. A; 那一行, grant 後面接的就是 key 的名?,也就是?,我?把 web 的 key 在?? zone (vbird.tsai) ?面可以修改主?名? web.vbird.tsai 的 A 的??,亦即是修改主?的 IP ??啦!?法也就是: grant [key_name] name [hostname] ?? 也就是?,我的一把 key 其?可以?予多??限喔!就看您如何??了。

    ?定好之後,由於未?用?端??的??是由我?主?的 named 所?入, ?入的目?在 /var/named/chroot/var/named/ ?中,所以你必需要修改一下?限喔! ?他重新?? DNS,然後?察一下 /var/log/messages ?面有?有??即可! 如此一?,DDNS 主?端就?定妥??!



    --------------------------------------------------------------------------------

    Client 端的更新:

    接下??是 DDNS Client 端的更新了。首先,您必?要由 Server 端取得??建立的那???案, ????建立的 Kweb.+157+50096.key 及 Kweb.+157+50096.private 利用 SSH 的 sftp ?送到用?端, 亦即是那部 web.vbird.tsai 主?上?, 假?你已??????案放置到 /usr/local/ddns ?面去,然後??看看:
    [root@web ~]# cd /usr/local/ddns
    [root@web ddns]# nsupdate -k Kweb.+157+50096.key
    > server 192.168.1.254
    > update delete web.vbird.tsai <==?除原有的
    > update add web.vbird.tsai 600 A 192.168.1.222 <==更新到最新的
    > send
    > 最後在此按下 [ctrl]+D 即可


    ?注意到『 update add web.vbird.tsai 600 A 192.168.1.222 』?行, 他的意??的是,新增一??料, ttl 是 600 ,?予 A 的??, ??到 192.168.1.222 的意思~ 至於 nsupdate -k 後面加的?是我?在 Server 端?生的那? key ?案!

    然後您就???到在 DNS 主?端的 /var/named/chroot/var/named/ ?面多出一??存?,那就是 named.vbird.tsai.jnl ?然,/var/named/chroot/var/named/named.vbird.tsai 就??著用?端的要求而更新?料喔!

    由於手?更新好像挺麻?的,我?就? Client 自?更新吧!利用底下?? script 即可! [root@web ~]# vi /usr/local/ddns/ddns_update.sh
    #!/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    export PATH

    # 0. keyin your parameters
    basedir="/usr/local/ddns" # 基本工作目?
    keyfile="$basedir"/"Kvbird.+157+05841.key" # ??名填?去吧!
    ttl=600 # 你可以指定 ttl 的??喔!
    outif="ppp0" # ?外的??介面!
    hostname="web.vbird.tsai" # 你向 ISP 取得的那?主?名?啦!
    servername="192.168.1.254" # 就是你的 ISP 啊!

    # Get your new IP
    newip=`ifconfig "$outif" | grep 'inet addr' | \
    awk '{print $2}' | sed -e "s/addr\://"`
    checkip=`echo $newip | grep "^[0-9]"`
    if [ "$checkip" == "" ]; then
    echo "$0: The interface can't connect internet...."
    exit 1
    fi

    # create the temporal file
    tmpfile=$basedir/tmp.txt
    cd $basedir
    echo "server $servername" > $tmpfile
    echo "update delete $hostname A " >> $tmpfile
    echo "update add $hostname $ttl A $newip" >> $tmpfile
    echo "send" >> $tmpfile

    # send your IP to server
    nsupdate -k $keyfile -v $tmpfile


    您只要?上述的程式?面,特殊字?的部分?他修改一下,就能?以 /etc/crontab 的方式在您的系??自??行了!?支程式你也可以在底下的??下?:

    http://linux.vbird.org/linux_server/0350dns/ddns_update.sh
    利用 BIND 9 所提供的??服?,我?只要具有一?固定的 IP ,?向 ISP 申?一?合法授?的 domain name, 就可以提供不?是固定或者是非固定的 IP 使用者,一?合法的主?名?了! ?且,使用者也可以自行透? nsupdate ?修改自己的 IP ??!以?自己的主? IP 永??主?名?保持正?的??!??只有?接制上?的用???,真是方便啊!


    --------------------------------------------------------------------------------
    重?回?:

    在 Internet ?中,任何一部合法的主?都具有?一?二的主?名?,??主?名?包含了 hostname ? domain name ,??? Fully Qualified Domain Name (FQDN);
    ?了克服人??於 IP 不易??的困?,而有名?解析器的?生,首先是 /etc/hosts ,而後?是 DNS 系?的?生;
    目前 Unix Like 的?器?中,都是以 BIND ??柏克?大??展的套件?架? DNS 伺服器;
    DNS 是??定的名?,BIND ?是一?套件,??套件提供的程式? named !
    在 DNS ?中,每一???我?就?他? RR (Resource Record)。
    在 DNS 系?中,正解?由 hostname 找 IP ,而反解?是由 IP 找 hostname ,至於 zone ?是一?或者是部分?域的?定值;
    在 bind 9 之後,??的情?下 named 已?作了 chroot 的?作。
    DNS 伺服器的?型主要分? master, slave 以及只?行快取??的 cache-only 的 DNS 主?;
    Master/Slave 架?下的 DNS 主?系?,不?是 Master/Slave 主?均需要能?正?的提供 hostname ? IP 的??才行。
    Slave 主?本身??有自行?定 zone file ,其 zone file 是由 Master 主??送而?,因此, master 主?必?要?? slave 主??放 allow-transfer 的?定?目才行。
    整? DNS 搜?的流程?中,若找不到本身的?料,??向 root(.) 要求?料;
    bind 的?定?? /etc/named.conf ,而 named.conf 可以??出正反解 zone 的?案所在;
    正解的??(record)主要有:SOA, A, MX, NS, CNAME, TXT 及 HINFO 等;
    反解的??主要有: SOA, PTR 等;
    在 client 端?定 DNS 查??序?相?功能的??重要?案?: /etc/nsswitch.conf, /etc/hosts, /etc/resolv.conf 等;
    DNS 查?的指令主要有: host, nslookup, dig, whois 等等;
    在?入了 named ?? daemon 之後,??必前往 /var/log/messages 察看此 daemon 的成功?否。
    CentOS (Red Hat 系?) 的 /etc/sysconfig/named 可以指定 chroot 的目?或取消 chroot 的功能等等。
    Cache only DNS 伺服器常被使用於防火?上,用?代理?部 LAN 的主?名?解析要求!
    本章? LPI 考?的??:
    在 LPI ?站 http://www.lpi.org ?面提到的,?於 NFS 的考???的地方,只有在 LPI level 1 的 102 ,?面的 topic 113 Networking Services ,第五??中,?易的 DNS ?定。??的是『??者需?解何?正、反解、Zone ? cache-only 的 DNS 主?』至於?考的?案?指令可能有?些:
    /etc/hosts
    /etc/nsswitch.conf
    /etc/resolv.conf
    /etc/named.boot(V4)及 /etc/named.conf(V8)
    named (?? daemon )

    --------------------------------------------------------------------------------
    ?後??

    ?何要有 DNS 系?:
    最主要的功能其?在於 Hostname ?? IP 的查?,可以?我?人?以??主?名??上 Internet ,而不必背? IP 哩!
    那??教 Unix Like 系??中,主要使用那?套件做? DNS 主?的架?,同?,他又是使用那? daemon ??? DNS 系??
    在 Unix Like 系??中,使用 BIND ??套件做? DNS 的架?,至於 daemon ?是使用 named ?? daemon !
    最早的 Internet 其?是?了政府人?可以?上?路以?行?源的分享,另外,?是?子?件的使用。 而在早期使用的重要?案只有 /etc/hosts ??,?教?? hosts ?案的?容含有什??目?
    ???案的『格式』?『 [IP] [主?名?] [主??名(aliase)]』,而,???案?面放置了至少一行,也就是:
    127.0.0.1 localhost localhost.localdomain
    另外,也可以??常?接的主? IP ? HOSTNAME 的???他???!
    ??明 DNS 的三??型?相?的?容:
    DNS 主?主要分?: master, slave ? cache-only 三??型!在 master ?中,master 主??面即有?定 DNS ?料?案,例如在 /var/named ?面的正反解?案。至於 slave 的 DNS 主??主要在?行 master 主?的?料?份,同?也提供 Internet 上面的查?功能。使用 master/slave 的最大??在於「????」的能力! 利用修改 master 即可? slave 的?料同?更新,?少人力的浪?。至於 cache-only ??行快取的??,本身???料??案!
    正解?案(forward)反解?案(reverse)??部?圈使用的?案(loopback)主要的??功能?:
    正解?在?定 hostname ??到 IP 的??,主要的??有 A, NS, SOA, MX, CNAME 等等; 反解?主要?定 IP ??到 Hostname 的??,主要的??? SOA, NS ? PTR 等。 ?部?圈?是 localhost ? 127.0.0.1 的??啦!
    在主要的 DNS ?定? /etc/named.conf ?中,有一???特殊的?案,他的?型? hint ,?????案的功能?何?
    ???案主要是由 rs.internic.net 所下?下?的,主要??了 root (.) ?? zone 的 IP !可以?我?的 DNS Server 在找不到?料??,可以到?? root 去查??料!
    在 client 端搜? HOSTNAME ??到 IP 的查??,最重要的?案,以及??案的主要用途?何?
    /etc/nsswitch.conf :可以用??定查?主?名?的?序!例如先查? /etc/hosts 再查? DNS 系?;
    /etc/hosts :最早的名?解析器;
    /etc/resolv.conf:?就是 DNS 系?的 resolver (解析器)了。
    一般??,在 Client 端使用的查? HOSTNAME 的指令大多使用什??
    nslookup :可以用?收集一部主?的相???;
    dig:可以用?收集??的主???;
    whois :可以用?收集??的 DNS 主???。
    host ?????喔!

    ?? named 重要的??登?在在那??案中?
    在 /var/log/messages ?中

  11. baizx 于 2009-11-26 12:05:57发表:

    调整卷组
    vgextend vgreduce (增加卸载)
    调整逻辑卷
    放大:先放大lv再放大文件系统
    缩小:先缩小文件系统再缩小lv
    ext3文件系统使用resize2fs来调整

    放大 lvextend -L (+ -)size lv_device
    缩小lvreduce -L ......
    做好备份
    resize2fs 仅支持离线 缩小文件系统呃时候 要卸载 必须确保文件系统使用量 小于缩小后的大小

    卷快照
    lvcreate -L 200M -s -n backup123 /dev/baizxVG/bzxLV
    读取
    mount /dev/baizxVG/backup123 /mnt/backup/
    卸载快照
    vgdisplay baizxVG | grep 'Size'
    lvscan
    lvremove /dev/baizxVG/backip123
    移动卷
    建立新的物理卷
    vgexteng baizxVG /dev/sdb1 加入卷组
    pvmove /dev/sda2 /dev/sdb1
    pvremove卸载sda

    迁移
    卸载逻辑卷 umonnt /dev/baizxVG/bzxlv
    更改非有效卷组 vgchange -a n baizxVG
    导出 vgexport baizxVG
    导入
    目的计算机
    pvscan
    vgimport baizxVG
    有效vgchange -a y baizxVG
    挂载bzxLV
    OK
    图形管理
    菜单开启 系统 管理 逻辑卷管理
    命令x-win下 终端 system-config-lvm

  12. baizx 于 2009-11-26 11:17:32发表:

    lvm(绿帽)逻辑卷
    fdisk /dev/sda
    p
    t
    2
    8e
    修改标示符
    pvcreate /dev/sda2 建立物理卷
    vgcreate baizxVG /dev/sda2 建立卷组
    lvcreate -l 1000m -n bzxLV baizxVG 1G的逻辑卷 ls /dev/baizxVG/查看逻辑卷
    查看物理卷 pvdisplay -v /dev/sda2
    查看卷组 vgdispaly -v baizxVG
    查看逻辑卷lvdisplay -v bzxLV

  13. baizx 于 2009-11-26 09:17:25发表:

    [i=s] 本帖最后由 baizx 于 2009-11-26 10:11 编辑 [/i]

    做lamp的环境供开发论坛或者试验的软件XAMPP

    XAMPP 简介

    XAMPP 是一个功能全面的 AMPP (Apache、MySQL、PHP、Perl)软件包,这是 Linux 平台上可以使用的几种非商业 AMPP 中间件之一。采用这种紧密的集成,XAMPP 可以运行任何程序:从个人主页到功能全面的产品站点(虽然这仅仅用于开发目的;出于安全考虑,XAMPP 还不适于用在产品服务器上)。

    XAMPP 实际上在以下几个方面大放光彩:

    易于安装和设置。
    包含很多有用的软件包,可以简化诸如生成流量报告和加速 PHP 内容之类的任务。
    已经在 SUSE、Red Hat、Mandrake、Debian Linux 发行版以及 Windows® 和 Solaris 上进行了完整的测试。
    对于本文来说,我们将在 Mandrake Linux 10.0 上安装 XAMPP。现在我们首先看看 XAMPP 中提供的缺省软件包。

    基本的软件包

    基本的软件包包括系统、编程和服务器软件:

    Apache,著名的 Web 服务器
    MySQL,一种杰出、免费的开源数据库
    PHP,一种编程语言(在撰写本文时版本为 4.3.8 和 5.0.1)
    Perl,一种编程语言
    ProFTPD,一个 FTP 服务器
    OpenSSL,可以支持安全套接字层
    图形软件包

    XAMPP 包括以下与图形有关的软件包:

    GD,“Graphics Draw”库
    libpng,官方的 PNG 参考实现库
    libjpeg,官方的 JPEG 参考实现库
    ncurses,字符图形库
    数据库软件包

    如果没有以下的数据库软件包,怎么还能叫集成软件呢?

    gdbm,标准的 UNIX® dbm 库的 GNU 实现
    SQLite,一个相当小的、无需任何配置的 SQL 数据库引擎
    FreeTDS,一个数据库,让 UNIX 和 Linux 程序可以访问 Microsoft® SQL 和 Sybase 数据库
    XML 软件包

    为了开发 XML 程序,XAMPP 应该包含以下软件包:

    expat,一个 XML 解析器库
    Salbotron,一个 XML 工具包
    libxml,一个 XML C 解析器和 GNOME 工具包
    PHP 软件包

    为了开发 PHP 程序,XAMPP 应该包括以下软件包:

    PEAR,PHP 库
    一个 pdf 类,可以使用 PHP 生成动态的 PDF 文档
    TURCK MMCache,一个 PHP 性能增强器
    其他软件包

    最后,XAMPP 中包含了以下软件包来展示自己的强大功能:

    zlib,一个压缩库
    mod_perl,在 Apache 中嵌入了一个永久的 Perl 解释器
    gettext,一个工具集,可以帮助 GNU 软件包生成多语言的消息
    mcrypt,一个加密程序
    Ming,一个 Flash (SWF) 输出库
    Freetype2,一个软件前端引擎
    IMAP C-Client,一个邮件编程 API
    现在让我们讨论一下安装 XAMPP 的问题。






    回页首




    安装并作为守护进程运行

    要安装 XAMPP,请从 Apache Friends Web 站点上下载最新的二进制文件(请参阅 参考资料 中的链接)。使用下面的命令将其解开到 /opt 目录中:

    tar xvfz xampp-linux-1.4.7.tar.gz -C /opt

    就是这样!XAMPP 现在已经被安装到 /opt/lampp 目录中了。之前安装在 /opt 目录中的内容都已经被覆盖了。如果您正在运行一个旧版本的 XAMPP,并且不想再次下载整个软件包,Apache Friends 中还提供了一个升级包来下载需要的软件包。

    现在所有的软件都已经安装好了,让我们启动新的守护进程。将当前的工作目录切换到 /opt/lampp ( cd /opt/lampp)并输入下面的命令:

    ./lampp start

    您应该会看到下面的结果:

    Starting XAMPP for Linux 1.4.7...
    XAMPP: Starting Apache with SSL (and PHP5)...
    XAMPP: Starting MySQL...
    XAMPP: Starting ProFTPD...
    XAMPP for Linux started.

    XAMPP 现在就启动并运行了。最好的验证方法是打开一个浏览器并在地址栏中输入 localhost,并按回车键。此时浏览器会被重定向到 XAMPP 的 welcome 页面。


    图 1. XAMPP welcome 页面


    点击左边导航栏中的 Status 链接,就可以看到必需的服务已经正确启动了。如果所有的服务都运行正常,您就会看到下面的页面:


    图 2. Service status 页面


    恭喜!您现在已经安装和设置好了一个完整的 AMPP 开发环境了。现在让我们安装一个简单的应用程序来展示一下如何使用这种环境。






    回页首




    安装一个简单的应用程序

    要利用 XAMPP 的基本特性,您需要一个简单的应用程序。最好的应用程序是一个在后端使用数据库的程序;并使用一个相当简单的数据库,其中包含了一个精心设计的表。

    测试数据库包含一个只有一列的表。让我们按照测试程序的(计算机)传统,设计在我们的表中存放一条记录“Hello World!”。我们将使用一个 Perl 和 一个 PHP 脚本来访问这个数据库。这两个脚本都可以访问这个数据库,从中检索这行记录,并将其输出到屏幕上。

    工具

    我们的数据库将使用 phpMyAdmin 来创建和管理,这是使用 PHP 编写的一个杰出的基于 Web 的 MySQL 管理工具。它有一个非常友好的用户界面,可以允许您处理各种复杂的任务,包括创建/删除/修改数据库和表,以及导出数据、管理关键字和处理 SQL 文件。phpMyAdmin 是一个杰出的工具,因为:

    它可以帮助初学者熟悉 MySQL,而不用使用命令行接口来处理这些任务。
    它允许高级用户更快更容易地执行简单的任务和例行的任务。
    当您希望为某些用户授权访问数据库而不想让他们完全访问 shell 时,对于这种情况非常有用。
    创建数据库

    要在 phpMyAdmin 中创建一个数据库,请遵循下面的步骤:

    转换到 XAMPP 的 start 页面 (localhost)。
    在左边导航栏的 Tools 下面选择 phpMyAdmin。
    在 phpMyAdmin 主页的 Create New Database 域中,输入 hello_world,并点击 Create。
    现在您必须在数据库中创建一个表,并指定该表中应该包含哪些字段(字段与列类似)。让我们将自己的表称为“hello_table”,并让它只包含一个字段,其中保存记录“Hello world!”。在 Name 文本域中输入 hello_table,并在 Fields 文本域中输入 1。输入完之后,点击 Go。

    现在应该执行创建数据库的最后一个步骤了:为列选择一个名字和一个数据类型定义。让我们选中“hello”并将其命名为“hello_column”;并在 Field 文本域中输入 hello_column。

    由于我们要在列中存储字符串“Hello World!”,因此其类型必须是 char,长度为 12 (字符串 "Hello World!" 的长度)。缺省类型 varchar 就足够了。在 Type 后面的 Length/Values 文本域中,输入 12,表示最大长度是 12 个字符。不用关心该页面中其他域的设置,继续点击 Save。

    如果一切正常,您应该会看到下面的界面:


    图 3. Hello World 数据库摘要


    现在让我们插入记录 "Hello World!"。点击 Insert 标签,并在 Value 文本域中输入 "Hello World!"。 Function 下拉列表在这个例子中可以保留不变。点击 Go,将 "Hello World!" 记录插入数据库中。

    要确认记录已经成功插入数据库,请点击 Browse 标签。现在会显示 "hello world"。

    脚本

    现在后端软件已经启动并运行了,应该处理脚本部分了。我们将使用两个脚本,一个使用 Perl 编写,另外一个使用 PHP 编写。对于每个脚本来说,惟一的要求就是一个数据库连接、数据库访问权限以及在屏幕上输出检索到的行。


    清单 1. 简单的数据库连接,以及在 PHP 中使用 PEAR::DB 进行检索


    require_once 'DB.php'; // must be included in any script that uses PEAR::DB
    // it is a huge security risk to store your database connection information
    // in the same file as your code. We have done it here solely for the purpose
    // of this example. Please store your database connection information in another
    // file that is not in your document root directory and adequately protected.
    // database connection information
    $db_host = "localhost"; // hostname of the database server
    $db_user = "root"; // database user's username
    $db_pass = ""; // database user's password, nothing by default
    $db_name = "hello_world"; // the name of the database to connect to
    $db_type = "mysql"; // the type of database server.
    // your data source name string. This contains the connection
    // information for your database.
    $dsn = "$db_type://$db_user:$db_pass@$db_host/$db_name";
    // creates a database connection object or a database error
    // object based on the success of the database connection.
    $db = DB::connect($dsn, TRUE);
    // if an error was encountered, the script exits with an error message
    if (DB::isError($db)) {
    die($db->getMessage());
    }
    // SQL query that you wish to use to query the database
    $sql = "SELECT * FROM hello_table";
    // query the database, store result in $result
    $result = $db->query($sql);
    // exits with an error message if the query was unsuccessful
    if(DB::isError($result)){
    die($result->getMessage());
    }
    // fetch rows from the database until no more rows exist.
    // output the "hello_column" field of each row to the screen.
    // once no more rows exist, exit with an error message.
    while($row = $result->fetchRow(DB_FETCHMODE_OBJECT)){
    if(DB::isError($row)){
    die($row->getMessage());
    }
    print("

    $row->hello_column

    ");
    $result->free();
    }
    $db->disconnect(); //disconnect from the database



    这两个脚本都会连接到数据库上,并检索一行数据,并将该行输出到屏幕上。PHP 的数据库访问是使用 PEAR::DB 完成的,这是一个方便的数据库抽象层,不管数据库是如何实现的,它都可以使用相同的数据库访问代码。不幸的是,XAMPP 中并没有包含一个用于 Perl 的数据库抽象层。

    存放脚本

    因此,现在我们已经做好了所需的一切。数据库已经启动并运行了,并且已经有了两个测试用的脚本。现在需要做的工作是将这些脚本放到正确的地方。让我们快速了解一下 XAMPP 是如何存放在硬盘上的,如 清单 2 所示。

    我们现在感兴趣的目录是 /opt/lampp/htdocs/,也就是 Apache 的 Documents 目录。在 Web 站点的根目录中显示的任何 Web 页面和相关文件都位于这个目录中。由于我们现在能够看到 XAMPP 的 welcome 页面,因此这个目录中已经存在一些文件了。现在让我们快速了解一下这个目录的内容:(输入 ls /opt/lampp/htdocs):

    drwxr-xr-x 2 root root 4096 Jan 24 2003 apache
    -rwxr-xr-x 1 nobody root 163 Oct 31 2003 index.html
    drwxr-xr-x 2 nobody root 4096 Sep 12 21:54 webalizer
    drwxr-xr-x 5 root root 4096 Jun 15 06:24 xampp

    正如您可以看到的一样,这个目录中早已存在一些文件了。让我们在这个目录中建立一个自己的目录 hello_world ( mkdir hello_world)来存放脚本。从现在开始,您就可以输入 localhost/hello_world 来访问 hello_world 目录中的所有文件了。现在,将这两个脚本保存到这个目录中。到此为止,所有一切都已经完成了!

    测试应用程序

    要测试这个应用程序,首先切换到浏览器中,输入 localhost/hello_world。您应该会看到下面的界面:


    图 4. Hello World!


    恭喜!您已经设置好 XAMPP 上的一个应用程序了。






    回页首




    增强安全性

    XAMPP 的目标是一个开发环境。这种配置为程序员提供了一种对工具集没有任何限制的自由控制能力。作为自由的结果,缺省的 XAMPP 安装是非常不安全的。例如,有些操作几乎无需登录。

    对于 0.9.5 以及更新版本的 XAMPP 来说,您可以运行下面的命令来增强安全性:

    /opt/lampp/lampp security

    此时会给出一些提示说明现有的不安全的地方,您可以选择是否修复这个问题。虽然这样可以使 XAMPP 安装更加安全,但是您仍然不应当在产品服务器中使用 XAMPP。清单 3 列出了安全性提示:


    清单 3. XAMPP 中的安全性提示


    XAMPP: Quick security check...
    XAMPP: Your XAMPP pages are NOT secured by a password.
    XAMPP: Do you want to set a password? [yes] yes
    XAMPP: Password:
    XAMPP: Password (again):
    XAMPP: Password protection active. Please use 'lampp' as user name!
    XAMPP: MySQL is accessable via network.
    XAMPP: Normaly that's not recommended. Do you want me to turn it off? [yes] yes
    XAMPP: Turned off.
    XAMPP: Stopping MySQL...
    XAMPP: Starting MySQL...
    XAMPP: The MySQL/phpMyAdmin user pma has no password set!!!
    XAMPP: Do you want to set a password? [yes] yes
    XAMPP: Password:
    XAMPP: Password (again):
    XAMPP: Setting new MySQL pma password.
    XAMPP: Setting phpMyAdmin's pma password to the new one.
    XAMPP: MySQL has no root passwort set!!!
    XAMPP: Do you want to set a password? [yes] yes
    XAMPP: Write the password somewhere down to make sure you won't forget it!!!
    XAMPP: Password:
    XAMPP: Password (again):
    XAMPP: Setting new MySQL root password.
    XAMPP: Setting phpMyAdmin's root password to the new one.
    XAMPP: The FTP password is still set to 'lampp'.
    XAMPP: Do you want to change the password? [yes] yes
    XAMPP: Password:
    XAMPP: Password (again):
    XAMPP: Reload ProFTPD...
    XAMPP: Done.







    回页首




    执行备份

    因此,假设您的 XAMPP 安装已经启动并运行了几周了,并向其中输入了很多数据,那么您就应该防范出现硬盘崩溃的风险。您需要做哪些备份工作呢?

    使用 XAMPP 非常简单。将工作目录切换到 /opt/lampp ( cd /opt/lampp) 中,并输入下面的命令:

    ./lampp backup

    如果您已经设置了 MySQL 的 root 密码,那么在这个命令后面就要添加上 root 用户的密码。您应该会看到下面的内容:

    Backing up databases...
    Backing up configuration, log and htdocs files...
    Calculating checksums...
    Building final backup file...
    Backup finished.
    Take care of /opt/lampp/backup/xampp-backup-15-09-04.sh


    要恢复以前的备份,请以 root 用户的身份运行下面的命令:

    sh backupfilename

    如果一切正常,您将看到下面的结果:

    Checking integrity of files...
    Restoring configuration, log and htdocs files...
    Checking versions...
    Installed: XAMPP 1.4.7
    Backup from: XAMPP 1.4.7
    Restoring MySQL databases...
    Restoring MySQL user databases...
    Backup complete. Have fun!
    You may need to restart XAMPP to complete the restore.


    重新启动 XAMPP ( cd /opt/lampp, ./lampp restart),恢复的数据应该可用了。

    有各种这个版本的 最新下载地址是:
    http://www.apachefriends.org/zh_cn/xampp.html

  14. xg123 于 2009-11-26 09:06:04发表:

    好长啊!看不过来!

  15. baizx 于 2009-11-26 09:02:30发表:

    [i=s] 本帖最后由 baizx 于 2009-11-26 09:08 编辑 [/i]

    没关系 不是被 分开转了吗 看他们的吧 我这个就是备份用的 呵呵

  16. zhangzhaoi 于 2009-11-25 22:07:46发表:

    楼主此帖长度之长,余不忍观之

  17. baizx 于 2009-11-25 18:20:31发表:

    郁闷找不到 我的命令笔记了 哎~~乱放的坏习惯 以上的东西我大部分都亲自搞过 绝对OK

  18. baizx 于 2009-11-25 16:12:51发表:

    [i=s] 本帖最后由 baizx 于 2009-11-25 16:15 编辑 [/i]

    我一开始 是 用的 IDE盘作的 WINXP 与LINUX CENTOS双系统!现在希望再加一块硬盘,这个硬盘有自己的WINXP系统。我把后加的盘在从盘位置插好线后,开机却是进入后加的盘的系统。请问我怎么才能 像原来一样 一开机的话 GRUB的 启动界面,自己直接进入LINUX,或者可以自由选择进入哪个系统


    看看硬盘的跳线,把原来的硬盘设置为主盘(Master);还不行的话看看Bios里面,调整硬盘的启动顺序

  19. baizx 于 2009-11-25 15:01:33发表:

    你是说大标题吧 哈哈 抱歉 我不能写 转载或者原创了 因为这个就是我的笔记 在实际中遇到的问题 求解的时候直接网上搜的 或者是我自己解决的 还有我常用的命令和配置 以及 那些大大们写的我目前还用不到但需要借鉴的 我想你应该是没有好好看吧~!呵呵 我以后碰到问题 或者 找到好东西 我还是会继续添加的 因为 这个就是我的学习与应用笔记的 备份~~~~~{:2_97:}

  20. deepwhite 于 2009-11-25 14:43:05发表:

    不知是否你的原创,如果不是的话希望在标题前面加上“转载”两字。

  21. baizx 于 2009-11-25 13:28:05发表:

    一、通配符:“*”、“?”
      和DOS下一样,当我们不知道确切的文件名时,可以用通配符来进行模糊操作。“*”可以代表任意长度的任意字符,“?”代表一个任意字符。

      二、转义字符:“\”
      和DOS的命名规则不同的是,通配符“*”、“?”是可以在文件名中使用的。

      如果要操作的文件名中包含有这些特殊符号,我们可以结合“\”来表达。下面是通配符和正则表达式的一个简短列表:

      * 匹配所有字符

      ? 匹配字串中的一个字符

      \* 匹配“*”字符

      \? 匹配“?”字符

      \) 匹配“)”字符

      三、目录:“/”、“~”、“.”、“..”
      它们分别代表的意思是:

      “/”:根目录(在中间使用表示路径)

      “~”:用户根目录(用户登录时所在的目录)

      “.”:当前目录

      “..”:上级目录

      四、后台执行:“&”
      用户有时候执行命令要花很长时间,可能会影响做其他事情。最好的方法是将它放在后台执行。后台运行的程序在用户注销后系统还可以继续执行。当要把命令放在后台执行时,在命令的后面加上“&”。

      五、管道和重导向:“|”、“>”、“>>”、“<”
      重导向就是使命令改变它所认定的标准输出。“>”可将结果输出到文件中,该文件原有内容会被删除,“>>”则将结果附加到文件中,原文件内容不会被删除。“<”可以改变标准输入。如:

      cat data1.txt>>data2.txt(将data1.txt文件的内容加在data2.txt文件的后面)

      管道“|”可将命令的结果输出给另一个命令作为输入之用:

      man mtools|grep mbadblocks (在mtools的帮助中搜索包含“mbadblocks”的句子)

      man mtools|less(把输出用管道导入到一个叫做 less 的工具。less 是一个分页工具,它允许你一页一页地查看信息。)

      六、连接符号:“;”
      当有几个命令要连续执行时,我们可以把它们放在一行内,中间用“;”分开。

      mkdir myfile;cp /tmp/myfile.txt myfile(先建立一个目录myfile,然后把myfile.txt拷贝到新建的目录中)

  22. baizx 于 2009-11-25 13:07:59发表:

    Linux系统下架设CS服务器的完美方法
    首先你要下载两个文件.hlds_l_3109_full.bin cs_14_full.tar.gz,接下来就是安装了,首先就是要把文件解压:


    chmod +x hlds_l_3109_full.bin

    ./hlds_l_3109_full.bin


      这时会出现协议选项,输入"yes"就可以了,并且会解出hlds_l_3109_full.tar.gz文件.


    tar zxvf hlds_l_3109_full.tar.gz


      释放出HLDS_L目录(这个就是服务器的整个目录),开始安装CS1.4模式


    tar zxvf cs_14_full.tar.gz


      释放出 cstrike目录,然后拷贝到HLDS_L目录里面(如果你是在hlds_l目录里面释放cs_14_full.tar.gz文件的就省下下面的步骤)


    cp -a cstrike hlds_l/


      跟着就是设置server.cfg文件:(下面是已经做好的,直接复制进去就可以了)


    sv_cheats 0

    hostname "CSchina.net CS'Server " //服务器名字

    mp_timelimit 45 //更换地图时间

    mp_c4timer 45 // 炸弹倒计时时间

    mp_chasecam 0 // 是否固定镜头
    (如果选1 进入服务器后只能在固定地点观战,否则未加 入队伍的人可以自由观看)

    mp_falldamage 1 // 高处落下杀伤

    mp_flashlight 1 // 是否有战术手电

    mp_footsteps 1 //是否有脚步声

    mp_freezetime 4 // 每局开始固定买物品时间

    mp_friendly_grenade_damage 1 //是否手雷友军伤害

    mp_friendlyfire 0 // 是否友军伤害

    mp_autoteambalance 2 //自动调整双方人数差异最低限制

    mp_roundtime 4 //每回合最大时间数

    rcon_password **** // 服务器密码,*部分为自己设置

    mp_limitteams 2 // 双方超过N人即自动调

    整,N为数字
    mp_tkpunish 1 // 是否伤害友军惩罚

    mp_mapvoteratio 0.2 // 投票比率

    mp_logfile 1 //是否服务器留下记录文件

    log on //开始记录

    mp_playerid 0
    //为所有人在状态栏都可看到所有人的名字;
    1为只能看到自己人的名字;2为看不到任何人名字;
    0为默认。

    mp_fadetoblack 0 // 人物死亡后屏幕变黑,0为不变。0为默认。

    mp_forcechasecam 0 // 死后可以随意看,1只可看自己人,2只可看摄像机角度。0为默认。

    mp_buytime 90 // 可以购买物品时间,
    例如 mp_buytime 1.8为108秒那可以购买。
    1.5分钟为默认。

    mp_winlimit 17 // 当某方胜利次数达到17次更换地图。

    allow_spectators 1 // 允许观察员角度,0为不允许,1为允许。1为默认。

    mp_hostagepenalty 3 // 规定时间内伤害人质超过三人自动踢出

    cl_dynamiccrosshair 0 // ?是否使用动态准星,0为不允许,1为允许。默认为0。

    mp_logmessages 1 // 打开log
    下载并且安装最新的服务器补丁,安装方法和上面的基本一样,展开以后直接覆盖,现在要做的就是建立一个启动服务器的快捷文件,不然每次都要输入一大段命令,太麻烦了。

      进入hlds_l目录建立快捷启动文件CS,打开编辑器,随便那种都可以,如pico


    pico cs


      输入

    #/bin/bash/

    ./hlds_run -restart -game cstrike +port 27020 +maxplayers 20 +map de_inferno


      存盘退出

      -restart这个参数就是起到在cs服务器进程当掉的时候自动重新启动的作用。说到这个我倒想起一件事情,我刚认识的一个朋友,他自己就做了一个linux服务器进程监守程式(估计其他游戏或者软件都能用),除了有我上面所说的功能以外,还可以防止恶意关闭(如别人取得你的op密码或者OP不小心输入exit关闭服务器)。

      我测试过了,无论我是用op密码输入exit关闭服务器,还是在服务器里面kill掉服务器所有的CS进程,它都会自动重启服务器进程,除非你kill了这个监守程式,如果能kill了这个程式,估计你服务器也丧失了控制权,一般人也不会自己关闭进程那么无聊吧!

      现在快捷文件已经建立好了,不过现在还不能运行,输入chmod +x cs 修改一下快捷启动文件的属性(不然不能运行)

      现在已经大功告成了,在hlds_l目录里面输入./cs& 就可以启动cs服务器了,记得一定要加上&参数,不然你退出系统的时候cs服务器进程也会自动关闭的。

  23. baizx 于 2009-11-25 13:02:08发表:

    于 Linux 良好的用户权限管理体系,病毒往往是 Linux 系统管理员最后才需要考虑的问题。以往,Linux 上的杀毒软件主要是为企业的邮件和文件服务器所设计的。如今,随着 Linux 桌面用户数量的增长,桌面用户在受益于 Linux 系统对病毒较强的天然免疫力的同时,也需要杀毒软件清理从网络或U盘带来的WIndows病毒。尽管那些病毒根本无法给 Linux 系统带来任何影响,但是阻止病毒的进一步传播,也未尝不是一件好事。


    这里为大家介绍三款适用于桌面用户使用的杀毒软件。何谓“适合”?一个标准是可以免费使用,另一个标准是具有图形化操作界面。对于他们,将从安装配置、杀毒性能、图形界面三个项目进行简单的测试评分,每个单项最高5分。所有测试均在2008年10月7日系统更新后的 Fedora 9 i686_PAE GNOME 2.22.3 上进行,病毒库也采用当天更新的。为避免由于图形界面实现方式差异带来的性能影响,杀毒测试均调用相应杀毒软件的命令行版本执行,递归扫描并扫描压缩文档,最后记录杀毒软件自身反馈的统计结果。杀毒效果测试一时选用的是笔者位于Ext3分区下存放个人文档的目录,该目录中包含了 JPEG/PNG 图片、MP3/OGG/WMA 音乐、DOC/ODT/TXT 文档、CHM/PDF 电子书、7Z/RAR/ZIP 压缩档案,共16.8G,无病毒。杀毒效果测试二时选用的是笔者位于Ext3分区下存放下载文件的目录,该目录中包含了 RPM/GZ/BZ2 软件包、EXE/MSI Windows可执行文件、MKV/RMVB/MP4/WMV电影、ISO 光盘镜像、7Z/RAR/ZIP 压缩档案,共17.6G,包含一个keygen。由于手头未有最新的病毒测试样本包,无法进行杀毒准确性测试。望有此样本的朋友与我联系,以便弥补这一遗憾。为更接近桌面用户的实际情况,图形界面测试全部以普通用户权限执行。

    Avira AntiVir Personal - FREE Antivirus

    Avira AntiVir Personal - FREE 是一款来自德国的免费杀毒软件,国内俗称“小红伞”,以较低的系统占用率著称。该产品的 Windows 版本陪伴笔者走过了将近10年的时光,所以完全转向 Linux 系统后我也一直选用它。 Avira 同时也是 Dazuko 项目的创立者和赞助商,于是 Avira AntiVir Personal - FREE 也是本次参加评测的杀毒软件中惟一一款内置实时病毒检测的杀毒软件。做为一款商业软件,个人用户可以免费使用,安装完成后可以通过自动更新获得新的证书。

    安装配置:2分 - 体积庞大,无软件包方式,涉及手动编辑配置文件。 AntiVir Personal - FREE 的 Unix 版本支持32位 Linux / FreeBSD / OpenBSD / Solaris 操作系统,打包在一个45MB 大的 TAR.GZ 文件中,未提供 RPM/DEB 安装包。安装采用的是 Bash 脚本的方式,全英文,期间会提供关于实时病毒检测、邮件病毒提醒、更新代理服务器等配置向导,依照提示即可完成。尽管内置了实时病毒检测功能,但未包含 Dazuko 的源代码包,所以若要真正使用实时病毒检测功能,还需要另行下载 Dazuko 源代码包并编译成内核模块。安装后依据要求还需要添加 "-b /usr/lib/AntiVir" 到 /etc/prelink.conf 文件中。另外还需将使用 AntiVir Personal - FREE 的普通用户添加到新创建的 antivir 用户组中。

    杀毒性能:5分 - 杀毒速度最快,压缩文档支持较好。

    以下是 antivir 命令行版本信息。

    antivir -V
    7.8.1.34
    operating system: Linux (glibc 2.2)
    product version: 2.1.12-68
    engine version: 7.8.1.34
    packlib version: 7.6.1.7 (supports 34 formats)
    vdf version: 7.0.7.7

    product: AntiVir Workstation
    key file: hbedv.key
    registered user: Avira AntiVir PersonalEdition Classic
    serial number: 0000149996-PXWSE-0001
    key expires: 01 Nov 2008
    run mode: PERSONAL

    product: AntiVir (command line scanner)
    key file: hbedv.key
    registered user: Avira AntiVir PersonalEdition Classic
    serial number: 0000149996-PXWSE-0001
    key expires: 01 Nov 2008
    run mode: PERSONAL
    以下是杀毒测试一统计结果。

    antivir -s -z
    ------ scan results ------
    directories: 285
    scanned files: 9440
    alerts: 0
    suspicious: 0
    scan time: 00:03:55
    --------------------------
    以下是杀毒测试二统计结果。

    antivir -s -z
    ------ scan results ------
    directories: 41
    scanned files: 111809
    alerts: 1
    suspicious: 0
    repaired: 0
    deleted: 0
    renamed: 0
    quarantined: 0
    warnings: 2
    scan time: 00:15:59
    --------------------------
    速度是最快的,同时对于RAR档案内的文件也能进行扫描。

    图形界面:1分 - 外表美观,无实际意义。



    由于涉及到多个 Unix 分支系统, AntiVir Personal - FREE 的图形界面是采取 Java 方式实现的,所以要求至少 Sun JRE 1.4.2 。经测试 Fedora 9 预置的 OpenJDK 6 亦可运行。安装后 AntiVir Personal - FREE 并未在应用程序菜单中装创建启动器,所以图形界面需要打开终端使用 antivir-gui 命令启动。Java 实现的图形界面保持了和 Windows 版本一致精美的外观和操作方式,但是仅提供了基本的设置和扫描操作。其中更改的设置由于没有根用户权限是无法生效的,而扫描仅能选择扫描整个本地磁盘,无法指定具体某个目录,而且一但开始扫描就无法停止,只能通过系统监视器停止。类似的,更新病毒库操作由于没有根用户权限依然无法生效。估计这个图形界面的主要为了配合 Dazuko 的实时病毒监控而设计的,除此之外没什么用途。

    Free avast! Linux Home Edition

    Free avast! Linux Home Edition 是一款来自捷克的免费杀毒软件,它的 Windows 版本因为较强的脱壳能力和精美的外表而著称。它的 Linux 版本采用于Windows版本相似的杀毒内核,自2003年起已经连续五年获得 VB100% 认证,可谓久负盛名。另外我发现 avast! PDA Edition 中竟然还有 Palm OS 平台的(只有30KB大!),足见 avast!杀毒内核的可移植性。做为一款商业软件,它的家庭版本也是可以免费使用的,但是需要每年通过注册的电子邮件获得新的证书。

    安装配置:4分 - 简单快速,每年更新证书稍显麻烦。

    Free avast! Linux Home Edition 提供32位 RPM/DEB/TAR.GZ 三种安装形式,约 11 MB。在笔者的系统下使用RPM包安装十分方便,下载完成后直接双击即可,除了GTK2 外没有特殊的依赖关系,之后会在应用程序菜单中找到相应的启动器。首次运行时会询问你证书,此时需要通过官方网站注册,并在邮箱中找到你的证书,将其复制至此即可。整个过程中并未涉及更新用代理服务器的内容。

    杀毒性能:4分 - 速度一般,压缩档案支持很好。

    以下是 avast 命令行版本信息。

    avast -V
    avast: avast v1.0.8
    VPS: 081007-0 (date: 07.10.2008)
    Copyright(C) 2003-2007. ALWIL Software. All rights reserved.
    以下是杀毒测试一统计结果。

    avast -t A
    #
    # Statistics:
    #
    # scanned files: 10654
    # scanned directories: 285
    # infected files: 0
    # total file size: 22.7 GB
    # virus database: 081007-0 07.10.2008
    # test elapsed: 13m:13s 438ms
    #
    以下是杀毒测试二统计结果。

    avast -t A
    #
    # Statistics:
    #
    # scanned files: 120009
    # scanned directories: 41
    # infected files: 11
    # total file size: 25.2 GB
    # virus database: 081007-0 07.10.2008
    # test elapsed: 59m:50s 318ms
    #
    扫描速度只能说一般,但是avast!解压缩能力是相当出众,对于多种 EXE 加壳手段都能检测出来。不过也因此导致了含有大量压缩档案的测试二用时较长。

    图形界面:4分 - 简洁明快,功能丰富



    Free avast! Linux Home Edition 虽然没有保持 Windows 版本精美的操作界面,但是在简洁的外观下蕴涵了最为丰富的功能。包括排除目录、邮件提醒、报告格式等全部设置都可以在图形界面下完成,遗憾的是没有更新代理服务器的设置。值得一提的是 Free avast! Linux Home Edition 提供了本地的病毒百科全书,方便用户查阅。在图形界面下可以进行病毒库更新、查看日志、设置隔离区的操作,对于桌面用户来讲十分方便。病毒扫描也可以选择多个不同的目录,并且可以方便在快速、标准、深入三种方式中切换,也可以自由选择是否扫描压缩档案。按下F1可以打开内置帮助,采用的是GTK2的帮助组件。惟一遗憾的是目前还没有中文版本。

    ClamTk Virus Scanner

    ClamTk Virus Scanner 是著名的开放源代码杀毒软件 ClamAV 的图形前端,采用的是 GTK2-Perl 脚本制作,可以在32位/64位系统上运行。ClamTk Virus Scanner 同样是一款开放源代码,所以可以在包括商业公司、盈利机构等在内的任何场所免费使用。与采用KDE组件构造的 Klamav 相比,ClamTK 更适合以 GNOME 为桌面环境的用户。

    安装配置:3分 - 依赖较多,涉及手动编辑配置文件。

    ClamTk Virus Scanner 提供了适合于多个发行版的软件包,包括 Debian、Fedora、CentOS、SuSE、Mandriva,印象中也被包含在Ubuntu 的资源仓库里,只有大约97KB,十分小巧。本人下载好适合 Fedora 的 RPM 包后双击开始安装,由于需要 ClamAV 和 GTK2-Perl 较多,又安装了共 21M 的相关支持包。安装过后需要注释掉 /etc/freshclam.conf 文件中的 Example 标示行才能更新病毒库。关于代理服务器和更新镜像的设置也只能手动修改配置文件完成。

    杀毒性能:2分 - 速度缓慢,压缩文档支持一般。

    以下是 clamscan 版本信息。

    clamscan -V
    ClamAV 0.93.3/8387/Tue Oct 7 23:37:07 2008
    以下是杀毒测试一统计结果。

    clamscan -r
    ----------- SCAN SUMMARY -----------
    Known viruses: 438891
    Engine version: 0.93.3
    Scanned directories: 285
    Scanned files: 8360
    Infected files: 1
    Data scanned: 10691.21 MB
    Time: 1713.473 sec (28 m 33 s)
    以下是杀毒测试二统计结果。

    clamscan -r
    ----------- SCAN SUMMARY -----------
    Known viruses: 438891
    Engine version: 0.93.3
    Scanned directories: 41
    Scanned files: 654
    Infected files: 1
    Data scanned: 2179.51 MB
    Time: 562.355 sec (9 m 22 s)
    速度慢的出奇,很难想象这个还是和本地 Glibc 连接优化过的程序。在测试一中出现误报的情况。由于无法处理 RAR 格式的压缩档案,clamscan 会直接跳过测试二中大量的 RAR 档案,于是用时会比其余两款要短。

    图形界面:4分 - 美观,支持右键杀毒,充分本地化。



    ClamTk Virus Scanner 充分发挥了开放源代码软件的优势,它的图形化界面与的 GNOME 风格协调统一,可以正确使用全局设置中图标集和字体。安装后不仅会在应用程序菜单汇中创建启动器,还会和 Nautilus 文件管理器集成,添加右键杀毒功能,十分方便。除此之外,还可以通过快捷键快速切换 ClamTk Virus Scanner 提供的各种设置选项。遗憾的是,由于权限设置问题,普通用户不能使用图形化方式更新病毒库(不知此瑕疵可否通过把普通用户添加到clamav用户组中解决)。感谢 Tao Wei 和 Aron Xu 两位翻译者,ClamTk Virus Scanner 中文化非常的高。

    总结

    经过之上的简单测试,个人意见:Avira AntiVir Personal - FREE 适合在意扫描速度和各种高级功能的技术性用户使用,但是憋足的图形化界面会严重影响桌面用户的接受度。ClamTk Virus Scanner 做为开放源代码软件,体现了其与其他程序的高度协同性,而且拥有最好的中文本地化界面,但是其所用后端ClamAV的扫描准确度和速度需要改善(ClamAV 已经更新到 0.94 版本了,本文未采用由于 Fedora 仓库尚未更新到此版本)。相比之下,Free avast! Linux Home Edition 以其简单的安装和完备的图形化界面更容易征服 Linux 初学者的心,而连续五年 VB100% 的成绩也足以证明其的确具有强大的实力。

    所以,Free avast! Linux Home Edition 获得本次 Linux 免费桌面级杀毒软件推荐奖(Toy奖?哎呦,番茄飞啊飞……)~

    PS:关于 Linux 下到底有没有必要杀毒软件的问题,我只能说尚未见过没有杀毒软件的 Linux 邮件服务器。对于桌面用户来言,是不是有必要就看个人需要了。反正 Linux 下的杀毒软件又不带实时病毒检测功能,安装下来也就10MB左右,装一个完全不影响系统性能。另外对于双系统的用户来言,在 Linux 下查杀 Windows 分区的病毒是个很明智的手段。

  24. Ringfar 于 2009-11-25 10:59:02发表:

    吐血支持楼主

  25. baizx 于 2009-11-25 10:08:07发表:

    [i=s] 本帖最后由 baizx 于 2009-11-25 10:27 编辑 [/i]

    汗 基本都是转人家的 我还真是菜啊~~留个备份 免得系统出问题找不到 丢人 羞愧

  26. baizx 于 2009-11-25 10:00:08发表:

    CentOS 5 全功能WWW服务器搭建全教程 V3.0
    一、基本系统安装
    1、下载CentOS 5
    我是下载的DVD版本,大家也可以下载服务器CD安装版本,其实都差不多。大家可以到这儿下载,速度很快的。
    http://ftp.iasi.roedu.net/mirrors/ce...86-bin-DVD.iso
    建议在windows下用BT或迅雷下载,速度会快很多。
    下载后刻录成光盘。我建议你刻录DVD啦,如果是菜鸟,把图形界面也装上,可以在图形界面进行学习,当然强烈不建议在服务器上装桌面。
    Centos 5系列任何一个版本就行了,安装后可以通过yum upgrade直接更新为最新版本。

    2、安装CentOS 5
    作为服务器,不安装不需要的组件,所以在选择组件的时候,除了选择FTP SERVER外取消所有组件的选择。也不要选web服务器。因为我们后面要手动编译安装。
    系统约定RPM包和源码包存放位置
    RPM包和源码包存放位置 /usr/local/src
    源码包编译安装位置(prefix) /usr/local/xxx
    脚本以及维护程序存放位置 /usr/local/sbin
    MySQL 数据库位置 /var/lib/mysql
    Apache 网站根目录 /usr/local/apache2/htdocs
    Apache 虚拟主机日志根目录 /data/logs/www
    yum RPM包信息文件 /etc/yum.list

    3、系统环境部署及调整
    (1)检查系统是否正常
    # more /var/log/messages //检查有无系统内核级错误信息
    # dmesg //检查硬件设备是否有错误信息
    # ifconfig //检查网卡设置是否正确
    # ping www.163.com // 检查网络是否正常
    (2)关闭不需要的服务
    # export LANG='en_US' //设置语言
    # setup //选择启动的服务
    进入system service 选项。
    以space 键选定所需服务。
    以下仅列出需要启动的服务,未列出的服务一律关闭:
    crond
    irqbalance 仅当服务器CPU为S.M.P架构或支持双核心、HT技术时,才需开启,否则关闭。
    microcode_ctl
    network
    iptables
    vsftpd
    sshd
    syslog
    yum-updatesd
    (3)修改/etc/yum.repos.d/CentOS-Base.repo,将镜象站点地址改为在中国的镜象站点地址。不然我们通过yum安装软件速度会极慢。修改如下:
    # CentOS-Base.repo
    #
    # This file uses a new mirrorlist system developed by Lance Davis for CentOS.
    # The mirror system uses the connecting IP address of the client and the
    # update status of each mirror to pick mirrors that are updated to and
    # geographically close to the client. You should use this for CentOS updates
    # unless you are manually picking other mirrors.
    #
    # If the mirrorlist= does not work for you, as a fall back you can try the
    # remarked out baseurl= line instead.
    #
    #
    [base]
    name=CentOS-$releasever - Base
    baseurl=http://mirrors.shlug.org/centos/$releasever/os/$basearch/
    gpgcheck=1
    gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
    protect=1
    #released updates
    [updates]
    name=CentOS-$releasever - Updates
    baseurl=http://mirrors.shlug.org/centos/$releasever/updates/$basearch/
    gpgcheck=1
    gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
    protect=1
    #packages used/produced in the build but not released
    [addons]
    name=CentOS-$releasever - Addons
    baseurl=http://mirrors.shlug.org/centos/$releasever/addons/$basearch/
    gpgcheck=1
    gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
    protect=0
    #additional packages that may be useful
    [extras]
    name=CentOS-$releasever - Extras
    baseurl=http://mirrors.shlug.org/centos/$releasever/extras/$basearch/
    gpgcheck=1
    gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
    protect=0
    #additional packages that extend functionality of existing packages
    [centosplus]
    name=CentOS-$releasever - Plus
    baseurl=http://mirrors.shlug.org/centos/$releasever/centosplus/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
    protect=1
    #contrib - packages by Centos Users
    [contrib]
    name=CentOS-$releasever - Contrib
    baseurl=http://mirrors.shlug.org/centos/$releasever/contrib/$basearch/
    gpgcheck=1
    enabled=0
    protect=0
    gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
    保存文件。
    (4)更新系统,我们使用yum,
    运行:
    # yum upgrade
    建议更新所有列出的程序,包括内核,rhel 5.X的稳定性还要继续努力呢。
    (5)定时校正服务器时间
    # yum install -y ntp
    # crontab -e
    0 23 * * * /usr/sbin/ntpdate 210.72.145.44
    以上命令设置好后存盘。
    # /sbin/service crond reload
    重载计划任务配置
    您的机器将在每天的23:00根据中国国家授时中心的NTP服务器时间自动校准时间。
    (6)FTP服务器的配置
    vi /etc/vsftpd/vsftpd.conf
    把anonymous_enable=YES
    修改为anonymous_enable=No不允许匿名登录。
    添加两句
    chroot_local_user=yes
    listen_port=2121
    将用户锁定在主目录,并将FTP监听端口修改为2121
    把ftpd_banner=*前的注释去掉。后面改成你的欢迎信息(这样设置可以避免显示ftp服务器的版本信息)
    然后保存,service vsftpd start就可以了。
    这时应当添加用户,因为root默认不能通过FTP方式登录,也不安全。
    groupadd upload
    useradd upload -g upload -d /usr/local/apache2/htdocs/ -M
    如果FTP登录时出现
    ftp服务器连接失败,错误提示:
    500 OOPS: cannot change directory:/home/*******
    500 OOPS: child died
    解决方法:
    # setsebool ftpd_disable_trans 1
    # service vsftpd restart
    这样对于我们上传一些文件到系统中很方便。
    大家有兴趣的可以看下这篇文章对vsftpd进行一个比较详细的了解
    http://blog.chinaunix.net/u/10047/showart_198837.html
    4、重新启动系统
    # init 6
    此时系统启动成功,可以删除老的内核

    二、安装mysql, apache, php, Zend Optimizer等基本环境
    5. 使用 yum 程序安装所需开发包(以下为标准的rpm包名称)
    # yum install gcc gcc-c++ gcc-g77 flex bison autoconf automake bzip2-devel zlib-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel openssl-devel libxml2-devel gettext-devel pcre-devel
    #这里我们将编译GD所必须的一些小软件比如libpng,libtiff,freetype,libjpeg,gettext-devel等先用RPM 的方式一并安装好,避免手动编译浪费时间,同时也能避免很多错误,这几个小软件的编译很麻烦。这几个小软件编译错误了,GD当然安装不了,php5的编译当然也没戏了。所以我们抓大放小,对这些小牛鬼蛇神采取快速简洁的方式进行安装。并且对服务器的性能也不能产生什么影响。
    另外libxml2系统已经默认安装了,所以我们不需要手工编译了,直接安装它的开发包就行了。
    6. 源码编译安装所需包 (Source)
    (1) GD2
    # cd /usr/local/src
    # wget http://www.libgd.org/releases/gd-2.0.35.tar.gz
    # tar xzvf gd-2.0.35.tar.gz
    # cd gd-2.0.35
    # yum install libtool libtool-ltdl
    # aclocal
    # CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" ./configure --prefix=/usr/local/gd2 --mandir=/usr/share/man
    // 注意,CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" 这个环境参数只针对intel P4 芯片,如果你的CPU是AMD的,注意不能使用。请查看相应的编译优化参数。否则程序会无法编译,即使编译成功也无法运行,嘿嘿。
    关于其他CPU的优化参见我的BLOG的一篇转贴:
    http://www.cnprint.org/bbs/blogs/1/blog43.html
    //./configure 配置。
    # make //make 是用来编译的,它从 Makefile 中读取指令,然后编译。
    # make install //make install 是用来安装的,它也从 Makefile 中读取指令,安装到指定的位置。
    (2) Apache 日志截断程序
    # cd /usr/local/src
    # wget http://cronolog.org/patches/cronolog-1.7.0-beta.tar.gz
    # tar cronolog-1.7.0-beta.tar.gz
    # cd cronolog-1.7.0-beta
    #CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" ./configure --prefix=/usr/local/cronolog && make && make install

    7、编译mysql 5.0.50
    mysql 5.0.50是企业版本,貌似双数版本都是企业版本了。个人觉得代码质量要比社区版本要好一些。大家可以下载,免费使用。并不需要向mysql公司交钱。
    #cd /usr/local/src
    # wget http://mirror.provenscaling.com/mysq...-5.0.50.tar.gz
    # tar xzvf mysql-5.0.50.tar.gz
    # cd mysql-5.0.50
    修改mysql 客户端最大连接数, 默认的只有100,远远达不到我们的要求。
    # vi sql/mysqld.cc
    搜索找到下面一行:
    {"max_connections", OPT_MAX_CONNECTIONS,
    "The number of simultaneous clients allowed.", (gptr*) &max_connections,
    (gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 100, 1, 16384, 0, 1,
    0},
    将其中的100改为1500, 当然小点也可以,根据你的需要来,不建议改的太大。
    {"max_connections", OPT_MAX_CONNECTIONS,
    "The number of simultaneous clients allowed.", (gptr*) &max_connections,
    (gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 1500, 1, 16384, 0, 1,
    0},
    保存。
    # CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" ./configure --prefix=/usr/local/mysql --localstatedir=/var/lib/mysql --with-comment=Source --with-server-suffix=-enterprise-gpl --with-mysqld-user=mysql --without-debug --with-big-tables --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=gbk,latin1 --with-pthread --enable-static --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --enable-assembler --without-innodb --without-ndb-debug --without-isam --enable-local-infile --with-readline --with-raid
    配置成功会提示:
    MySQL has a Web site at http://www.mysql.com/ which carries details on the
    latest release, upcoming features, and other information to make your
    work or play with MySQL more productive. There you can also find
    information about mailing lists for MySQL discussion.
    Remember to check the platform specific part of the reference manual for
    hints about installing MySQL on your platform. Also have a look at the
    files in the Docs directory.
    Thank you for choosing MySQL!
    # make
    编译的时间可能会比较长,毕竟优化的比较厉害。
    # make install
    编译安装完成后执行后续操作:
    # useradd mysql //添加 mysql 用户
    # cd /usr/local/mysql
    # bin/mysql_install_db --user=mysql
    # chown -R root:mysql . //设置权限,注意后面有一个 "."
    # chown -R mysql /var/lib/mysql //设置 mysql 目录权限
    # chgrp -R mysql . //注意后面有一个 "."
    # cp share/mysql/my-medium.cnf /etc/my.cnf
    # cp share/mysql/mysql.server /etc/rc.d/init.d/mysqld //开机自动启动 mysql。
    # chmod 755 /etc/rc.d/init.d/mysqld
    # chkconfig --add mysqld
    #添加LIB PATH
    echo "/usr/local/mysql/lib" >> /etc/ld.so.conf && ldconfig
    vi /etc/my.cnf
    修改 MySQL 配置,增加部分优化参数,如下:
    [mysqld]
    ft_min_word_len=2
    运行以下命令即可启动 MySQL 服务器:
    # /etc/rc.d/init.d/mysqld start //启动 MySQL
    # bin/mysqladmin -u root password "password_for_root"
    # service mysqld stop //关闭 MySQL

    8. 编译安装 Apache
    # cd /usr/local/src
    # wget http://www.ip97.com/apache.org/httpd/httpd-2.2.6.tar.gz
    # tar zxvf httpd-2.2.6.tar.gz
    # cd httpd-2.2.6
    先依次安装apr和apr-util
    # cd srclib/apr
    # CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" ./configure --prefix=/usr/local/apr --enable-threads --enable-other-child --enable-static
    # make && make install
    # cd ../apr-util
    # CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/ --with-mysql=/usr/local/mysql
    # make && make install
    cd /usr/local/src/httpd-2.2.6
    # CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" ./configure --prefix=/usr/local/apache2 --enable-mods-shared=all --with-mysql=/usr/local/mysql --enable-cache --enable-file-cache --enable-mem-cache --enable-disk-cache --enable-static-support --enable-static-htpasswd --enable-static-htdigest --enable-static-rotatelogs --enable-static-logresolve --enable-static-htdbm --enable-static-ab --enable-static-checkgid --disable-cgid --disable-cgi --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --enable-ssl --with-ssl=/usr/include/openssl --with-pcre
    # make
    # make install
    注解:
    ./configure //配置源代码树
    --prefix=/usr/local/apache2 //体系无关文件的顶级安装目录PREFIX ,也就Apache的安装目录。
    --enable-module=so //打开 so 模块,so 模块是用来提 DSO 支持的 apache 核心模块
    --enable-mods-shared=all //编译全部的模板,对于不需要我们可以在httpd.conf去掉。
    --enable-cache //支持缓存
    --enable-file-cache //支持文件缓存
    --enable-mem-cache //支持记忆缓存
    --enable-disk-cache //支持磁盘缓存
    --enable-static-support //支持静态连接(默认为动态连接)
    --enable-static-htpasswd //使用静态连接编译 htpasswd - 管理用于基本认证的用户文件
    --enable-static-htdigest //使用静态连接编译 htdigest - 管理用于摘要认证的用户文件
    --enable-static-rotatelogs //使用静态连接编译 rotatelogs - 滚动 Apache 日志的管道日志程序
    --enable-static-logresolve //使用静态连接编译 logresolve - 解析 Apache 日志中的IP地址为主机名
    --enable-static-htdbm //使用静态连接编译 htdbm - 操作 DBM 密码数据库
    --enable-static-ab //使用静态连接编译 ab - Apache HTTP 服务器性能测试工具
    --enable-static-checkgid //使用静态连接编译 checkgid
    --disable-cgid //禁止用一个外部 CGI 守护进程执行CGI脚本
    --disable-cgi //禁止编译 CGI 版本的 PHP
    --enable-ssl // 编译 ssl模块。
    我们不再使用worker模式编译apache,worker模式和php貌似有一些不协调不稳定之处。所以使用了默认的perfork模式。
    将apache设置成开机自启动:
    在/etc/rc.d/rc.local文件中加入一行
    /usr/local/apache2/bin/apachectl start
    这样每次重新启动系统以后,apache也会随系统一起启动.
    或者将apache安装为系统服务
    # cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd
    然后 vi /etc/rc.d/init.d/httpd 添加(#!/bin/sh下面)
    # chkconfig: 2345 50 90
    # description: Activates/Deactivates Apache Web Server
    最后,运行chkconfig把Apache添加到系统的启动服务组里面:
    # chkconfig --add httpd
    # chkconfig httpd on

    9、编译php 5.2.5
    Suhosin是php增强型安全补丁,可以编译到静态内核中,也可以编译成php动态扩展。我个人强烈你建议安装成静态内核。Suhosin已经进入 Gentoo Linux、FreeBSD、OpenSuSE Linux、Mandriva Linux、Debian Linux官方包。下面的以下先说静态安装步骤。当然你也可以在安装php后将它编译成php的动态扩展。
    # cd /usr/local/src
    # wget http://cn.php.net/get/php-5.2.5.tar.gz/from/this/mirror
    wget http://www.hardened-php.net/suhosin/...9.6.2.patch.gz
    # tar zxvf php-5.2.5.tar.gz
    # gunzip suhosin-patch-5.2.5-0.9.6.2.patch.gz
    # cd php-5.2.5
    # patch -p 1 -i ../suhosin-patch-5.2.5-0.9.6.2.patch
    # ./buildconf --force
    # CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-pear=/usr/share/php --with-zlib-dir --with-bz2 --with-libxml-dir=/usr --with-gd=/usr/local/gd2 --enable-gd-native-ttf --enable-gd-jis-conv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-ttf=shared,/usr --enable-mbstring --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-config-file-path=/etc --with-iconv --disable-ipv6 --enable-static --enable-zend-multibyte --enable-inline-optimization --enable-zend-multibyte --enable-sockets --enable-soap --with-openssl --with-gettext --enable-suhosin
    配置成功会提示:
    +--------------------------------------------------------------------+
    | License: |
    | This software is subject to the PHP License, available in this |
    | distribution in the file LICENSE. By continuing this installation |
    | process, you are bound by the terms of this license agreement. |
    | If you do not agree with the terms of this license, you must abort |
    | the installation process at this point. |
    +--------------------------------------------------------------------+
    Thank you for using PHP.
    # make
    # make test
    # make install
    # cp php.ini-recommended /etc/php.ini
    # echo "/usr/local/php/lib" >> /etc/ld.so.conf && ldconfig
    在这里也顺便说一下将suhosin安装成为php的动态扩展的方法。毕竟网上根本不见它的中文安装教程。
    虽然我个人不推荐这种方式。
    wget http://www.hardened-php.net/suhosin/...sin-0.9.20.tgz
    tar zxvf suhosin-0.9.20.tgz
    cd suhosin-0.9.20
    ./configure --with-php-config=/usr/local/php/bin/php-config
    make
    make install
    会提示编译的模块存在的目录,记住它。
    Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20060613/
    然后在php.ini中增加一行下列语句。
    extension="/usr/local/php/lib/php/extensions/no-debug-zts-20060613/suhosin.so"

    10、整合apache 与php
    # vi /usr/local/apache2/conf/httpd.conf
    在最后一行加上:
    AddType application/x-httpd-php .php
    查找:(设置 WEB 默认文件)
    DirectoryIndex index.html
    修改为:
    DirectoryIndex index.php index.html index.htm
    找到这一段:
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    # Options FileInfo AuthConfig Limit
    #
    AllowOverride none
    更改为AllowOverride all
    允许apache rewrite
    保存httpd.conf,退出。
    # /usr/local/apache2/bin/apachectl restart //重启 Apache
    这时会出现错误:
    /usr/local/apache2/bin/apachectl start
    httpd: Syntax error on line 107 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/libphp5.so into server: /usr/local/apache2/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied
    不急,我们慢慢解决。
    这个Permission denied问题,在centos 5下面一般是Selinux引起的,作为生产用服务器,我建议你千万别草率地关掉Selinux一了百了。就像家里的防盗网,阻碍了你的猫自由进出窗户,你不能为了猫方便,就把防盗网简单拆除是同样的道理。我看见网上许多人建议把Selinux简单关闭来解决这个问题,这是削足适履的做法,不值得提倡。
    我们可以这样操作:
    # audit2allow -a //查看究竟问题出在什么地方

    allow unconfined_t usr_t:file execmod;
    allow useradd_t var_log_t:file { read write };
    然后
    # cd /etc/selinux/targeted/modules/
    # audit2allow -M local -d
    屏幕产生如下提示:
    Generating type enforcment file: local.te
    Compiling policy
    checkmodule -M -m -o local.mod local.te
    semodule_package -o local.pp -m local.mod
    ******************** IMPORTANT ***********************
    In order to load this newly created policy package into the kernel,
    you are required to execute
    semodule -i local.pp
    我们运行
    # semodule -i local.pp
    这样就让Selinux加载了新的规则。
    更详细的内容请看我在BLOG上的转贴:
    http://www.cnprint.org/bbs/blogs/1/blog48.html
    重启apache
    哈哈,apache不会再报错了吧?
    这样我保留了selinux的功能,同时apache也能正常运行。
    PHP5.1.x开始需要设置时区,默认时区与中国时区差8个小时,这种情况需要在php.ini中这么设置,找到date.timezone,去掉前面的分号,修改为以下值,大陆地区可用的值是:Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次为重庆,上海,乌鲁木齐)
    不然一些php程序的时间老是和中国标准时间相差8个小时。我的我的VBB论坛在windows上就是这样。这儿有亚洲地区的对应时区。
    http://www.php.net/manual/en/timezones.asia.php
    11、安装 Zend Optimizer
    # cd /usr/local/src
    # wget http://downloads.zend.com/optimizer/...21-i386.tar.gz
    # tar xzvf ZendOptimizer-3.3.0-linux-glibc21-i386.tar.gz
    # ./ZendOptimizer-3.3.0-linux-glibc21-i386/install.sh
    按照它的提示一步步进行就行了。
    总之一句话。如果你的服务器环境不需要ZendOptimizer,那么能不安就不安装这个。避免和eaccelerator冲突。
    12. 查看确认 L.A.M.P 环境信息
    vi /usr/local/apache2/htdocs/phpinfo.php
    新增加下面一行,并保存。

    # chmod 755 /usr/local/apache2/htdocs/phpinfo.php
    用浏览器打开 http://192.168.9.150/phpinfo.php
    检查 phpinfo中的各项信息是否正确。
    测试php与mysql的连接
    # vi /usr/local/apache2/htdocs/testdb.php
    增加下面几行,并保存。
    $link=mysql_connect('localhost','root','yourpassword');
    if(!$link) echo "fail";
    else echo "success";
    mysql_close();
    ?>
    # chmod 755 /usr/local/apache2/htdocs/testdb.php
    # service mysqld start
    用浏览器打开 http://192.168.9.150/testdb.php
    如果输出success就OK了
    到这一步,一个基本的lamp就建立完成了。如果你是初学者,下面的步骤根据需要参考,不必全部照做,记住一句话,功能越多,越容易出错,在任何领域都是这样。

    三、LAMP环境加速,包括squid, memcache, eaccelerator
    13、安装eaccelerator
    eaccelerator是php的加速软件,使用后php的执行效率会有较大幅度的提升。目前eaccelerator 0.9.5.2已经和ZendOptimizer-3.3.0能够基本上兼容啦。不过我个人觉得,ZendOptimizer-3.3.0没有加速的功能,反而使php运行变慢,只是起到了运行zend加密文件的作用而已。闲话不多说了,大家有兴趣的,可以去google下。
    # cd /usr/local/src
    # wget http://bart.eaccelerator.net/source/....9.5.2.tar.bz2
    # tar -jxvf eaccelerator-0.9.5.2.tar.bz2
    # cd eaccelerator-0.9.5.2
    export PHP_PREFIX="/usr/local/php"
    $PHP_PREFIX/bin/phpize //指定一下php的目录
    # CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" ./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config --with-eaccelerator-shared-memory // 设置
    # make & make install
    编译安装后我们会看到屏幕提示的eaccelerator.so所在的目录,php5.2.X系列是在 /usr/local/php/lib/php/extensions/no-debug-zts-20060613/eaccelerator.so,记住这个路径,待会要用到。
    修改php.ini(安装完zend之后,php.ini存放于/usr/local/Zend/etc)
    在文件最后,zend之前,注意,这部分内容务必放在zend之前,不然可能会出现不可预期的服务器问题。添加下列信息:
    [eaccelerator]
    extension="/usr/local/php/lib/php/extensions/no-debug-zts-20060613/eaccelerator.so"
    eaccelerator.shm_size="32"
    eaccelerator.cache_dir="/tmp/eaccelerator"
    eaccelerator.enable="1"
    eaccelerator.optimizer="1"
    eaccelerator.check_mtime="1"
    eaccelerator.debug="0"
    eaccelerator.filter=""
    eaccelerator.shm_max="0"
    eaccelerator.shm_ttl="0"
    eaccelerator.shm_prune_period="0"
    eaccelerator.shm_only="0"
    eaccelerator.compress="1"
    eaccelerator.compress_level="9"
    然后
    # mkdir /tmp/eaccelerator // 建立目录
    # chmod 0777 /tmp/eaccelerator // 修改目录属性
    解释:
    zend_extension 是安装完程序自动指示给我们的文件路径和文件名
    如果您使用 thread safe 编译安装 PHP,则您必须使用 “zend_extension_ts” 代替 默认添加的“zend_extension”。我就必须修改这里,否则不起作用。
    zend_extension_ts="/home/php/lib/php/extensions/no-debug-zts-20060613/eaccelerator.so"
    实际上,安装好eAccelerator以后, /home/php/lib/php/extensions/下会生成2个目录,一个是no-debug-zts-xxxxxxxx,一个是no- debug-non-zts-xxxxxxxx,2个目录下都有eaccelerator.so文件。
    eaccelerator.shm_size="32"
    eAccelerator 可以使用的共享内存的数量 (以兆为单位) . "0" 是指操作系统的默认值. 默认值是 "0".可根据服务器的实际情况来调整,16,32,64,128都是可以的。
    eaccelerator.cache_dir="/home/php/tmp"
    这个目录是给磁盘缓存使用. eAccelerator 在这里储存预先编译好的代码, 进程数据, 内容以及用户的自定义内容. 同样的数据也能被储存在共享内存中 (这样可以提高访问速度). 默认的设置是 "/tmp/eaccelerator".
    eaccelerator.enable="1"
    开启或关闭 eAccelerator。”1″ 为开启,”0″ 为关闭。默认值为 “1″。
    eaccelerator.optimizer="1"
    启或关闭内部优化器,可以提升代码执行速度。”1″ 为开启,”0″ 为关闭。默认值为 “1″。
    eaccelerator.check_mtime="1"
    打开或者关闭 PHP 的文件修改检查. "1" 是指打开, "0" 是指关闭. 如果您在修改以后重新编译 PHP 的文件,那么您应当设置为 "1". 默认值是 "1".
    eaccelerator.debug="0"
    开启或关闭调试日志记录。”1″ 为开启,”0″ 为关闭。默认值为 “0″。
    eaccelerator.filter=""
    判断哪些 PHP 文件必须缓存。您可以指定缓存和不缓存的文件类型(如 “*.php *.phtml”等)
    如果参数以 “!” 开头,则匹配这些参数的文件被忽略缓存。默认值为 “”,即,所有 PHP 文件
    都将被缓存。
    eaccelerator.shm_max="0"
    当使用 ” eaccelerator_put() ” 函数时禁止其向共享内存中存储过大的文件。该参数指定允许
    存储的最大值,单位:字节 (10240, 10K, 1M)。”0″ 为不限制。默认值为 “0″。
    eaccelerator.shm_ttl="0"
    当 eAccelerator 获取新脚本的共享内存大小失败时,它将从共享内存中删除所有在
    最后 “shm_ttl” 秒内无法存取的脚本缓存。默认值为 “0″,即:不从共享内春中删除
    任何缓存文件。
    eaccelerator.shm_prune_period="0"
    当 eAccelerator 获取新脚本的共享内存大小失败时,他将试图从共享内存中删除早于
    “shm_prune_period” 秒的缓存脚本。默认值为 “0″,即:不从共享内春中删除
    任何缓存文件。
    eaccelerator.shm_only="0"
    允许或禁止将已编译脚本缓存在磁盘上。该选项对 session 数据和内容缓存无效。默认
    值为 “0″,即:使用磁盘和共享内存进行缓存。
    eaccelerator.compress="1"
    允许或禁止压缩内容缓存。默认值为 “1″,即:允许压缩。
    eaccelerator.compress_level="9"
    指定内容缓存的压缩等级。默认值为 “9″,为最高等级。
    最后重新启动apachectl
    重启apache,phpinfo显示:
    This program makes use of the Zend Scripting Language Engine:
    Zend Engine v2.2.0, Copyright (c) 1998-2006 Zend Technologies
    with eAccelerator v0.9.5.2, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
    with Zend Extension Manager v1.0.11, Copyright (c) 2003-2006, by Zend Technologies
    with Zend Optimizer v3.3.0, Copyright (c) 1998-2006, by Zend Technologies
    也会有eAccelerator的具体信息。

    14、安装Squid,提供web反向代理缓存
    Squid是一个更专业的代理服务器,性能和效率会比Apache的mod_proxy高很多。
    Squid Internet Object Cache (Harvest Project的后续版本) 是美国政府大力助的一项研究计划,其目的为解决网络带宽不足的问题,是现在Unix系统上使用者最多功能也最完整的一套软体。Apache和 Netscape虽附有相关的Proxy模块,但因其功能简单而不够普及。有关squid的详细说明可到squid网站(http: //www.squid-cache.org)查询。
    反向代理是和前两种代理完全不同的一种代理服务。使用它可以降低原始WEB服务器的负载。反向代理服务器承担了对原始WEB服务器的静态页面的请求,防止原始服务器过载。它位于本地WEB服务器和Internet之间,处理所有对WEB服务器的请求,组织了WEB服务器和Internet的直接通信。如果互联网用户请求的页面在代理服务器上有缓冲的话,代理服务器直接将缓冲内容发送给用户。如果没有缓冲则先向WEB服务器发出请求,取回数据,本地缓存后再发送给用户。这种方式通过降低了向WEB服务器的请求数从而降低了WEB服务器的负载。
    下载squid
    # wget http://www.squid-cache.org/Versions/...ABLE16.tar.bz2
    # tar jxvf squid-2.6.STABLE16.tar.bz2
    # cd squid-2.6.STABLE16
    # CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" ./configure --prefix=/usr/local/squid --enable-async-io=500 --with-maxfd=65536 --disable-delay-pools --disable-mem-gen-trace --disable-useragent-log --enable-kill-parent-hack --disable-arp-acl --enable-epoll --disable-ident-lookups --enable-snmp --enable-large-cache-files --with-large-files --with-pthreads --enable-underscore --enable-storeio="aufs,coss,diskd,ufs" --enable-err-language="Simplify_Chinese" --enable-default-err-languages="Simplify_Chinese"
    # make && make install
    如果是2.6的内核,才能支持epoll的IO模式,旧版本的内核则只能选择poll或其他模式了;另外,记得带上支持大文件的选项,否则在access log等文件达到2G的时候就会报错。
    设定 squid 的配置大概如下内容:
    # mv /usr/local/squid/etc/squid.conf /usr/local/squid/etc/squid.conf.bak
    # vi /usr/local/squid/etc/squid.conf
    #服务器IP 192.168.9.150
    #监听服务器的80端口,反向代理,支持域名和IP的虚拟主机
    http_port 192.168.9.150:80 vhost vport
    #防止天涯盗链,转嫁给百度
    acl tianya referer_regex -i tianya
    http_access deny tianya
    deny_info tianya
    #防止百度机器人爬死服务器,这将导致百度不能收录你的网站内容,请注意
    acl AntiBaidu req_header User-Agent Baiduspider
    http_access deny AntiBaidu
    #Squid信息设置
    visible_hostname www.cnprint.org
    cache_mgr admin@cnprint.org
    #squid使用的用户组和用户名
    cache_effective_user nobody
    cache_effective_group nobody
    tcp_recv_bufsize 65535 bytes
    client_persistent_connections off
    server_persistent_connections on
    half_closed_clients off
    #单台使用,不使用该功能
    icp_port 0
    #设置Squid所能使用的内存共40MB,这个值因人而异,每次处理缓存大小为40MB,当缓存空间使用达到95%时新的内容将取代旧的而不直接添加到目录中,直到空间又下降到90%才停止这一活动
    cache_mem 40 MB
    cache_swap_low 90
    cache_swap_high 95
    #最大缓存文件大小,超过这个值则不缓存,这个值因人而异,maximum_object_size_in_memory #装入内存缓存的文件大小,这个值对Squid的性能影响比较大,因为默认值是8K,超过8K的文件都不装入内存,而实际应用中很多网页和图片等都超过 8KB, 个人认为如果缓存不装入内存而存在磁盘上,性能和apache直接读取磁盘文件没什么区别,甚至不如直接访问apache,现在设置成小于4兆的文件通通装入内存缓存.
    maximum_object_size 4096 KB
    minimum_object_size 0 KB
    maximum_object_size_in_memory 4096 KB
    ipcache_size 1024
    ipcache_low 90
    ipcache_high 95
    cache_replacement_policy lru
    memory_replacement_policy lru
    #磁盘缓存的类型和目录,大小,一二级目录的设置,这里磁盘缓存大小是100MB,都是 16*256 级子目录
    cache_dir ufs /usr/local/squid/var/cache 100 16 256
    #这个设置是不记录store.log
    cache_store_log none
    #设置默认刷新规则
    refresh_pattern -i ^ftp: 1440 20% 10080
    refresh_pattern -i ^gopher: 1440 0% 1440
    refresh_pattern . 0 20% 4320
    #不要相信ETag 因为有gzip
    acl apache rep_header Server ^Apache
    broken_vary_encoding allow apache
    #设置超时策略
    forward_timeout 20 seconds
    connect_timeout 15 seconds
    read_timeout 3 minutes
    request_timeout 1 minutes
    persistent_request_timeout 15 seconds
    client_lifetime 15 minutes
    shutdown_lifetime 5 seconds
    negative_ttl 10 seconds
    #打开emulate_httpd_log选项,将使Squid仿照Aapche的日志格式
    emulate_httpd_log on
    #日志格式combined的设置
    logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %h" "%{User-Agent}>h" %Ss:%Sh
    #这里是设置pid和日志文件的位置,因人而异,同时日志格式是combined,awstats可以直接调用分析了
    pid_filename /usr/local/squid/var/squid.pid
    cache_log /usr/local/squid/var/logs/cache.log
    access_log /usr/local/squid/var/logs/access.log combined
    #设置不想缓存的目录或者文件类型
    acl all src 0.0.0.0/0.0.0.0
    acl QUERY urlpath_regex cgi-bin .php .cgi .avi .wmv .rm .ram .mpg .mpeg .zip .exe
    cache deny QUERY
    #2.6的反向代理加速配置
    #代理到本机的80端口的服务,仅仅做为原始内容服务器
    cache_peer 127.0.0.1 parent 80 0 no-query originserver login=PASS
    #错误文档
    error_directory /usr/local/squid/share/errors/Simplify_Chinese
    保存。
    mkdir /usr/local/squid/var/cache
    chown -R nobody:nobody /usr/local/squid/var/cache
    chown -R nobody:nobody /usr/local/squid/var/logs/
    chmod 777 /usr/local/squid/var/cache
    修改httpd.conf
    初始化和启动squid
    # /usr/local/squid/sbin/squid -z
    # /usr/local/squid/sbin/squid -NCd1
    第一条命令是先初始化squid缓存哈希子目录,只需执行一次即可。
    最好还编辑/etc/hosts 文件
    添加以下内容
    192.168.9.150 cnprint.org www cnprint.org
    这样免去查询DNS,速度也快一些。
    现在大家肯定急着要打开浏览器访问你的网站看看效果吧,其实没啥变化,要等到有流量访问,squid把文件都装到内存后,效果才明显。可以用top命令观察squid的内存使用情况或者用
    cat /usr/local/squid/var/logs/access.log |grep TCP_MEM_HIT
    如果看到很多的TCP_MEM_HIT ,这表明该文件是从内存缓存读取的,squid已经起作用了!你再用浏览器打开该文件,应该是快如闪电了。。呵呵,大功告成了!还有其他类型的HIT,如 TCP_HIT等等,这些是从磁盘读取的,我觉得加速的意义不大,只不过缓解了apache的压力而已。
    3. 启动squid:./bin/RunCache &
    这边我使用squid附带的启动脚本来启动squid,有个好处就是,如果squid的进程死了的话,这个脚本会自动启动squid,对于运行在线上的服务器来说,这点太重要了。
    开机自动运行squid
    修改开机自动运行文件,将 /usr/local/squid/bin/RunCache & 加进开机自动执行的程序中。
    因为第一次是以 root 身份启动,所以,/usr/local/squid/var/squid.out 及 /usr/local/squid/var/squid.pid 的拥有者是 root ,这会造成下列以 nobody 身份启动 squid 时,会有错误出现,所以,必须在第二次由 rc.local 启动前,先行将 squid.out 及 squid.pid 两个文件的所有者(owner)改为 nobody,即是
    chown nobody:nobody /usr/local/squid/var/squid.out
    chown nobody:nobody /usr/local/squid/var/logs/squid.pid
    在 /etc/rc.d/rc.local 中加入
    /usr/local/squid/bin/RunCache &

    15、memcache + libevent 安装
    memcached是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。最初为了加速 LiveJournal 访问速度而开发的,后来被很多大型的网站采用。起初作者编写它可能是为了提高动态网页应用,为了减轻数据库检索的压力,来做的这个缓存系统。它的缓存是一种分布式的,也就是可以允许不同主机上的多个用户同时访问这个缓存系统,这种方法不仅解决了共享内存只能是单机的弊端,同时也解决了数据库检索的压力,最大的优点是提高了访问获取数据的速度!基于memcached作者对分布式cache的理解和解决方案。 memcached完全可以用到其他地方比如分布式数据库,分布式计算等领域。
    Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。(关于Memcache的更多信息请Google)
    Memcache官方网站:http://www.danga.com/memcached
    服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.2.3。
    另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,libevent的最新版本是libevent-1.3e。(如果你的系统已经安装了libevent,可以不用安装)
    官网:http://www.monkey.org/~provos/libevent/
    (1)、安装memcached服务器端
    编译安装:
    # cd /usr/local/src
    # wget http://monkey.org/~provos/libevent-1.3e.tar.gz
    # tar zxvf libevent-1.3e.tar.gz
    # cd libevent-1.3e
    # CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" ./configure --prefix=/usr/local && make && make install
    # echo "/usr/local/lib" >> /etc/ld.so.conf && ldconfig
    # cd ../
    # wget http://www.danga.com/memcached/dist/...d-1.2.3.tar.gz
    # tar zxvf memcached-1.2.3.tar.gz
    # cd memcached-1.2.3
    # CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local
    # make && make install
    备注:如果 libevent 不是安装在 /usr 目录下,那么需要把 libevent-1.3e.so.1 拷贝/链接到 /usr/lib 中,否则 memcached 有可能无法正常加载。
    (2)、安装php对memcache支持模块
    安装php-memcache模块,这是memcache的php客户端,php-memcache需要pecl库的支持。
    # cd /usr/local/src
    # wget http://pecl.php.net/get/memcache-2.2.0.tgz
    # tar zxvf memcache-2.2.0.tgz
    #cd memcache-2.2.0
    #export PHP_PREFIX=/usr/local/php
    #$PHP_PREFIX/bin/phpize
    #CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" ./configure --enable-memcache --with-zlib-dir --with-php-config=$PHP_PREFIX/bin/php-config
    #make && make install
    修改php.ini
    在最末尾增加一行:
    extension="/usr/local/php/lib/php/extensions/no-debug-zts-20060613/memcache.so"
    运行以下命令来启动 memcached:
    #/usr/local/memcached/bin/memcached \
    -l 192.168.9.139 -d -p 11211 -u nobody -m 128
    表示用 daemon 的方式启动 memcached,监听在 192.168.9.19 的 11211 端口上,运行用户为 nobody,为其分配 128MB 的内存。
    这时查看一下进程,看memcached启动成功没有。
    top -U nobody
    可以看到
    5867 nobody 15 0 2352 684 276 S 0.0 0.1 0:00.00 memcached
    说明 memcached安装成功,并正在运行。
    设置成开机自动运行
    在 /etc/rc.d/rc.local 中加入
    /usr/local/memcached/bin/memcached -l 192.168.9.150 -d -p 11211 -u nobody -m 128

    四、附加功能配置, 包括ssl, mysqlhotcopy, phpmyadmin

    15、安装DBI和DBD for mysql

    //用于提供perl访问mysql数据库的接口规范,请确认你已经安装了perl,一般默认系统都装上了。
    因为我们要用到mysqlhotcopy功能,需要这两个小程序的支持。
    # wget http://mirrors.xueron.com/CPAN/autho...I-1.601.tar.gz
    首先,安装DBI包:
    # tar zxvf DBI-1.061.tar.gz
    # cd DBI-1.061
    # perl Makefile.PL
    # make
    # make test
    # make install

    wget http://search.cpan.org/CPAN/authors/...l-4.005.tar.gz
    # tar zxvf DBD-mysql-4.005.tar.gz
    # cp /usr/local/mysql/lib/mysql/libmysqlclient.so.15 /usr/lib/
    # perl Makefile.PL --libs="-L/usr/local/mysql/lib/mysql -lmysqlclient -L/usr/lib -lz " --cflags=-I/usr/local/mysql/include/mysql --mysql_config=/usr/local/mysql/bin/mysql_config --testhost=127.0.0.1--testsocket=/tmp/mysql.sock --testdb=test --testuser=root --testpassword="youpassword"
    # make
    # make test
    # make instll
    测试执行 mysqlhotcopy ?出?如下类似???息
    #/usr/local/mysql/bin/mysqlhotcopy mysql /tmp/test -u root -p 'password'
    Invalid db.table name 'mysql.mysql`.`activity' at /usr/local/bin/mysqlhotcopy line 855.
    Ans:
    找到了 [MySQL Bugs: #27303: mysqlhotcopy dies with error Invalid db.table name 'foo.bar`.`baz'] 说明将 mysqlhotcopy 文件修改一下后即可顺利执行 mysqlhotcopy 了
    #vi /usr/local/mysql/bin/mysqlhotcopy //在第 835 下新增一行
    835 my @dbh_tables = eval { $dbh->tables() };
    836 map { s/^.*?\.//o } @dbh_tables; //加入此行
    mysql 5.0.50后已经修正这个错误。

    16、配置https
    vi /usr/local/apache2/conf/httpd.conf
    # 监听443端口,支持https连接
    取消注释 httpd.conf 中的 Include conf/extra/httpd-ssl.conf
    设置SSL并创建自己的CA
    # cd /etc/pki/tls/misc
    # ./CA -newca
    屏幕上出现如下的提示:CA certificate filename (or enter to create)
    这是要求输入要创建的CA的证书文件名, 可以直接回车或输入证书文件名。
    Making CA certificate ...
    Generating a 1024 bit RSA private key
    .........++++++
    ................................++++++
    writing new private key to './demoCA/private/./cakey.pem'
    Enter PEM pass phrase:
    Verifying password - Enter PEM pass phrase:-
    此时要求输入和验证CA的私钥口令、国家代码(中国是CN)、省份、城市或地区、组织或企业名称、部门名称、CA的名称或服务器的主机名称、管理员电子邮件地址。
    至此,在当前目录下生成了demoCA的目录,CA的证书就在该目录下,文件名为cacert.pem
    生成服务器的证书请求
    # ./CA -newreq
    屏幕上出现如下的提示:
    Generating a 1024 bit RSA private key
    .....................................................++++++
    .....++++++
    writing new private key to 'newreq.pem'
    Enter PEM pass phrase:
    Verifying password - Enter PEM pass phrase:
    此时要求输入和验证服务器的私钥口令、国家代码(中国是CN)、省份、城市或地区、组织或企业名称、部门名称、CA的名称或服务器的主机名称、管理员电子邮件地址。
    Please enter the following 'extra' attributes
    to be sent with your certificaterequest
    A challenge password []:
    An optional company name []:
    .Request (and private key) is in newreq.pem
    这是要求输入服务器的相关信息。
    此时,在当前目录下生成了一个名为newreq.pem的文件,包含了要生成服务器数字证书的请求。
    签署证书
    # ./CA -sign
    屏幕上出现如下的提示:
    Using configuration from /usr/share/ssl/openssl.cnf
    Enter PEM pass phrase:
    此时一样需要输入CA的私钥口令、国家代码(中国是CN)、省份、城市或地区、组织或企业名称、部门名称、CA的名称或服务器的主机名称、管理员电子邮件地址。
    Certificate is to be certified until Nov 19 13:46:19 2002 GMT (365 days)
    Sign the certificate? [y/n]:y
    这时显示证书请求文件中的各项信息,并询问是否要签署证书,回答y,进行签署。
    1 out of 1 certificate requests certified, commit? [y/n]y
    回答y,会显示已经签署的证书的信息,并在当前目录下生成服务器的证书文件newcert.pem。
    # mkdir /usr/local/apache2/conf/ssl.crt/
    # mkdir /usr/local/apache2/conf/ssl.key/
    # cp newcert.pem /usr/local/apache2/conf/ssl.crt/server.pem
    # cp newreq.pem /usr/local/apache2/conf/ssl.key/server.pem
    更改服务器的证书文件的相关配置
    # vi /usr/local/apache2/conf/extra/httpd-ssl.conf
    查找并修改
    # Server Certificate:
    # Point SSLCertificateFile at a PEM encoded certificate. If
    # the certificate is encrypted, then you will be prompted for a
    # pass phrase. Note that a kill -HUP will prompt again. Keep
    # in mind that if you have both an RSA and a DSA certificate you
    # can configure both in parallel (to also allow the use of DSA
    # ciphers, etc.)
    SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.pem
    #SSLCertificateFile /usr/local/apache2/conf/server-dsa.crt
    # Server Private Key:
    # If the key is not combined with the certificate, use this
    # directive to point at the key file. Keep in mind that if
    # you've both a RSA and a DSA private key you can configure
    # both in parallel (to also allow the use of DSA ciphers, etc.)
    SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.pem
    #SSLCertificateKeyFile /usr/local/apache2/conf/server-dsa.key
    示例文件
    在SSL的根目录中生成一个index.html,它是如下所示:
    <html>
    这是SSL示例!
    </html>
    测试
    假如Web服务器的DNS名称是www.cnprint.org.
    在浏览器的URL地址栏里输入 http://www.cnprint.org/,浏览器便会显示APACHE安装时确省的Test Page.
    在浏览器的URL地址栏里输入 https://www.cnprint.org/,注意:是 https 而不是http !
    浏览器会提示站点已经采用了SSL进行数据的加密传输.由于我们的CA证书不是浏览器缺省的信任的根证书,所以,浏览器会说无法确认服务器的证书可信。暂时不管,一直NEXT,最后,浏览器会显示:这是SSL示例!
    可以把CA的证书放在非SSL的站点上,让浏览器下载并安装CA证书,并将其设置成可信任的根证书,便可解决上面的问题.8 解除HTTPD起动时的口令输入。
    由于安全的原因,Web服务器的私钥是口令加密了的,每次重新起动HTTPD或Linux时,都会要求输入Web服务器的私钥的口令。
    如果要解除HTTPD起动时的口令输入,可以这样:
    # cd /usr/local/apache2/conf/ssl.key/
    # cp server.pem server.pem.org
    # openssl rsa -in server.pem.org -out server.pem
    # chmod 400 server.pem
    另外在网上看到一个方法,我没有试。有兴趣的可以试下。
    创建SSL密码自动应答文件,否则每次Apache启动的时候,都会要求你输入SSL的密码.
    创建 /usr/local/apache2/conf/ssl.key/sendsslpwd ,内容如下.
    #!/bin/bash
    SSLpasswd="YOUR PASSPHRASE"
    echo $SSLpasswd
    chmod 755 /usr/local/apache2/conf/ssl.key/sendsslpwd
    此时,Web服务器的私钥已经没有口令加密,一定要确保server.pem文件除root外,任何用户均无权读取它。

    17、安装phpmyadmin,管理mysql数据库
    # cd /usr/local/apache2/htdocs/
    # wget http://nchc.dl.sourceforge.net/sourc...-8-only.tar.gz
    # tar zxvf phpMyAdmin-2.11.1-all-languages-utf-8-only.tar.gz
    # mv phpMyAdmin-2.11.1-all-languages-utf-8-only phpmyadmin
    # cd phpmyadmin/libraries
    修改配置文件
    # vi config.default.php
    找到这几行进行修改:
    $cfg['Servers'][$i]['auth_type'] = 'http'; // Authentication method (valid choices: config, http, HTTP, signon or cookie)
    $cfg['Servers'][$i]['user'] = 'root'; // MySQL user
    $cfg['Servers'][$i]['password'] = 'PASSWORD'; // MySQL password (only needed

    五、服务器安全配置

    18、编译安装mod_security
    mod_security是一个集入侵检测和防御引擎功能的开源web应用安全程序(或web应用程序防火墙)。
    它以Apache Web服务器的模块方式运行, 目标是增强web应用程序的安全性, 防止web应用程序受到已知或未知的攻击。
    # cd /usr/local/src
    # wget http://www.modsecurity.org/download/...e_2.1.3.tar.gz
    # tar -zxvf modsecurity-apache_2.1.3.tar.gz
    # cd modsecurity-apache_2.1.3/apache2
    # cat /usr/local/apache2/conf/httpd.conf | grep "ServerRoot" | grep -v "#"
    ServerRoot "/usr/local/apache2"
    #
    #vi Makefile
    top_dir = /usr/local/apache2
    #
    # make
    # make install
    vi /usr/local/apache2/conf/httpd.conf
    加载下列模块
    LoadModule unique_id_module modules/mod_unique_id.so
    LoadModule security2_module modules/mod_security2.so
    添加一行:
    Include conf/modsecurity/*.conf
    保存。
    cd /usr/local/src/modsecurity-apache_2.1.3/rules
    # mkdir /usr/local/apache2/conf/modsecurity
    # cp *.conf /usr/local/apache2/conf/modsecurity/
    根据你的需要,You may want to edit and customize modsecurity_crs_10_config.conf.
    Additionally you may want to edit modsecurity_crs_30_http_policy.conf which enforces an application specific HTTP protocol usage.
    重启apache

    19、Iptables规则
    vi /usr/local/sbin/fw.sh
    将以下脚本命令粘贴到 fw.sh 文件中。

    #!/bin/bash
    # Stop iptables service first
    service iptables stop
    # Load FTP Kernel modules
    /sbin/modprobe ip_conntrack_ftp
    /sbin/modprobe ip_nat_ftp
    # Inital chains default policy
    /sbin/iptables -F -t filter
    /sbin/iptables -P INPUT DROP
    /sbin/iptables -P OUTPUT ACCEPT
    # Enable Native Network Transfer
    /sbin/iptables -A INPUT -i lo -j ACCEPT
    # Accept Established Connections
    /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    # ICMP Control
    /sbin/iptables -A INPUT -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
    # WWW Service
    /sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    # FTP Service
    /sbin/iptables -A INPUT -p tcp --dport 2121 -j ACCEPT
    # SSH Service
    /sbin/iptables -A INPUT -p tcp --dport 59825 -j ACCEPT
    # Anti DDOS
    /sbin/iptables -I INPUT -p tcp --syn -m ttl --ttl-eq 117 -j DROP
    /sbin/iptables -I INPUT -p tcp --syn -m length --length :40 -j DROP

    # chmod 755 /usr/local/sbin/fw.sh
    # echo '/usr/local/sbin/fw.sh' >> /etc/rc.d/rc.local
    # /usr/local/sbin/fw.sh

    20、apachet和 php 优化设置
    对于访问量稍大的站点,Apache的这些默认配置是无法满足需求的,我们仍需调整Apache的一些参数,使Apache能够在大访问量环境下发挥出更好的性能。以下我们对Apache配置文件httpd.conf中对性能影响较大的参数进行一些说明。
    (1) Timeout 该参数指定Apache在接收请求或发送所请求内容之前的最长等待时间(秒),若超过该时间Apache则放弃处理该请求,并释放连接。该参数默认值为120,推荐设置为60,对于访问量较大的网站可以设置为30。
    (2) KeepAlive 该参数控制Apache是否允许在一个连接中有多个请求,默认打开。但对于大多数论坛类型站点来说,通常设置为off以关闭该支持。
    (3) MPM - prefork.c 在默认情况下Apache使用Prefork(进程)工作模式,可以说这部分的参数设置是对Apache性能影响的核心和关键。
    查看你的apache运行的模式:
    # /usr/local/apache2/bin/httpd -l
    Compiled in modules:
    core.c
    prefork.c
    http_core.c
    mod_so.c
    然后用户可以在配置文档中找到以下配置段:

    StartServers 5
    MinSpareServers 5
    MaxSpareServers 10
    MaxClients 15
    MaxRequestsPerChild 0

    这就是控制Apache进程工作的配置段,为了更好的理解上述配置中的各项参数,下面让我们先了解一下Apache是如何控制进程工作的。我们知道,在 Unix系统中,很多服务(Service)的守护进程(Daemon)在启动时会创建一个进程以准备应答可能的连接请求,服务即进入了端口监听状态,当一个来自客户端(Client)的请求被发送至服务所监听的端口时,该服务进程即会处理该请求,在处理过程中,该进程处于独占状态,也就是说如果此时有其他请求到达,这些请求只能“排队”等待当前请求处理完成且服务进程释放。这样就会导致越来越多的请求处于队列等待状态,实际表现就是该服务处理能力非常低下。Apache使用Prefork模式很好的解决了这一问题。下面我们来看看Apache实际上是如何高效率工作的。
    当Apache启动时,Apache会启动StartSpareServers个空闲进程同时准备接收处理请求,当多个请求到来时, StarSpareServers进行会越来越少,当空闲进程减少到MinSpareServers个时,Apache为了能够继续有充裕的进程处理请求,它会再启动StartsServers个进程备用,这样就大大减少了请求队列等待的可能,使得服务效率提高,这也是为什么叫做Pre-fork的原因;让我们继续跟踪Apache的工作,我们假设Apache已经启动了200个进程来处理请求,理论上来说,此时Apache一共有205个进程,而过了一段时间,假设有100个请求都得到了Apache的响应和处理,那么此时这100个进程就被释放成为空闲进程,那么此时Apache有105个空闲进程。而对于服务而言,启动太多的空闲进程时没有任何意义的,反而会降低服务器的整体性能,那么Apache真的会有105个空闲进程么?当然不会!实际上 Apache随时在检查自己,当发现有超过MaxSpareServers个空闲进程时,则会自动停止关闭一些进程,以保证空闲进程不过过多。说到这里,用户应该对Apache的工作方式有了一定的了解,如果想获得更多更详细的说明请参阅Apache手册文档。
    我们还有两个参数没有介绍:MaxClients和MaxRequestPerchild;MaxClients指定Apache在同一时间内最多允许有多少客户端能够与其连接,如果超过MaxClients个连接,客户端将会得到一个“服务器繁忙”的错误页面。我们看到默认情况下MaxClients设置为15,这对一些中型站点和大型站点显然是远远不够的!也许您需要同时允许512个客户端连接才能满足应用需求,好吧,那么就让我们把 MaxClients修改为512,保存httpd.conf并退出,重启Apache,很遗憾,在重启过程当中您看到了一些错误提示,Apache重启失败。错误提示中告诉您MaxClients最大只能设定为256,相信您一定很失望。不过不要沮丧,Apache作为世界一流的Web Server一定不会如此单薄的!在默认情况下,MaxClients的确只能设定为不超过256的整数,但是,如果您有需要完全可以随意定制,此时就需要使用ServerLimit参数来配合使用,简单的说ServerLimit就像是水桶,而MaxClients就像是水,您可以通过更换更大的水桶(将ServerLimit设定为一个较大值)来容纳更多的水(MaxClients),但要注意,MaxClients的设定数值是不能大于 ServerLimit的设定数值的!
    下面让我们了解一下MaxRequestPerChild参数,该参数指定一个连接进程中可以有多少个线程同时工作。也许这样解释过于专业,那么您只要想想“网络蚂蚁”、“网际快车FlashGet”中的“多点同时下载”即可,该参数实际上就是限制最多可以用几个“点”。默认设置为0,即为:不限制。但需要注意,如果将该值设置的过小会引起访问问题,如果没有特殊需要或者访问量压力并非很大可以保持默认值,如果访问量很大则推荐设置为2048。
    好了,解释了这么多,让我们看看经过修改后Perfork.c配置段的推荐配置:

    StartServers 5
    MinSpareServers 5
    MaxSpareServers 10
    ServerLimit 1024
    MaxClients 768
    MaxRequestsPerChild 0

    完成了上述对Apache的调整,Apache已经获得了较大的性能改善。记住,在修改任何参数后都需要重启Apache才能生效的。有关Apache的优化远远不止这些,有兴趣的用户可以阅读Apache手册文档或者寻找一些文献资料学习。
    2. PHP优化对于PHP的优化主要是对php.ini中的相关主要参数进行合理调整和设置,以下我们就来看看php.ini中的一些对性能影响较大的参数应该如何设置。
    # vi /etc/php.ini
    (1) PHP函数禁用找到:
    disable_functions =
    该选项可以设置哪些PHP函数是禁止使用的,PHP中有一些函数的风险性还是相当大的,可以直接执行一些系统级脚本命令,如果允许这些函数执行,当PHP程序出现漏洞时,损失是非常严重的!以下我们给出推荐的禁用函数设置:
    disable_functions = phpinfo,passthru,exec,system,popen,chroot,escapeshellcmd,escapeshellarg,shell_exec,proc_open,proc_get_status
    需注意:如果您的服务器中含有一些系统状态检测的PHP程序,则不要禁用shell_exec,proc_open,proc_get_status等函数。
    (2) PHP脚本执行时间找到:
    max_execution_time = 30
    该选项设定PHP程序的最大执行时间,如果一个PHP脚本被请求,且该PHP脚本在max_execution_time时间内没能执行完毕,则PHP不再继续执行,直接给客户端返回超时错误。没有特殊需要该选项可保持默认设置30秒,如果您的PHP脚本确实需要长执行时间则可以适当增大该时间设置。
    (3) PHP脚本处理内存占用找到:
    memory_limit = 8M
    该选项指定PHP脚本处理所能占用的最大内存,默认为8MB,如果您的服务器内存为1GB以上,则该选项可以设置为12MB以获得更快的PHP脚本处理效率。
    (4) PHP全局函数声明找到:
    register_globals = Off
    网络上很多关于PHP设置的文章都推荐将该选项设置为On,其实这是一种及其危险的设置方法,很可能引起严重的安全性问题。如果没有特殊的需要,强烈推荐保留默认设置!
    (5) PHP上传文件大小限制找到:
    upload_max_filesize = 2M
    该选项设定PHP所能允许最大上传文件大小,默认为2MB。根据实际应用需求,可以适当增大该设置。
    (6) Session存储介质找到:
    session.save_path
    如果你的PHP程序使用Session对话,则可以将Session存储位置设置为/dev/shm,/dev/shm是Linux系统独有的TMPFS 文件系统,是以内存为主要存储方式的文件系统,比RAMDISK更优秀,因为可以使用DISKSWAP作为补充,而且是系统自带的功能模块,不需要另行配置。想想看,从磁盘IO操作到内存操作,速度会快多少?只是需要注意,存储在/dev/shm的数据,在服务器重启后会全部丢失。不过这对于 Session来说是无足轻重的
    (7)找到short_open_tag = Off
    修改成short_open_tag = On,一些国内的php程序不标准,关闭可能会出错。

    21、mysql优化及安全设置
    Mysql的优化设置
    打开/etc/my.cnf文件,修改以下设置,如果没有,可手动添加。调整设置时,请量力而行,这与你的服务器的配置有关,特别是内存大小。以下设置比较适合于1G内存的服务器,但并不绝对。
    #指定索引缓冲区的大小,它决定索引处理的速度,尤其是索引读的速度。通过检查状态值Key_read_requests和Key_reads,可以知道 key_buffer_size设置是否合理。比例key_reads / key_read_requests应该尽可能的低,至少是1:100,1:1000更好(上述状态值可以使用show status like 'key_reads'获得)。key_buffer_size只对MyISAM表起作用。即使你不使用MyISAM表,但是内部的临时磁盘表是 MyISAM表,也要使用该值。可以使用检查状态值created_tmp_disk_tables得知详情。
    key_buffer = 384M
    #要求MySQL能有的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用,然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。只有如果期望在一个短时间内有很多连接,你需要增加它,换句话说,这值对到来的TCP/IP连接的侦听队列的大小。你的操作系统在这个队列大小上有它自己的限制。试图设定back_log高于你的操作系统的限制将是无效的。默认数值是50
    back_log = 200
    #一个包的最大尺寸。消息缓冲区被初始化为net_buffer_length字节,但是可在需要时增加到max_allowed_packet个字节。缺省地,该值太小必能捕捉大的(可能错误)包。如果你正在使用大的BLOB列,你必须增加该值。它应该象你想要使用的最大BLOB的那么大。
    max_allowed_packet = 4M
    #允许的同时客户的数量。增加该值增加 mysqld要求的文件描述符的数量。这个数字应该增加,否则,你将经常看到 Too many connections 错误。 默认数值是100
    max_connections = 1024
    #指定表高速缓存的大小。每当MySQL访问一个表时,如果在表缓冲区中还有空间,该表就被打开并放入其中,这样可以更快地访问表内容。通过检查峰值时间的状态值Open_tables和Opened_tables,可以决定是否需要增加table_cache的值。如果你发现open_tables等于 table_cache,并且opened_tables在不断增长,那么你就需要增加table_cache的值了(上述状态值可以使用show status like 'Open_tables'获得)。注意,不能盲目地把table_cache设置成很大的值。如果设置得太高,可能会造成文件描述符不足,从而造成性能不稳定或者连接失败。
    table_cache = 512
    #每个线程排序所需的缓冲
    sort_buffer_size = 4M
    #当一个查询不断地扫描某一个表,MySQL会为它分配一段内存缓冲区。read_buffer_size变量控制这一缓冲区的大小。如果你认为连续扫描进行得太慢,可以通过增加该变量值以及内存缓冲区大小提高其性能。
    read_buffer_size = 4M
    #加速排序操作后的读数据,提高读分类行的速度。如果正对远远大于可用内存的表执行GROUP BY或ORDER BY操作,应增加read_rnd_buffer_size的值以加速排序操作后面的行读取。仍然不明白这个选项的用处……
    read_rnd_buffer_size = 8M
    #用于REPAIR TABLE。不明白这个选项的用处,百度上找到的设置方向也是五花八门,有128M、64M、32M等,折中选一个。
    myisam_sort_buffer_size = 64M
    #可以复用的保存在中的线程的数量。如果有,新的线程从缓存中取得,当断开连接的时候如果有空间,客户的线置在缓存中。如果有很多新的线程,为了提高性能可以这个变量值。通过比较 Connections 和 Threads_created 状态的变量,可以看到这个变量的作用。
    thread_cache_size = 128
    #查询结果缓存。第一次执行某条SELECT语句的时候,服务器记住该查询的文本内容和它返回的结果。服务器下一次碰到这个语句的时候,它不会再次执行该语句。作为代替,它直接从查询缓存中的得到结果并把结果返回给客户端。
    query_cache_size = 32M
    #最大并发线程数,cpu数量*2
    thread_concurrency = 2
    #设置超时时间,能避免长连接
    wait_timeout = 120
    #关闭不需要的表类型,如果你需要,就不要加上这个
    skip-innodb
    skip-bdb
    关于mysql的优化设置及检查,这篇文章很值得一看 http://tech.itdb.cn/n/200607/27/n20060727_30398.shtml
    Mysql的安全设置
    打开/etc/my.cnf文件,修改以下设置,如果没有,可手动添加。
    #取消文件系统的外部锁
    skip-locking
    #不进行域名反解析,注意由此带来的权限/授权问题
    skip-name-resolve
    #禁止MySQL中用“LOAD DATA LOCAL INFILE”命令。这个命令会利用MySQL把本地文件读到数据库中,然后用户就可以非法获取敏感信息了。网络上流传的一些攻击方法中就有用它的,它也是很多新发现的SQL Injection攻击利用的手段!
    local-infile = 0
    #关闭远程连接,即3306端口。这是MySQL的默认监听端口。由于此处MySQL只服务于本地脚本,所以不需要远程连接。尽管MySQL内建的安全机制很严格,但监听一个TCP端口仍然是危险的行为,因为如果MySQL程序本身有问题,那么未授权的访问完全可以绕过MySQL的内建安全机制。(你必须确定,你是否真的不需要远程连接mysql)
    skip-networking
    修改完my.cnf后,还需要对mysql的用户名、帐号、及默认数据库进行调整
    首先先登录mysql,在终端窗口输入 /usr/local/mysql/bin/mysql -u root -p
    然后会提示输入密码,输入正确密码后,会出现mysql>提示符。
    输入以下命令:
    mysql>use mysql;
    mysql>update user set user="centos" where user="root"; (将mysql的root用户名修改成centos,防止root的密码被暴力破解)
    mysql>select Host,User,Password,Select_priv,Grant_priv from user;
    mysql>delete from user where user=''; (删除user用户)
    mysql>delete from user where password=''; (删除user用户)
    mysql>delete from user where host=''; (删除user用户)
    mysql>drop database test; (删除默认的test数据库)
    mysql>flush privileges; (刷新mysql的缓存,让以上设置立即生效)
    mysql>quit;
    为了使以上优化和安全设置生效,请重启Mysql服务或Linux。
    关于Mysql的安全设置,这篇文章很值得一看
    http://www.unixren.com/linux/bencandy.php?fid=21&id=459

    22、操作系统安全调整
    1、 CentOS或Red Had Enterprise Linux 4 的用户要首先要打开SElinux,方法是修改/etc/selinux/config文件中的SELINUX="" 为enforcing 。它可以保证你的系统不会非正常的崩溃。有些人认为应该关闭,我强烈不推荐,当然只是将centos用来玩玩,不是用于实际服务器则无所谓了。
    2、启用iptables 防火墙,对增加系统安全有许多好处。设置好防火墙的规则。
    3、执行setup 关闭那些不需要的服务 ,记住少开一个服务,就少一个危险。
    4、禁止Control-Alt-Delete 键盘关闭命令
    在"/etc/inittab" 文件中注释掉下面这行(使用#):
    ca::ctrlaltdel:/sbin/shutdown -t3 -r now 
    改为:
    #ca::ctrlaltdel:/sbin/shutdown -t3 -r now 
    为了使这项改动起作用,输入下面这个命令:
    # /sbin/init q
    5、给"/etc/rc.d/init.d" 下script文件设置权限
    给执行或关闭启动时执行的程序的script文件设置权限。
    # chmod -R 700 /etc/rc.d/init.d/* 
    这表示只有root才允许读、写、执行该目录下的script文件。
    6、修改"/etc/host.conf"文件
    "/etc/host.conf"说明了如何解析地址。编辑"/etc/host.conf"文件(vi /etc/host.conf),加入下面这行:
    # Lookup names via DNS first then fall back to /etc/hosts. 
    order bind,hosts 
    # We have machines with multiple IP addresses. 
    multi on 
    # Check for IP address spoofing. 
    nospoof on 
    第一项设置首先通过DNS解析IP地址,然后通过hosts文件解析。第二项设置检测是否"/etc/hosts"文件中的主机是否拥有多个IP地址(比如有多个以太口网卡)。第三项设置说明要注意对本机未经许可的电子欺骗。
    7、使"/etc/services"文件免疫
    使"/etc/services"文件免疫,防止未经许可的删除或添加服务:
    # chattr +i /etc/services
    8.阻止你的系统响应任何从外部/内部来的ping请求。
    既然没有人能ping通你的机器并收到响应,你可以大大增强你的站点的安全性。你可以加下面的一行命令到/etc/rc.d/rc.local,以使每次启动后自动运行。
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    9、对你的系统上所有的用户设置资源限制可以防止DoS类型攻击(denial of service attacks)
    如最大进程数,内存数量等。例如,对所有用户的限制象下面这样:
    vi /etc/security/limits.conf
    下面的代码示例中,所有用户每个会话都限制在 10 MB,并允许同时有四个登录。第三行禁用了每个人的内核转储。第四行除去了用户 bin 的所有限制。ftp 允许有 10 个并发会话(对匿名 ftp 帐号尤其实用);managers 组的成员的进程数目限制为 40 个。developers 有 64 MB 的 memlock 限制,wwwusers 的成员不能创建大于 50 MB 的文件。
    清单 3. 设置配额和限制
    * hard rss 10000
    * hard maxlogins 4
    * hard core 0
    bin -
    ftp hard maxlogins 10
    @managers hard nproc 40
    @developers hard memlock 64000
    @wwwusers hard fsize 50000
    要激活这些限制,您需要在 /etc/pam.d/login 底部添加下面一行: session required /lib/security/pam_limits.so。
    10、注释掉不需要的用户和用户组。
    vipw
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    news:x:9:13:news:/etc/news:
    uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    games:x:12:100:games:/usr/games:/sbin/nologin
    gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    nobody:x:99:99:Nobody:/:/sbin/nologin
    dbus:x:81:81:System message bus:/:/sbin/nologin
    vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
    rpm:x:37:37::/var/lib/rpm:/sbin/nologin
    haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
    netdump:x:34:34:Network Crash Dump user:/var/crash:/bin/bash
    nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
    sshd:x:74:74:Privilerpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
    rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
    nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
    mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
    smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
    pcap:x:77:77::/var/arpwatch:/sbin/nologin
    xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin
    ntp:x:38:38::/etc/ntp:/sbin/nologin
    gdm:x:42:42::/var/gdm:/sbin/nologin
    pegasus:x:66:65:tog-pegasus OpenPegasus WBEM/CIM services:/var/lib/Pegasus:/sbin/nologin
    htt:x:100:101:IIIMF Htt:/usr/lib/im:/sbin/nologin
    wangjing:x:500:500::/home/wangjing:/bin/bash
    mysql:x:101:102:MySQL server:/var/lib/mysql:/bin/bash
    apache:x:48:48:Apache:/var/www:/sbin/nologin
    ge-separated SSH:/var/empty/sshd:/sbin/nologin
    对于不需要的用户全部加 # 注释掉。注意,我不建议直接删除,当你某种原因需要某个用户时,自己重新会很麻烦。
    vi /etc/group
    root:x:0:root
    bin:x:1:root,bin,daemon
    daemon:x:2:root,bin,daemon
    sys:x:3:root,bin,adm
    adm:x:4:root,adm,daemon
    tty:x:5:
    disk:x:6:root
    lp:x:7:daemon,lp
    mem:x:8:
    kmem:x:9:
    wheel:x:10:root
    mail:x:12:mail
    news:x:13:news
    uucp:x:14:uucp
    man:x:15:
    games:x:20:
    gopher:x:30:
    dip:x:40:
    ftp:x:50:
    lock:x:54:
    nobody:x:99:
    users:x:100:
    dbus:x:81:
    floppy:x:19:
    vcsa:x:69:
    rpm:x:37:
    haldaemon:x:68:
    utmp:x:22:
    netdump:x:34:
    nscd:x:28:
    slocate:x:21:
    sshd:x:74:
    rpc:x:32:
    rpcuser:x:29:
    nfsnobody:x:65534:
    mailnull:x:47:
    smmsp:x:51:
    pcap:x:77:
    xfs:x:43:
    ntp:x:38:
    gdm:x:42:
    pegasus:x:65:
    htt:x:101:
    wangjing:x:500:
    mysql:x:102:
    apache:x:48:
    对于不需要的用户组全部加 # 注释掉。注意,我不建议直接删除,当你某种原因需要某个用户组时,自己重新会很麻烦。
    11、用chattr命令给下面的文件加上不可更改属性。
    # chattr +i /etc/passwd
    # chattr +i /etc/shadow
    # chattr +i /etc/group
    # chattr +i /etc/gshadow
    注意执行这个操作后,以root身份都不能向系统增加用户或者修改密码了。如果我们要增加用户或者修改密码的。应该先用chattr -i /etc/passwd等命令解除不可写设置,再进行操作。
    12、修改sshd的端口。
    修改/etc/ssh/sshd_config,将里面的 Port 改为 59825,(具体的端口你随意。当然不能和其他程序的端口冲突了)。并注释掉前面的#号,然后
    pkill sshd
    service sshd start
    就行了
    注意最好在本地修改这个端口,否则容易出现把自己锁在外面的情况。修改了本处端口后,还要注意修改防火墙的ssh端口。
    13、 内核参数调整
    vi /etc/sysctl.conf
    net.ipv4.conf.default.accept_source_route=0
    net.ipv4.icmp_echo_ignore_broadcasts=1
    #net.ipv4.icmp_echo_ignore_all=1
    net.ipv4.icmp_ignore_bogus_error_responses=1
    net.ipv4.ip_conntrack_max=65535
    net.ipv4.tcp_syn_retries=1
    net.ipv4.tcp_fin_timeout=5
    net.ipv4.tcp_synack_retries=1
    net.ipv4.tcp_syncookies=1
    net.ipv4.route.gc_timeout=100
    net.ipv4.tcp_keepalive_time=500
    net.ipv4.tcp_max_syn_backlog=10000
    # sysctl -p //查看
    14、经常检查系统日志。系统日志主要位于/var/log/目录下。防患于未然。
    通过以上设置你的系统一般来说就比较安全了。当然安全与不安全是道与魔的斗争。
    经过这几个步骤,我们一个比较安全的LAMP服务器就环境基本建立成功啦。感觉上也不是很难,是吧?

    六、日常常用的管理功能
    # cd /usr/local/src
    # wget ftp://ftp.ncftp.com/ncftp/ncftp-3.2.1-src.tar.gz
    # tar zxvf ncftp-3.2.1-src.tar.gz
    # cd ncftp-3.2.1-src
    # ./configure --prefix=/usr/local/ncftp
    # make && make install

    23、mysql数据库自动备份并上传到服务器
    服务器数据的备份
    1、数据备份
    为了防止意外情况的发生造成数据的丢失,关键数据或整个系统或对有选择的系统部分,在本地和异地进行定时备份,以保证系统全部或部分在灾害出现时也能持续运行。
    2、具体方案
    1)、数据库每日备份
    每天4:00,将Cnprintbbs数据库拷贝至/root/back后进行压缩,然后上传至192.168.1.9服务器上,/root/back留有压缩版本。
    运行脚本/root/scripts/back.sh
    例子:
    #!/bin/bash
    rm /root/back/Cnprintbbs/* -rf
    /usr/local/mysql/bin/mysqlhotcopy Cnprintbbs /root/back/Cnprintbbs -u root -p uefer77693
    sleep 5
    cd /root/back
    tar zcf `hostname`-Cnprintbbs`date +%Y%m%d`.tar.gz Cnprintbbs
    sleep 5
    echo "tar ok!"
    /usr/local/ncftp/bin/ncftpput -u gamebak -p gamebak@root 192.168.1.9 / /root/back/`hostname`-Cnprintbbs`date +%Y%m%d`.tar.gz
    sleep 10
    echo "upload Cnprintbbs ok!"
    保存,并设置计划任务。
    # crontab -e
    增加一行:
    00 4 * * * /root/scripts/back.sh
    每天凌晨4点将自动备份数据库并上传。
    2)、数据库即时备份
    每隔1小时,将Cnprintbbs数据库拷贝至/root/back/hour目录进行备份,然后将压缩文件传给特定服务器。
    例子:
    #!/bin/bash
    hottime=`date +%Y%m%d%H%M`
    mkdir /root/back/hour/Cnprintbbs"$hottime"
    /usr/local/mysql/bin/mysqlhotcopy Cnprintbbs /root/back/hour/Cnprintbbs"$hottime" -u root -p uefer77693
    sleep 5
    cd /root/back/hour
    tar zcf `hostname`-Cnprintbbs"$hottime".tar.gz Cnprintbbs"$hottime"
    sleep 5
    echo "tar ok!"
    /usr/local/ncftp/bin/ncftpput -u backupdb -p backupdb 192.168.102.119 / /root/back/hour/`hostname`-Cnprintbbs"$hottime".tar.gz
    sleep 20
    echo "upload Cnprintbbs ok!"
    rm `hostname`-Cnprintbbs"$hottime".tar.gz -f
    3)、日志备份
    每天02:00,将/log/下前一天的日志,进行压缩,然后上传至192.168.9.1服务器。
    运行脚本/root/scripts/upload_daily
    例子:
    #!/bin/bash
    cd /log/
    mkdir log`date --date '1 days ago' +%Y%m%d`
    mv *.log.`date --date '1 days ago' +%y%m%d`-* log`date --date '1 days ago' +%Y%m%d`
    sleep 10
    tar zcvf `hostname`-log`date --date '1 days ago' +%Y%m%d`.tar.gz log`date --date '1 days ago' +%Y%m%d`
    /usr/local/ncftp/bin/ncftpput -u log -p log@root 218.80.198.234 / /log/`hostname`-log`date --date '1 days ago' +%Y%m%d`.tar.gz
    rm `hostname`-log`date --date '1 days ago' +%Y%m%d`.tar.gz
    注:计划任务通过/etc/crontab -e来进行设置
    4)、即时日志备份
    直接运行/home/root/tools/upload 将最新日志上传至192.168.1.9服务器,方便研发部门查看。
    运行脚本/home/root/tools/upload,(如果所有服务器的日志都需要上传,可以运行网关服务器上的/home/root/tools/allupload)
    24、Squid缓存删除及重启
    1. squid使用时间长了,速度会变慢,我的建议是每2小时kill掉squid 进程,RunAccel脚本会自动再启动的它。
    2. 写一脚本,放进crontab中,每天凌晨4点左右把cache目录清空。
    #!/bin/sh
    # squid clean swap and restart scrīpt by marco lu
    SQUID_DIR=/usr/local/squid/
    PID_FILE=${SQUID_DIR}var/logs/squid.pid
    CACHE_DIR=${SQUID_DIR}var/cache
    PPID=`ps aux | grep -i squid | grep -v grep|awk '{print $2}'`
    kill -9 ${PPID} > /dev/null
    kill -9 `cat ${PID_FILE}` > /dev/null
    rm -rf $CACHE_DIR/*
    ${SQUID_DIR}sbin/squid -z > /dev/null
    if [ $? -eq 0 ]
    then
    ${SQUID_DIR}bin/RunAccel & > /dev/null
    fi
    七、安装vBulletin 3.6.8和vBseo 3.1.0
    vBulletin和vbseo 3.0.1都是商业软件,本地址的下载链接仅供试用,请于下载后24小时内删除,购买正版请联系相应官方。
    25、安装vBulletin 3.6.8
    vBulletin 是一个强大的论坛社区解决方案,使用它您可以轻易为您的网站创建论坛系统。vBulletin 基于 PHP 和 MySQL (一个高效开源的数据库引擎)。这些坚固后台技术使我们开发的产品有着不同凡响的速度和可靠的稳定性。
    wget http://www.cnprint.org/bbs/blogs/1/a...1234567890.zip
    安装教程请见:http://www.vbulletin-china.cn/docs/h...rsion=30608602
    特别提醒:请打开config.php有关memcache设置。
    26、安装vBseo 3.1.0
    vBSEO为vBulletin(最流行的网站论坛)搜索优化程序, 用它可很容易地为你的vBulletin网站提供强大的搜索功能。
    下载vBseo安装程序:
    wget http://www.cnprint.org/bbs/blogs/1/a...eygen-gysn.zip
    1、打开vBseo压缩包,解压缩,FTP以二进制方式上传upload文件夹下所有文件及目录至vbb对应目录。
    2、Linux系统下需首先修改"vB-root/includes/config_vbseo.php" 文件属性为可写(CHMOD 666)
    3、确认vbb控制台启动插件功能, 在插件与产品栏目--产品管理--添加/管理产品,import导入'Product'目录中的crawlability_vbseo.xml (如果中文UTF-8版个别情况下导入错误则可以把此文件用编辑软件另存为utf-8编码),产品添加完毕。
    4、将'htaccess'目录中.htaccess 文件上传至论坛根目录,有些操作系统下.htaccess 不可见,这时可以只将htaccess.txt文件上传到vbb根目录,删除刚才上传的.htaccess文件,将刚才上传的txt文件更名为. htaccess。
    5、在浏览器中输入http: //你的网址/你的VBB目录/vbseocp.php配置你的vbseo,输入两次你的Vbseo管理面板密码,也可以事先编辑upload\ includes\config_vbseo.php文件,在define('VBSEO_ADMIN_PASSWORD', 'ABC')中加入你想要的管理密码(就在后面的引号中间加入,比如ABC)。
    6、vbseo管理界面下如果需要输入授权码请用附带的keygen为你的Domain算号并拷贝32位授权码即可,配置完毕后将第二步中'config_vbseo.php' 文件属性改回只读(CHMOD 644)
    7、开始使用你的VBSEO,第一次安装以后可以直接通过VBB后台进入Vbseo管理界面。
    8、如果有必要,将htacess规则移到httpd.conf中。可以大大降低apache的负载。
    NameVirtualHost *:80

    ServerName www.cnprint.org
    DocumentRoot "/usr/local/apache2/htdocs"
    #ErrorLog logs/error_log
    # CustomLog logs/access_log combined


    Options Indexes FollowSymLinks
    AllowOverride none
    Order allow,deny
    Allow from all


    Options Indexes FollowSymLinks
    AllowOverride all
    RewriteEngine On
    #RewriteBase /bbs
    RewriteCond %{HTTP_HOST} !^www\.cnprint\.org
    RewriteRule (.*) http://www.cnprint.org/bbs/$1 [L,R=301]
    #RewriteRule ^((urllist|sitemap_).*\.(xml|txt)(\.gz)?)$ vbseo_sitemap/vbseo_getsitemap.php?sitemap=$1 [L]
    RewriteCond %{QUERY_STRING} !vbseourl=
    RewriteCond %{REQUEST_URI} !(admincp/|modcp/|chat|cron)
    RewriteRule ^(.*\.php)$ vbseo.php?vbseourl=$1 [L,QSA]
    RewriteCond %{REQUEST_FILENAME} !\.(jpg|gif)$
    RewriteRule ^(archive/.*)$ vbseo.php?vbseourl=$1 [L,QSA]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !^(admincp|modcp|clientscript|cpstyles|images)/
    RewriteRule ^(.+)$ vbseo.php?vbseourl=$1 [L,QSA]
    Order allow,deny
    Allow from all

  27. baizx 于 2009-11-25 09:58:09发表:

    限制连往本机的telnet单个IP并发连接为2个,超过的连接被拒绝:
      iptables -I INPUT -p tcp --dport 23 -m iplimit --iplimit-above 2 -j REJECT
      
      2 限制连往本机的web服务,1个C段的IP的并发连接不超过100个,超过的被拒绝:
      iptables -I INPUT -p tcp --dport 80 -m iplimit --iplimit-above 100 --iplimit-mask 24 -j REJECT

  28. baizx 于 2009-11-25 09:52:36发表:

    [i=s] 本帖最后由 baizx 于 2010-2-5 09:28 编辑 [/i]

    关于lamp

    Linux系统中使用GCC CPU参数优化代码编译
    发表于 2007-10-11 16:46 作者: wangyu1314
    wangyu1314 更新于 2007-10-13 17:11
    使用特定的GCC参数可以使编译出的程序执行效率有较大提升。具体如下:

    1、优化原理:
    在编译程序时,借助参数传递的方法,使用与系统CPU相匹配的gcc参数,编译出的程序就是为系统CPU而进行特定优化过的,因而执行速度和效率都会是最好。

    2、注意事项
    (1) 经过大量测试发现,在RedHat, CentOS系统中通常只能通过参数传递的方法进行编译优化,当然,如果愿意并且能够修改程序的MakeFile也可以达到这一效果,只不过比较复杂,工 作量较大。其他在网上广为流传的方法(例如:直接通过.bashrc, /etc/profile声明参数系统变量、写入/etc/make.conf等)经过测试均没有效果。

    (2) 对于Gentoo Linux或FreeBSD可以通过修改/etc/make.conf添加参数的方法来实现,而不必使用参数传递法。

    3、优化步骤:
    (1)确定系统CPU类型:
    # cat /proc/cpuinfo | grep "model name"
    执行后会看到系统中CPU的具体型号,记下CPU型号。

    (2)使用参数传递方法进行编译:(以Pentium4 CPU为例)
    此处以编译Apache为例说明如何使用参数传递:
    # tar xzvf httpd-2.0.55.tar.gz
    # cd httpd-2.0.55
    CHOST="i686-pc-linux-gnu" \
    CFLAGS="-O3 \
    -msse2 \
    -mmmx \
    -mfpmath=sse \
    -mcpu=pentium4 \
    -march=pentium4 \
    -pipe \
    -fomit-frame-pointer" \
    CXXFLAGS="-O3 \
    -msse2 \
    -mmmx \
    -mfpmath=sse \
    -funroll-loops \
    -mcpu=pentium4 \
    -march=pentium4 \
    -pipe \
    -fomit-frame-pointer" \
    ./configure ......
    # make
    # make install

    这样就通过函数传递方法实现了编译优化。下面对其中的一些参数进行具体说明:

    -O3:相对于-O、-O1、-O2,-O3开启了所有GCC支持的优化特性;
    -msse2:开启CPU所支持的sse2指令集;
    -mmmx:参考-msse2
    -mfpmath=sse:为指定指令集生成浮点运算特性(优化浮点运算功能);
    -mcpu:指定CPU型号;
    -march:指定CPU型号,基本同-mcpu,GCC根据-march设定的CPU型号决定在生成代码时可以使用哪些种类的指令。(注意!-march参数在某些CPU型号中不可用!)
    -pipe:使用管道(pipe)方法替代临时文件方法在编译的不同阶段之间进行通讯。

    附:常见CPU优化参数
    386:
    CHOST="i386-pc-linux-gnu"
    CFLAGS="-march=i386 -O3 -pipe -fomit-frame-pointer"
    CXXFLAGS="-march=i386 -O3 -pipe -fomit-frame-pointer"
    486:
    CHOST="i486-pc-linux-gnu"
    CFLAGS="-march=i486 -O3 -pipe -fomit-frame-pointer"
    CXXFLAGS="-march=i486 -O3 -pipe -fomit-frame-pointer"
    Pentium (Intel):
    CHOST="i586-pc-linux-gnu"
    CFLAGS="-march=pentium -O3 -pipe -fomit-frame-pointer"
    CXXFLAGS="-march=pentium -O3 -pipe -fomit-frame-pointer"
    Pentium MMX (Intel):
    CHOST="i586-pc-linux-gnu"
    CFLAGS="-march=pentium-mmx -O3 -pipe -fomit-frame-pointer"
    CXXFLAGS="-march=pentium-mmx -O3 -pipe -fomit-frame-pointer"
    Pentium PRO (Intel):
    CHOST="i686-pc-linux-gnu"
    CFLAGS="-march=pentiumpro -O3 -pipe -fomit-frame-pointer"
    CXXFLAGS="-march=pentiumpro -O3 -pipe -fomit-frame-pointer"
    Pentium II (Intel):
    CHOST="i686-pc-linux-gnu"
    CFLAGS="-march=pentium2 -O3 -pipe -fomit-frame-pointer"
    CXXFLAGS="-march=pentium2 -O3 -pipe -fomit-frame-pointer"
    Celeron (Intel):
    CHOST="i686-pc-linux-gnu"
    CFLAGS="-march=pentium2 -O3 -pipe -fomit-frame-pointer"
    CXXFLAGS="-march=pentium2 -O3 -pipe -fomit-frame-pointer"
    Pentium III (Intel):
    CHOST="i686-pc-linux-gnu"
    CFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer"
    CXXFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer"
    Celeron2 (Intel):
    CHOST="i686-pc-linux-gnu"
    CFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer"
    CXXFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer"
    Celeron (Willamette-Intel):
    CHOST="i686-pc-linux-gnu"
    CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
    CXXFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
    Pentium 4 (Intel):
    CHOST="i686-pc-linux-gnu"
    CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
    CXXFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
    K6 (AMD):
    CHOST="i586-pc-linux-gnu"
    CFLAGS="-march=k6 -O3 -pipe -fomit-frame-pointer"
    CXXFLAGS="-march=k6 -O3 -pipe -fomit-frame-pointer"
    K6-2 (AMD):
    CHOST="i586-pc-linux-gnu"
    CFLAGS="-march=k6-2 -O3 -pipe -fomit-frame-pointer"
    CXXFLAGS="-march=k6-2 -O3 -pipe -fomit-frame-pointer"
    K6-3 (AMD):
    CHOST="i586-pc-linux-gnu"
    CFLAGS="-march=k6-3 -O3 -pipe -fomit-frame-pointer"
    CXXFLAGS="-march=k6-3 -O3 -pipe -fomit-frame-pointer"
    Athlon (AMD):
    CHOST="i686-pc-linux-gnu"
    CFLAGS="-march=athlon -O3 -pipe -fomit-frame-pointer"
    CXXFLAGS="-march=athlon -O3 -pipe -fomit-frame-pointer"
    Athlon-tbird, aka K7 (AMD):
    CHOST="i686-pc-linux-gnu"
    CFLAGS="-march=athlon-tbird -O3 -pipe -fomit-frame-pointer"
    CXXFLAGS="-march=athlon-tbird -O3 -pipe -fomit-frame-pointer"
    Athlon-tbird XP (AMD):
    CHOST="i686-pc-linux-gnu"
    CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
    CXXFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
    Athlon 4(AMD):
    CHOST="i686-pc-linux-gnu"
    CFLAGS="-march=athlon-4 -O3 -pipe -fomit-frame-pointer"
    CXXFLAGS="-march=athlon-4 -O3 -pipe -fomit-frame-pointer"
    Athlon XP (AMD):
    CHOST="i686-pc-linux-gnu"
    CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
    CXXFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
    Athlon MP (AMD):
    CHOST="i686-pc-linux-gnu"
    CFLAGS="-march=athlon-mp -O3 -pipe -fomit-frame-pointer"
    CXXFLAGS="-march=athlon-mp -O3 -pipe -fomit-frame-pointer"
    603 (PowerPC):
    CHOST="powerpc-unknown-linux-gnu"
    CFLAGS="-O3 -pipe -fomit-frame-pointer -fsigned-char"
    CXXFLAGS="-O3 -pipe -fomit-frame-pointer -fsigned-char"
    603e (PowerPC):
    CHOST="powerpc-unknown-linux-gnu"
    CFLAGS="-O3 -pipe -fomit-frame-pointer -fsigned-char"
    CXXFLAGS="-O3 -pipe -fomit-frame-pointer -fsigned-char"
    604 (PowerPC):
    CHOST="powerpc-unknown-linux-gnu"
    CFLAGS="-O3 -pipe -fomit-frame-pointer -fsigned-char"
    CXXFLAGS="-O3 -pipe -fomit-frame-pointer -fsigned-char"
    604e (PowerPC):
    CHOST="powerpc-unknown-linux-gnu"
    CFLAGS="-O3 -pipe -fomit-frame-pointer -fsigned-char"
    CXXFLAGS="-O3 -pipe -fomit-frame-pointer -fsigned-char"
    750 aka as G3 (PowerPC):
    CHOST="powerpc-unknown-linux-gnu"
    CFLAGS="-mcpu=750 -O3 -pipe -fomit-frame-pointer -fsigned-char"
    CXXFLAGS="-mcpu=750 -O3 -pipe -fomit-frame-pointer -fsigned-char"
    7400, aka G4 (PowerPC):
    CHOST="powerpc-unknown-linux-gnu"
    CFLAGS="-mcpu=7400 -O3 -pipe -fomit-frame-pointer -fsigned-char -maltivec"
    CXXFLAGS="-mcpu=7400 -O3 -pipe -fomit-frame-pointer -fsigned-char -maltivec"
    7450, aka G4 second generation (PowerPC):
    CHOST="powerpc-unknown-linux-gnu"
    CFLAGS="-mcpu=7450 -O3 -pipe -fomit-frame-pointer -fsigned-char -maltivec"
    CXXFLAGS="-mcpu=7450 -O3 -pipe -fomit-frame-pointer -fsigned-char -maltivec"
    PowerPC (If you don't know which one):
    CHOST="powerpc-unknown-linux-gnu"
    CFLAGS="-O3 -pipe -fomit-frame-pointer -fsigned-char"
    CXXFLAGS="-O3 -pipe -fomit-frame-pointer -fsigned-char"
    Sparc:
    CHOST="sparc-unknown-linux-gnu"
    CFLAGS="-O3 -pipe -fomit-frame-pointer"
    CXXFLAGS="-O3 -pipe -fomit-frame-pointer"
    Sparc 64:
    CHOST="sparc64-unknown-linux-gnu"
    CFLAGS="-O3 -pipe -fomit-frame-pointer"
    CXXFLAGS="-O3 -pipe -fomit-frame-pointer"

    一、端口和服务的关系
    端口号与相应服务的对应关系存放在/etc/services文件中,这个文件中可以找到大部分端口。使用netstat命令
    显示的服务名称也是从这个文件中找的。有人说将这个文件中的相应端口号注释掉,就可以禁用该端口。
    我试了却不起作用,这种方法应该是没有用的,是误传!将相应端口号注释掉,唯一的作用就是使用netsat
    命令时,将不显示服务名(比如ftp)而是显示端口号(比如21)。原理也很简单:netstat无法在/etc/services
    文件中找到端口号对应的服务名,自然就无法显示了。所以/etc/services文件只是起到端口号与相应服务的
    映射关系,与端口的启动和关闭没有关系!
    二、查看本机开放的端口
    1、netstat 查看端口和连接
    netstat 列出目前已经连接的服务名
    netstat -a 列出目前已经连接的和正在监听的服务名
    netstat -an 列出目前已经连接的和正在监听的端口号(与上面的命令功能一样,只是不解释端口号对应的服务名)
    netstat -ap 在上面命令的基础上列出连接的PID(进程号),用这个PID,可以使用KILL 来杀死连接
    例如:某个连接的PID=111,想踢出去就使用 KILL -9 111。ok!
    netstat -rn 输出路由表
    2、nmap
    nmap 127.0.0.1 查看本机开放的端口,会扫描所有端口
    nmap -p 1024 65535? 127.0.0.1 扫描指定端口范围
    nmap -PT 192.168.1.1-111? 扫描一组范围的电脑
    三、关闭和开启端口(服务)
    关闭端口的方法:
    1、因为每个端口都有对应的服务,因此要关闭端口只要关闭相应的服务就可以了。
    2、用IPTABLE对端口进行限制,这样也能使端口不被访问,但端口本身并没有关闭。
    在这儿只介绍关闭服务的方法,IPTABLE的应用以后再讨论。
    linux中开机自动启动的服务一般都存放在两个地方:
    /etc/init.d/文件夹下的服务:
    这个文件夹下的服务都可以通过运行相应的SCRIPT来启动或关闭。
    例如:启动sendmail服务 ./sendmail start (打开了TCP 25端口)
    关闭sendmail服务 ./sendmail stop (关闭TCP 25 端口)
    查看sendmail服务当前状态 ./sendmail? status (查看服务是否运行)
    /etc/xinetd.d/文件夹下的服务:
    这个文件夹下的服务需要通过更改服务的配置文件,并重新启动xinetd才可以。
    例如:要启动其中的auth服务,打开/etc/xinetd.d/auth配置文件,更改“disable=no”,保存退出。运行/etc/rc.d/init.d/xinetd restart
    要停止其中的auth服务,打开/etc/xinetd.d/auth配置文件,更改“disable=yes”,保存退出。运行/etc/rc.d/init.d/xinetd restart
    四、控制开机自动启动的服务
    上面说的控制服务开关方法是在启动linux之后进行操作的,如果我想在linux启动时控制哪些服务启动、哪些服务关闭怎么做
    控制服务自动启动的方法有3个:
    1、更改/etc/rc.d下的对应文件夹:
    如果你登陆的默认界面是字符界面,那么修改rc.3文件夹,如果登陆界面默认是图形界面,那么修改rc.5。
    在文件夹中,每个服务的名字前都带有“K”或“S”,S就代表这个服务开机自动运行了,把它删了或前缀改为“K”下次就不会启动了。
    2、使用ntsysv命令:
    输入ntsysv命令,将会出现一个服务列表,需要启动的打“*”,简单。
    3、使用chkconfig命令:
    让某个服务不自动启动:例如httpd:chkconfig --level 35 httpd? off ;35指的是运行级别
    让某个服务自动启动:例如httpd:chkconfig --level 35 httpd? on ;
    查看所有服务的启动状态:chkconfig --list
    查看某个服务的启动状态:chkconfig --list |grep httpd



    Linux下如果我们须要知道2809号端口的情况的话,我们可以这样,如下命令:
      $netstat -pangrep 2809
      tcp    0   0 0.0.0.0:2809   0.0.0.0:*   LISTEN   9493/java
      下面是常用参数的解释:
      NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interval]
      -a            显示所有连接和监听端口。
      -b            显示包含于建立每个连接或监听端口的可执行组件。在某些情况下已知可执行组件
       拥有多个独立组件,并且在这些情况下
       包含于建立连接或监听端口的组件序列被显示。这种情况下,可执行组件名
       在底部的 [] 中,顶部是其调用的组件,等等,直到 TCP/IP 部分。留心此选项
       可能须要很长时间,如果没有足够权限可能失败。
      
      -e            显示以太网统计信息。此选项可以与 -s选项组合运用。
      
      -n            以数字形式显示地址和端口号。
      -o            显示与每个连接有关的所属进程 ID。
      -p proto      显示 proto 指定的协议的连接;proto 可以是
       下列协议之一: TCP、UDP、TCPv6 或 UDPv6。
       如果与 -s 选项一起运用以显示按协议统计信息,proto 可以是下列协议之一:
       IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。
      
      -r            显示路由表。
      -s            显示按协议统计信息。默认地,显示 IP、
       IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息;
       -p 选项用于指定默认情况的子集。
      
      -v            与 -b 选项一起运用时将显示包含于
       为所有可执行组件建立连接或监听端口的组件。
      
      interval      重新显示选定统计信息,每次显示之间
       暂停时间间隔(以秒计)。按 CTRL+C 停止重新
       显示统计信息。如果省略,netstat 显示当前
       配置信息(只显示一次)


    内容来自: 脚本之家 www.jb51.net


    [root@test proc]# netstat -an

    [root@test proc]# /usr/sbin/lsof -i |grep 21
    proftpd 1408 root 0u IPv4 10850 1471 root 0u IPv4 21162 192.168.0.1:3631 (ESTABLISHED)
    proftpd 1471 root 1u IPv4 21162 ;192.168.0.1:3631 (ESTABLISHED)

    netstat -lp 查看端口使用

    netstat -nap | grep 21 看看什么程序运行在21端口


    安装CentOS 5.3是做服务器
    安装、配置Apache+php+Mysql

    Centos 里的 yum 在线安装很慢.以下是替换为中国CentOS镜像服务器!
    中国官方镜像网站: http://centos.ustc.edu.cn/
    引用:
    /* 使用说明 */
    cd /etc/yum.repos.d[进入yum.repos.d目录]
    mv CentOS-Base.repo CentOS-Base.repo.save[修改源文件名称备份]
    wget http://centos.ustc.edu.cn/CentOS-Base.repo.5[下载]
    mv CentOS-Base.repo.5 CentOS-Base.repo[下载后的文件更名]
    1. 更新系统内核到最新.
    引用:
    yum -y update
    系统更新后,如果yum安装时提示错误信息,请执行以下命令修复.
    引用:
    rpm -import /etc/pki/rpm-gpg/RPM-GPG-KEY*
    2. 安装Apahce, PHP, Mysql, 以及php连接mysql库组件
    引用:
    yum -y install httpd php mysql mysql-server php-mysql

    //安装mysql扩展
    yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql
    //安装php的扩展
    yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc
    //安装apache扩展
    yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql
    一次性粘贴安装:
    引用:
    yum -y install httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-mcrypt php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc mysql-connector-odbc mysql-devel libdbi-dbd-mysql
    3. 启动服务配置
    引用:
    /sbin/chkconfig httpd on [设置apache为自启动]
    /sbin/chkconfig --add mysqld [mysql服务]
    /sbin/chkconfig mysqld on [mysqld服务]

    /sbin/service httpd start [自启动 httpd 服务]
    /sbin/service mysqld start [自启动mysqld服务]
    4.设置mysql数据库root帐号密码。
    引用:
    mysqladmin -u root password ‘新密码’ [引号内填密码]
    5.让mysql数据库更安全
    引用:
    mysql -u root -p [此时会要求你输入刚刚设置的密码,输入后回车即可
    mysql> DROP DATABASE test; [删除test数据库]
    mysql> DELETE FROM mysql.user WHERE user = ”; [删除匿名帐户]
    mysql> FLUSH PRIVILEGES; [重载权限]
    按照以上的安装方式, 配置出来的默认站点目录为/var/www/html/新建一个php脚本:
    引用:
    phpinfo();
    ?>
    6. 防火墙配置
    引用:
    a.添加.允许访问端口{21: ftp, 80: http}.
    iptables -I RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
    iptables -I RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
    b.保存
    service iptables save
    c.重置加载防火墙
    service iptables restart
    7. 安装phpMyAdmin进入phpMyAdmin官方下载最新版本后,上传到你的网站目录下,然后进行配置。只需几步即可搞定。
    引用:
    a. config.sample.inc.php更名为config.inc.php;
    b. 打开config.inc.php文件,进行以下修改;
    // $cfg['Servers'][$i]['controluser'] = ‘pma’;
    // $cfg['Servers'][$i]['controlpass'] = ‘pmapass’;
    // $cfg['Servers'][$i]['pmadb'] = ‘phpmyadmin’;
    // $cfg['Servers'][$i]['bookmarktable'] = ‘pma_bookmark’;
    // $cfg['Servers'][$i]['relation'] = ‘pma_relation’;
    // $cfg['Servers'][$i]['table_info'] = ‘pma_table_info’;
    // $cfg['Servers'][$i]['table_coords'] = ‘pma_table_coords’;
    // $cfg['Servers'][$i]['pdf_pages'] = ‘pma_pdf_pages’;
    // $cfg['Servers'][$i]['column_info'] = ‘pma_column_info’;
    // $cfg['Servers'][$i]['history'] = ‘pma_history’;
    // $cfg['Servers'][$i]['designer_coords'] = ‘pma_designer_coords’;

    去掉每行前面的//;
    c.$cfg['blowfish_secret'] = ”; |修改为| $cfg['blowfish_secret'] = ‘http’;
    d.$cfg['Servers'][$i]['controluser'] = ‘pma’; |把’pma’修改为你的帐号|
    e.$cfg['Servers'][$i]['controlpass'] = ‘pmapass’; |把’pmapass设置为你的mysql登录密码|
    f. $cfg['blowfish_secret'] = ”; | 添加短语密码例如:$cfg['blowfish_secret'] = ‘onohot’|

    (转)phpMyAdmin安装、设置教程

    1、先下载一份最新版的phpMyAdmin MYSQL管理器,可以到天空软件站去下载,我刚下载的是2.8.2.1的版本

      2、解压后得到一个phpMyAdmin的目录(你可以改名)

      找到目录里的config.inc.php文件(最新版的在解压得到的文件夹中找不到了,其实你可以把phpMyAdmin/libraries下的 config.default.php复制到phpmyadmin跟目录,然后把config.default.php改名为 config.inc.php)

      3、打开config.inc.php(可以用记事本等文字编辑工具)

      4、找到 $cfg['PmaAbsoluteUri'] (呵呵,按Ctrl+F就可以调出查找框了)

      修改你将上传到空间的phpMyAdmin的网址

      如:$cfg['PmaAbsoluteUri'] = 'http://www.taoliyuan.com.cn/phpmyadmin/';

      5、还有下面的

      $cfg['Servers'][$i]['host'] = 'localhost';(通常用默认,也有例外,可以不用修改)

      6、$cfg['Servers'][$i]['auth_type'] = 'config'; // Authentication method (config, http or cookie based)?

      在自己的机子里调试用config;如果在网络上的空间用cookie,这里我们既然在前面已经添加了网址,就修改成cookie ,这里建议使用cookie

      7、$cfg['Servers'][$i]['user'] = 'root'; // MySQL user(用户名,自己机里用root;在网上一般为你的ftp用户名,虚拟主机提供商会告诉你的;一般不要修改)

      8、$cfg['Servers'][$i]['password'] = ''; // MySQL password (only needed

      自己机里不用设,留空就可以了

      9、$cfg['Servers'][$i]['only_db'] = ''; // If set to a db-name, only(你只有一个数据就设置一下;如果你在本机或想架设服务器,那么建议留空)

      10、还有$cfg['DefaultLang'] = 'zh'; (这里是选择语言,zh代表简体中文的意思)

      设置完毕可以上传到网络上的空间了。

      浏览http://host/phpmyadmin/ 就可以了。

      当然你设置不同就用那个网址,这里知识举例说明。

      11、补充说明:

      其实如果你是购买的虚拟主机,那么这些工作根本不需要你来作

      之所以要设置phpmyadmin估计大家都是要架设服务器的

      如果出现“配置文件现在需要绝密的短语密码(blowfish_secret)”

      那么请在$cfg['blowfish_secret'] = ' ';的等号里面设置你网站的cookie,例如:$cfg['blowfish_secret'] = 'www.taoliyuan.com.cn';

      这是因为你的“$cfg['Servers'][$i]['auth_type'] = 'cookie'的原因。

    (转)
    下面我们来看看,如何使用yum命令安装phpMyAdmin预编译包。

    由于CentOS软件安装源中没有phpMyAdmin软件包,我们需要为CentOS启用RPMforge源:

    x86_64系统中使用, wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm

    rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
    复制代码i386系统中使用, wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

    rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
    复制代码rpmforge源安装成功后,我们就可以安装phpMyAdmin了: yum install phpmyadmin
    复制代码现在我们来对phpMyAdmin进行一些简单的配置。由于phpMyAdmin安装后,默认是只能从本地服务器上访问的,我们需要修改 phpMyAdmin配置文件,使得远程主机或客户端也能访问它。修改/etc/httpd/conf.d/phpmyadmin.conf,把 这个节点的配置注释掉: vi /etc/httpd/conf.d/phpmyadmin.conf



    #

    # Web application to manage MySQL

    #



    #

    # Order Deny,Allow

    # Deny from all

    # Allow from 127.0.0.1

    #




    Alias /phpmyadmin /usr/share/phpmyadmin

    Alias /phpMyAdmin /usr/share/phpmyadmin

    Alias /mysqladmin /usr/share/phpmyadmin
    复制代码然后,把phpMyAdmin的验证方式从默认的cookie方式改成http: vi /usr/share/phpmyadmin/config.inc.php



    [...]

    /* Authentication type */

    $cfg['Servers'][$i]['auth_type'] = 'http';

    [...]
    复制代码好了,所有的安装配置都完成了,打开 http://192.168.0.100/phpmyadmin/ 尽情享用吧

    四、所需工具下载

    I.
    FlashFXP
    通过FlashFxp里的Sftp连接,直接连接到服务器上管理所有文件夹。
    II.
    putty
    PuTTY 是一套免费的 SSH / Telnet 程序,它可以连接上支持 SSH Telnet 联机的站台,并且可自动取得对方的系统指纹码 (Fingerprint)。建立联机以后,所有的通讯内容都是以加密的方式传输,因此你再也不用害怕使用 Telnet 在 Internet 或公司的内部网络传输资料时被他人获知内容了!
    II.
    SecureCRT
    SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,同时支持Telnet和rlogin协议。SecureCRT是一款用于连接运行包括Windows、UNIX和VMS的远程系统的理想工具。通过使用内含的VCP命令行程序可以进行加密文件的传输。