隐藏窗口新魔法

0

分类 : 娱乐休闲 | 发表时间 01-03-2006

学校机房是不是不让玩游戏?单位是不是禁止使用MSN?聪明的你总会想出各种障眼法逃过老师或领导的眼睛,今天笔者就给大家介绍一款不一般的窗口隐藏软件MagicHide,所有程序在它的面前都是呼之则来,挥之则去。
  让窗口彻底蒸发

  运行MagicHide后,在“窗口管理”标签中列出了当前系统中的所有窗口(包括可见的和不可见的都列出来了),并在状态中显示当前窗口是否可见(如图1)。在列表中双击需要隐藏的窗口就可以快速实现对窗口的隐藏和显示了,是不是很简单呢!不过对于MSN等在系统托盘也有图标的软件,光隐藏窗口还不够,还要切换到“托盘管理”标签中,双击列表中的MSN即可隐藏图标,这样就天衣无缝了。

  想必很多朋友都知道Maxthon有一个老板键“Alt+~”可以迅速隐藏窗口,我们同样可以在MagicHide中为其它窗口设置类似的热键。在“窗口管理”标签中需要设置隐藏热键的程序上点击鼠标右键,选择“设置窗口隐藏热键”,然后在“临时隐藏热键设置”窗口中设置热键,建议采用组合键,这样能够有效地防止误操作将不该隐藏的窗口隐藏掉,同时要注意设置的热键方便用单手操作,以便提高隐藏的效率(如图2)。用类似的方法也可以对托盘图标实现热键隐藏。

  有时候我们不需要将程序隐藏得无影无踪,毕竟这样也会给自己操作带来不便。这就要用到MagicHide一个很有趣的功能——更换托盘图标。在“托盘管理”标签下,选中要更换图标的程序点击右键,在菜单中选择“修改提示信息和图标”,然后在弹出窗口中点击“更改图标”并通过“浏览”按钮选择一个新图标就可以了。不过要是想以隐藏为目的,别忘了更改一下该图标的提示信息哟,否则还是会露出马脚的。

  提示:设置完隐藏窗口后,还可以使用软件默认的持久热键“Win+F12”来隐藏MagicHide的界面或图标,让隐藏来得更彻底吧。

  其它实用功能

  MagicHide支持屏蔽任务管理器,这样就可以让程序显得更加隐蔽了。选择“选项/屏蔽系统任务管理器”后,再按“Ctrl+Alt+Del”就不会显示管理器窗口了;你甚至可以将MagicHide替换为系统的任务管理器,因为这里可以对所有窗口进行控制,选择“选项/替换系统任务管理器”,当软件最小化后再按“Ctrl+Alt+Del”,弹出来的就是MagicHide了。

  除此之外,Magic Hide还支持驱动器隐藏、桌面任务栏隐藏、关机相关操作、窗口的显示布局等众多实用功能,与同类软件相比,MagicHide具有更人性化的设置,相信朋友们一定会喜欢上它的。

入侵渗透思路

0

分类 : 技术文摘 | 发表时间 20-02-2006

入侵渗透思路
—asm_c
入侵渗透涉及许多知识和技术,并不是一些人用一两招就可以搞定的。
一,踩点
踩点可以了解目标主机和网络的一些基本的安全信息,主要有;
1,管理员联系信息,电话号,传真号;
2,IP地址范围;
3,DNS服务器;
4,邮件服务器。
相关搜索方法:
1,搜索网页。
确定目标信息1,为以后发动字典和木马入侵做准备;寻找网页源代码找注释和隐藏域,寻找隐藏域中的”FORM”标记。例如:



可以发起SQL注入攻击,为以后入侵数据库做准备。
相关工具:UNIX下的Wget,Windows下的Teleport。
2,链接搜索
目标网站所在的服务器可能有其他具有弱点的网站,可以进行迂回入侵,而且可以发现某些隐含的信息。
搜索方法介绍:
通过各种搜索引擎:GOOGLE,http://www.dogpile.com,http://www.hotbot.com
二,查点
A,确定目标的域名和相关的网络信息。
搜索方法;
Whois查询,通过Whois数据库查询可以得到以下的信息:
1,注册机构:显示相关的注册信息和相关的Whois服务器;
2,机构本身:显示与某个特定机构相关的所有信息;
3,域名:显示与某个特定域名相关的所有信息
4,网络:显示与某个特定网络或单个IP地址相关的所有信息;
5,联系点:显示与某位特定人员相关的所有信息
搜索引擎站:http://www.infobear.com/whois.shtml,
举例:Output of: whois 163.com@whois.internic.net
Registrant:
Netease.com, Inc.
36/F Peace World Plaza, No.362-366
Huan Shi Dong Road
Guangzhou, Guangdong 510060
CN

Domain Name: 163.COM

Administrative Contact, Technical Contact:
Netease.com, Inc. nsadmin@corp.netease.com
36/F Peace World Plaza, No.362-366
Huan Shi Dong Road
Guangzhou, Guangdong 510060
CN
+86-20-85525516 fax: +86-20-85525535

Record expires on 24-Jan-2009.
Record created on 15-Sep-1997.
Database last updated on 10-Feb-2006 03:24:01 EST.

Domain servers in listed order:

NS.NEASE.NET 202.106.185.75
NS3.NEASE.NET 220.181.28.3

B,利用ARIN数据库可以查询某个域名所对应的网络地址分配信息。
相关搜索地址:http://ws.arin.net/cgi-bin/whois.pl
利用http://whois.apnic.net/apnic-bin/whois2.pl进行对IP地址的查询,以搜集有关的网络信息:
举例:163.com->202.108.9.16
inetnum: 202.108.0.0 – 202.108.255.255
netname: CNCGROUP-BJ
descr: CNCGROUP Beijing province network
descr: China Network Communications Group Corporation
descr: No.156,Fu-Xing-Men-Nei Street,
descr: Beijing 100031
country: CN
admin-c: CH455-AP
tech-c: SY21-AP
mnt-by: APNIC-HM
mnt-lower: MAINT-CNCGROUP-BJ
mnt-routes: MAINT-CNCGROUP-RR
changed: hm-changed@apnic.net 20031017
status: ALLOCATED PORTABLE
changed: hm-changed@apnic.net 20060124
source: APNIC

role: CNCGroup Hostmaster
e-mail: abuse@cnc-noc.net
address: No.156,Fu-Xing-Men-Nei Street,
address: Beijing,100031,P.R.China
nic-hdl: CH455-AP
phone: +86-10-82993155
fax-no: +86-10-82993102
country: CN
admin-c: CH444-AP
tech-c: CH444-AP
changed: abuse@cnc-noc.net 20041119
mnt-by: MAINT-CNCGROUP
source: APNIC

person: sun ying
address: Beijing Telecommunication Administration
address: TaiPingHu DongLi 18, Xicheng District
address: Beijing 100031
country: CN
phone: +86-10-66198941
fax-no: +86-10-68511003
e-mail: suny@publicf.bta.net.cn
nic-hdl: SY21-AP
mnt-by: MAINT-CHINANET-BJ
changed: suny@publicf.bta.net.cn 19980824
source: APNIC
知道了目标所在的网络,可以进行迂回渗透,寻找薄弱点,进入目标网络,然后在攻击目标。

C,DNS信息查询
域名系统允许把一个DNS命名空间分割成多个区,各个去分别保存一个或多个DNS域的名字信息。
区复制和区传送:DNS服务器之间是采用区传送的机制来同步和复制区内数据的。
区传送的安全问题不在于所传输的域名信息,而在于其配置是否正确。因为有些域名信息当中包含了不应该公开的内部主机和服务器的域名信息。
相关工具:
1,Windows下,nslookup,SamSpade;
2, UNIX下:nslookup,dig,host,axfr
在Windows下的使用方法:
c:\>nslookup
Default server: 目标的DNS服务器
Address: 目标的IP地址

>set type=ANY //表示接受任何可能的DNS记录
>ls -d 163.com >zone.163.com.txt //获得目标域的相关记录,结果保存在zone.163.com.txt

D,通过Traceroute获得网络的拓扑结构以及网络网络设备的地址。
相关工具;
Windows下:Tracert 支持ICMP协议
UNIX下:Traceroute 支持ICMP和DNS协议,由于多数防火墙已经过滤了ICMP,所以UNIX下的Traceroute是不错的选择,而且使用-p n选项可以自己指定使用的端口。

三,网络扫描
面对不同的网络,应该采用不用的扫描方法:
1,对于内部网络,可用类型很多,ICMP协议是普遍要装上的,在内部网广播ICMP数据包可以区分WINDOWS和UNIX系统,
发送类型为8的ICMP的ECHO请求,如果可以受到类型为0的ECHO回应,表明对方主机是存活的。
相关工具介绍:
UNIX下的:fping&gping
WINDOWS下:Pinger 特点:速度快,多线程。
2,对于外部网络,可用类型也很多,涉及到的原理也有很多,例如:TCP扫描,UDP扫描,
其实我是很不愿意用扫描工具的,很容易使对方感觉到入侵事件的发生,不论是防火墙还是入侵检测系统都会或多或少的留下我们的脚印,如果遇到一个勤快的管理员的话,那么这次入侵很可能以失败告终。
但使用与否依各个喜好而定了:),有时候我们在测试网络或者主机的安全性时,就不能忽视他的存在了,首先,安全测试不是入侵,全面的测试对抵御黑客和蠕虫的攻击是必要的,在这里推荐的端口扫描工具是NMAP,因为他带有躲避IDS检测的机制,重组了TCP的三次握手机制,慢扫描机制等等都是其他扫描工具无法比拟的,UDP扫描是很不可靠的,原因有下几点:
这种扫描依靠ICMP端口不可达消息,如果发送端给目标一个感兴趣的端口发送了一个UDP数据包后,没有收到ICMP端口不可打消息,那么我们认为该端口处于打开状态。
不可靠的原因:
1,路由器可能丢弃UDP分组;
2,很多的UDP服务不也不产生响应;
3,防火墙的常规配置是丢弃UDP分组(除DNS外);
4,休眠状态的UDP端口是不会发送一个ICMP端口不可到达消息。

还有的扫描工具就是弱点扫描工具,这些工具综合各种漏洞信息构造漏洞数据库,去探究存在漏洞没有打补丁的主机,当然也有针对特定漏洞的检测发现工具(脚本小子能用,网络安全人员也弄用–双刃剑-:)
这里详细介绍对目标操作系统类型的检测原理:
Telnet标识和TCP/IP堆栈指纹:
1,网上许多的系统可以直接Telnet到目标,大多会返回欢迎信息的,返回的信息包含了该端口所对应的服务软件的版本号,这个对于寻找这个版本的软件的漏洞很重要,如果对方开了Telnet,那么可以直接得到对方的系统类型和版本号,这个对于挖掘系统的漏洞很重要(对于溢出来说,不
同版本的系统和语言版本的系统来说,RET地址,JMP ESP,地址是不同的)。
2,如今越来越多的管理员懂的了关闭功能标志,甚至提供伪造的欢迎信息。那么TCP/IP堆栈指纹是区分不同系统的好方法。
1,FIN扫描
给打开的端口发送FIN包,RFC 793规定不返回任何响应,例外的系统是: MS Windows,BSDI,CISCO,HP/UX,MVS和IRIX都返回一个RESET包。
2,TCP初始序列号(ISN)采样
这种方法利用了在实现TCP连接时使用不同的ISN模式识别系统,可以分成多种模式:传统的64K增加(旧
UNIX OS),随机增加(新版的Solaris,IRIX,FreeBSD,Digital UNIX和Cray等),真正随机(Linux 2.0.*,OpenVMS和新版AIX等),Windows系统使用所谓的“时间依赖性”模型,即ISN的增加同某一个短固定的时间间隔有关系,有些主机始终使用固定的ISN,例如3COM集线器(使用0×803)和AppleLaserWriter打印机(0xC7001)。
3,不分片位
目前许多系统在他们发送的包中使用IP“不分片”位,这主要是想获得好的运行性能,不过也不是所有的操作系统都有此功能,即使有,其实现的方式可能也不同。因此利用次位或许有利于我们收集更多的有关目标OS的信息。
4,TCP初始窗
TCP初始窗只是简单地测试返回包的窗口尺寸。Queso和Nmap可以对实际的窗口进行窗口跟踪。在很多操作系统中是一个常数。例如:AIX是唯一使用0x3F25的操作系统。对于完全重新编写代码的NT 5的TCP堆栈,使用0x402E.
5,ACK值
如果发送一个FIN|PSH|URG,许多操作系统设置ACK等于初始序列号,而Windows和某些打印机将发送seq+1.如果发送一个SYN|FIN|PSH|URG到打开的端口,不同的Windows系统的实现将很不一致,有时返回seq,有时返回seq+1,甚至返回完全随机的数值。
6,ICMP错误消息机制
某些操作系统按照RFC 1812的建议,限制不同错误消息的发送速率。例如:Linux内核(在net/ipv4/icmp.h中定义)限制目标不可到达消息的产生速率为4秒种内80个,如果超过这个限制将有1/4的惩罚。测试方法是发送一大串包到某些随机选取的高端口,然后计算返回的不可到达包的数目。
7,ICMP消息引用(Message Quoting)
RFC规定:ICMP错误消息将引用一小部分导致错误消息包的ICMP消息内容。对于端口不可达消息,几乎所有的实现都只发送所需要的IP头+8字节。不过Solaris发送的内容更多,而Linux发送的东西最多。这就是我们识别没有打开任何端口的Linux和Solaris主机。
8,ICMP错误消息回射完整性
主机对端口不可打错误消息将送回一小部分于是消息的内容。某些机器送回的包中包括的协议头部分已经被改变。例如,AIX和BSDI送回的IP总长度是20字节。而系统BSDI,FreeBSD,OpenBSD,ULTRIX和VAXen则将原样送回你所发送的IP标识符。某些系统(AIX和FreeBSD等)将送回不一致或等于0的校验和。这同样适用于UDP校验和。Nmap对ICMP错误消息包进行九种不同的测试以标识系统之间的微笑差别。
9,TCP选项
是实现TCP/IP协议时可选的一个部分功能,这跟不同的系统实现有关,这些选项都是挖掘可用信息的好方法。原因是:
1,他们都是可选项,不是所有主机都可以实现的;
2,如果你所发送的包中对某个选项进行了设置,只要目标支持,那么目标主机就返回此选项;
3,可以在包中设置所有的选项进行测试。
例如:Nmap在每个探测包中设置所有的选项来进行测试:
Windows Scale=10;NOP;Max Segment Size=265;Timestamp;End of Ops;
从返回的的包中查看这些选项,就知道了什么系统支持他们。

还有一种被动操作系统识别方法,就是监控不同系统之间网络包的情况来判断目标的操作系统类型,siphon被用来进行这方面的测试,这个工作原理如下:
签名:
主要TCP的四个字段判断:
1,TTL:出站的包的存活时间;
2,Window size:窗口大小;
3,DF:是否设置了不准分片位;
4,TOS:是否设置了服务类型。
综合这些信息可以大概判断出目标的系统,但不能%100。
四,查点
利用查点技术可以得到比前面讲的更多更具体的有用信息,例如:帐户信息等。
1,Windows系统查点技术
利用NetBIOS规则,首先介绍NetBIOS,NetBOIS位于TCP/IP之上,定义了多个TCP和UDP端口。
—-TCP
(1),139:nbsession:NetBOIS会话。
例如:net use \\IP\ipc$ ” ” /user:” “.
(2),42:WINS:Windows Internet名字系统(UDP端口也是42)。
—-UDP
(1)137:nbname:名字查询。
例如:nbtstat -A IP //03中显示的不是计算机名就是用户名
(2)138:nbdatagram:UDP数据报服务
例如:net send /d:domain-name “Hello”
得到用户名利用到了IPC$空会话和sid工具。sid工具由两个小工具组成:user2sid和sid2user.user2sid获得用户名或组名的sid;sid2user则是输入一个sid而获得相应用户名的和组名,sid就是在创建用户时而创建的,相当于UNIX系统下的UID,WIN系统权限的检查就是通过对SID的检查的。一个sid是由一长串数字组成的,其中包括两个部分,前一部分用来唯一标识一个域,后一部分唯一标识一个用户名,这部分数字被称作rid,既相对标识符,rid有一定的规律,其取值总是从500开始的,超级管理员的rid总是500,而GUEST用户的rid总是501;而新建立的帐户的rid从1000开始。
具体的步骤:
c:\net use \\IP\ipc$ ” ” /user:” “
c:\user2sid \\IP guest //得到了SID的前半部分
s-1-5-21-1123561945-1580818891-1957994488-501
s是sid的前缀,后面跟的是1表示版本号,5用于标识发放sid的授权实体,5指NT/2000。21-1123561945-1580818891-1957994488唯一地标识域和工作组。不同的用户只是最后的相对标识符不一样。现在用sid2user查询系统的用户名了:
c:\sid2user \\IP 5 21 1123561945 1580818891 1957994488 500
name is cookie
domain is condor
c:\sid2user \\IP 5 21 1123561945 1580818891 1957994488 1001

SNMP查点:通过默认的管理群字符串PUBLIC读取特性,可以得到系统的一些信息,具体有:接口表,路由表及ARP表,TCP表和UDP表,设备表和存储表,进程表和软件表,用户表,共享表。
SNMP工具,snmputil.exe
例如:
1,或者网络接口数目:
c:\snmputil get localhost public .1.3.6.1.2.1.2.1.0
2,显示所有的SNMP变量内容
c:\snmputil walk localhost public .1.3
2UNIX类系统的查点技术
1,$showmount -e www.target.com //前提2049号端口开着(NFS)
2,$finger @www.target.com //还有rusers
3, $telnet www.target.com 25
vrfy root //证实是否有root
expn adm
quit
五,具体的分析漏洞
针对特定目标进行了以上分析后,总结出最好的入侵思路,选择入侵工具,做好入侵的准备工作是必须,有时入侵时间的选择也是很重要的,因为会涉及到正常的公司网络的正常通信,甚至会使恶意的网络在你入侵测试就发生了,最直接的漏洞利用方法,我认为是溢出漏洞了,因为他直接就可以得到对方的系统权限,返回一个和在本地一样的SHELL环境,此时无所不能:
溢出攻击的分类有:
1,WINDOWS下的和UNIN下的
一般原理,就用户提交的参数范围超过了在内存中保存的本地变量的范围,而程序或者系统并没有对输入的参数进行合理的长度检查,导致了被调用函数的返回地址被覆盖,如果用一个跳转到我们提交的shellcode的地方的地址代替,那么我们的shellcode就可以运行,成功得到了目标的系统权限。
此外还

美国公认顶尖黑客榜

0

分类 : 业界动态 | 发表时间 20-02-2006

转自:neeao
姓名:理查德.斯托曼(Richard Stallman)
个人网址:
http://www.undergrad.math.uwaterloo.ca/agray/meme.html
简历:他从1971年从哈佛大学毕业后供职于麻省理工学院人工智能实验室,稍后设立了自由软件基金(free software foundation)。1969年在IBM的纽约科技中心第一次接触计算机时他就产生了浓厚的兴趣,时年16岁。后来,斯托曼辞去了麻省的工作后留在了麻省的一个独立的研究室从事研究,在那儿他开发出一套名为gnu的全新操作系统,为此获得了以美国传奇名将麦克阿瑟名字命名的麦克阿瑟基金24万美元天才将。

网名:Phiber Optik
真名:马克.阿贝尼(Mark Abene)
个人网址:
http://www.levity.com/julian/phiber.html
简历:作为一个激进组织的创始人之一,阿贝尼激励了全美成千上万的青年人“钻研”国内电话系统的内部工作原理,为此一项联邦裁决试图以“散布非法信息给其他黑客”为由判他入联邦监狱一年,但该项裁决最后不了了之。回家之日,众多拥护者拥进了曼哈顿俱乐部出席向他致敬的“归来聚会”。聚会后不久,纽约一杂志将他作为100名最杰出的纽约青年予以表彰。他第一次接触电脑是得益于在纽约某公司电子部门工作的母亲,从母亲那里他接触到了苹果II,他拥有的第一台电脑是花完了大功近半年时间所攒下的钱所买的radio shack trs-80(托什-80)型。

网名:RTM
真名:罗伯特.莫里斯(robert morris)
个人网址:http://www.eg.bucknell.edu/kapolka/cs240/morris/faq
简历:此君是闻名全世界的“莫里斯蠕虫病毒”的缔造者。这位美国国家计算机安全中心(隶属于美国国家安全局)首席科学家的儿子,康奈尔大学的高材生,在1988年的第一次工作过程中戏剧性的散播出了网络蠕虫病毒后,“Hacker”一词开始在英语中被赋予了特定的含义,在此次的事故中成千上万的电脑收到了影响,并导致了部分电脑崩溃,此次严重的突发事件同时让大家意识到了防治网络病毒传播的重要性。

网名:condor
真名:凯文.米特尼克(Kevin Mitnick)
个人网址:
http://www.260.com/kevin
(这个人我不想多说,我想你比我更清楚,呵呵他可是我唯一的偶像啊,我这儿有他的一切详细资料)

网名:Dark Dante
真名:凯文.鲍尔森(kevin poulsen)
个人网址:
http://www.catalog.com/kevin
简历:1990年鲍尔森为了让自己成为洛杉矶地区的kiis-fm电台的第102位呼入者,把当地的所有电话线统统给占用了,他也曾因为自己的勤奋和努力而获得保时捷944 s2跑车。他承认曾闯进计算机系统非法获取过由联邦调查局秘密操作的商业机构的名字。

网名:Julf
真名:约翰.黑尔森尤斯(Johan Helsingius)
个人网址:
http://www.cyberpass.net/securty/pe…essrelease.html
简历:黑尔森尤斯于1996年关闭自己的小商店后开发出了世界上最流行的,被称为“penet.fi”的匿名回函程序,他的麻烦从此开始接踵而至。其中最悲惨的就是sceintology教堂抱怨一个penet.fi用户在网上张贴教堂的秘密后芬兰警方在1995年对他进行了搜查,后来他封存了这个回函程序。

网页版苹果操作系统

0

分类 : 技术文摘 | 发表时间 14-02-2006

这个网页完全就是一个Mac OS的拷贝,iTunes,Finder,iPhoto,iChat等等的Mac OS的组建一个都不少,甚至你可以用iTunes听音乐,用iPhoto看主人的照片。

freeBSD初学者入门指南

0

分类 : 技术文摘 | 发表时间 09-02-2006

1.登录和退出

QUOTE:
登录时(当看到login:时)你必须是在系统安装时创建的用户或root超级用户.(在FreeBSD系统安装时就已经创建了root用户了 ,root用户遍历到系统的任何一个目录并且可以做任何事情,包括删除系统文件,所以一定要千万小心!)符号%和符号# 代表提示符(你的可能不一样),%表示普通用户,#表示超级用户root要退出系统(并且回到login:提示符),打命令:
# exit
对,打完命令后按回车,记住UNIX对命令是区分大小写的--也就是说,是exit,而不是EXIT.
要关闭机器,打命令:
# /sbin/shutdown -h now
要重启机器,打命令:
# /sbin/shutdown -r now
或者
# /sbin/reboot
你也可以按Ctrl-Alt-Delete来重启机器.
花少许时间练习一下.在最近发行的FreeBSD版本中这和/sbin/reboot是相等的,而且这比按reset按钮要好多了.你也不想重装东西,难道不是吗?
2.用Root权限添加用户


QUOTE:
当你第一次运行adduser时,它也许会创建一些缺省设置.在它建议你把sh作为缺省shell的时候,你可能想把csh作为缺省shell 而不是sh.否则直接按回车接受默认值.这些默认设置保存在/etc/adduser.conf中,一个可编辑文件.
# adduser
假如你创建了一个新用户jack全名为Jack Benimble.出于安全因素,给jack一个口令(即使周围的孩子也可能敲击键盘).当它问你是否想jack成为某个组的成员时,回答wheel
Login group is “jack”. Invite jack into other groups: wheel
这样就可以用户jack登录系统,再用su命令成为root超级用户.然后你就再也不会因为以root超级用户登录而受到责备了.

你可以在adduser中,通过按Ctrl-C退出随时退出.在创建结束时你可以批准该用户的生成或打n来取消创建该用户.你也许想创建第二个用户(jill?)这样当你编辑jack的登录文件时,就有一个热备份以免出错.一旦创建完用户,exit用exit回到login:提示符以jack登录.通常情况下,最好不要用root用户而是用普通用户完成大部分的工作.如果你已经创建了一个用户而且想使该用户能够用su命令成为root用户,你可以root登录然后编辑文件/etc/group,把jack加入第一行(wheel组),但是你首先要练习使用vi,文本编辑器--或简单些的编辑器,安装在最近发行的FreeBSD中的ee.

要删除一个用户使用rmuser命令.
3. 环顾四周


QUOTE:
以普通用户登录,四处浏览一下再使用一些命令试着访问帮助资源和FreeBSD的别的信息.以下是一些命令和它们的功能:
id 告诉你你是谁!
pwd 显示你在哪个目录--当前工作目录.
ls 显示当前目录的文件.
ls -F 显示当前目录的文件.执行文件的文件名后加*,目录名后加/,符号链接后加@.
ls -l 以长格式显示文件.
ls -a 列出隐藏点文件和其它文件.如果你是root用户,无须加-a选项,点文件将自动显示.
cd 改变目录.
cd .. 回到上级目录;注意cd后的空格.
cd /usr/local 到/usr/local目录下.
cd ~ 到以登录用户的主目录–例如/usr/home/jack.
试试cd /cdrom,然后ls, 看看你的CDROM是否mounted并且正常工作.
view filename
让你看一个文件(文件名为filename 不改变文件名).试试
view /etc/fstab.
:q :q退出.
cat filename
在屏幕上显示filename.如果文件太长你只能看到文件的最末部分,按ScrollLock 然后用上下键往回移;
ScrollLock键在看手册的时候也用的上.再按一下ScrollLock将退出屏幕滚动.你可以试一下cat你主目录的点文件cat .cshrc , cat .login , cat .profile.
你也许注意到了.cshrc文件中有关ls命令的别名(它们用起来很方便).你可以编辑.cshrc文件来创建一些别的别名.为了使系统的所有用户都能使用这些别名,把它们放到csh的系统配置文件/etc/csh.cshrc中.
4. 获得帮助信息


QUOTE:
这里有一些关于帮助的有用的资源.text表示你从键盘打入的东西--通常是一条命令或文件名.
apropos text 在whatis数据库中所有包含text的有关信息.
man text
text的手册.是Un*x系统文档的主要来源.man ls会告诉你使用ls命令的所有方法.按回车键在文本中移动,Ctrl-b往前翻一页,Ctrl-f往后翻一页,q或Ctrl-c退出.
which text 告诉你text命令所在的路径.
locate text 所有找到text字符串的路径.
whatis text
告诉你text命令主要用来干什么和它的手册页.打入whatis *将告诉你当前目录中的所有命令的有关信息.
whereis text 寻找text文件,并给出它的完全路径.
你可能想对一些常用命令如cat, more,grep,mv,find,tar,chmod,chown,date,和script使用whatis命令.more命令可以让你以DOS的方式一次只阅读一页内容. 例如: ls -l | more 或 more filename.符号*代表通配符--例如:ls w*将显示所有以w开头的文件名.

这些命令是不是并不太有效?locate和whatis命令都取决于每星期重建一次的数据库.如果你不准备让你的机器在周末也运行的话(运行FreeBSD),你也许希望不时地每天、每星期、每月运行这些命令?现在,以root身份运行这些命令然后在运行下条命令之前指定一个结束时间.
# /etc/daily 输出省略
# /etc/weekly 输出省略
# /etc/monthly 输出省略
如果你等的不耐烦了,按Alt-F2到另一个虚拟控制台上并登录进去.实际上FreeBSD是一个多用户、多任务系统.不过这些命令在运行时出现的信息大概会在你的屏幕上显示一下;你可以打clear命令清除屏幕.一旦它们开始运行了,你可以看看/var/mai l/root和/var/log/messages着两个目录.

你是你自己系统的管理员,作为一个系统管理员或Unix系统的单用户,运行这些命令是最基本的.实质上,所有你须要已root身份做的事情就是系统管理.这种职责在那些又大又厚的Unix书里并没有得到很好的概括,这些书籍似乎花了很大空间用来说明w indows管理器的下拉菜单.系统管理方面的书你应该看看以下两本,

红封面的Evi Nemeth et.al.’s UNIX System Administration Handbook(Prentice-Hall, 1995, ISBN 0-13-15051-7)--the second edition,另外一本为aleen Frisch’s Essential System Administration (O’Reilly & Associates, 1993,ISBN 0-937175-80-3).我使用的是Nemeth的书.
5. 文本编辑


QUOTE:
配置系统的时候,一般都要编辑文本文件.大多数要编辑的都在/etc目录下,你需要使用su成为root才能更改这些文件.你可以使用方便的ee命令,但是长远考虑,vi值得学习./src/contrib/nvi/docs/tutorial目录下有一个出色的教程,如果你安装了的话;否则你可以从ftp.cdrom.com的 FreeBSD/FreeBSD-current/src/contrib/nvi/docs/tutorial目录下ftp过来.

在编辑文件之前,你应该先做个备份.假设你要编辑文件/etc/rc.conf.你只要用cd/etc到达/etc目录然后打命令:
# cp rc.conf rc.conf.orig
这样就把rc.conf拷贝为rc.conf.orig,稍后你可以把rc.conf.orig拷贝回rc.conf来覆盖源文件.但最好是先移动(重命名)然后拷贝回去:
# mv rc.conf rc.conf.orig
# cp rc.conf.orig rc.conf
因为mv命令保留了文件的原先日期和拥有者.你现在可以编辑rc.conf了.如果你要源备份,你只要mv rc.conf rc.conf.myedit
(假设你要保留你的编辑版本)然后用
# mv rc.conf.orig rc.conf
来恢复成以前的样子.
要编辑文件,打命令
# vi filename
用方向键在文本中来回移动.Esc(escape键)使vi进入命令模式.这儿有些命令:
x 删除光标所在处的字符
dd 删除整个一行(即使在屏幕上是折行)
i 在光标所在处插入文本
a 在光标所在处之后插入文本
一旦你打了i或a,你就可以键入文本了.Esc使你进入命令模式,然后你可以打:
存盘
然后继续编辑
q 存盘并退出
:q! 放弃存盘并退出
/text 移动光标到text处;/Enter (回车键)用来寻找下一个text
G 移动到文件最末
nG 到文件的第n行,n代表一个数字
Ctrl-L 刷新屏幕
Ctrl-b and Ctrl-f 朝前或朝后翻一屏,就象more和view一样

在你的主目录下用vi filename创建一个文件来练习一下如何添加、删除文本,保存文件,然后继续编辑.vi会带来一些惊奇,因为它的确相当复杂,有时候你会不经意的发出一条命令取得一些意想不到的效果.(一些人竟然会喜欢vi--vi比DOS EDIT强多了--去查查:r命令.)当你遇到麻烦时,多按几下Esc键以确保你在命令模式然后从那里继续下去,经常用存盘,还有在需要的时候用:q!退出重来一次.

现在你可以cd到/etc目录下,su成为root,用vi编辑文件/etc/group,加一个用户到wheel组这样这个用户就有享有root特权了. 在文件的第一行的末尾加一个逗号和用户名,按Esc,然后用q存盘退出.立即生效.(你没有在逗号之后加空格,对吗?)
6. 在DOS下打印文件


QUOTE:
在这一点上,你也许没有打印机,有个办法可以先从手册页建一个文件然后再把这个文件移到软盘,然后在DOS下打印.假设你想仔细阅读一下有关文件权限的文档(非常重要).你可以打命令man chmod.命令:
# man chmod | col -b > chmod.txt
会删掉格式代码然后把手册页发送到chmod.txt文件,而不是显示在屏幕上.现在你可以插入一张dos格式化好的软盘,su成为ro ot,然后输入命令:
# /sbin/mount -t msdos /dev/fd0 /mnt
这样就把软盘mount到了/etc目录下了.
现在(你没必要再用root了,输入exit回到刚才的用户jack)可以到刚才创建chmod.txt的那个目录然后把文件拷贝到软盘:
% cp chmod.txt /mnt
再用ls /mnt查看一下/mnt目录下的文件列表,应该能显示chmod.txt. 也许你很想将/sbin/dmesg输出到一个文件,可以输入命令:
% /sbin/dmesg > dmesg.txt
然后拷贝dmesg.txt到软盘./sbin/dmesg是系统的启动日志,最好能了解它的内容,因为它能告诉你系统在启动的时候都找到了什么硬件.如果你想向freebsd-questions@freebsd.org或一个USENET组--象FreeBSD找不到我的磁带机,我该怎么办?--回答问题的人总是想先知道dmesg的内容.
现在你可以将软驱从FreeBSD卸掉(用root)并取出软盘:
# /sbin/umount /mnt
然后重启机器到DOS.把这些文件copy到一个DOS目录,用诸如DOS EDIT,Windows Notepad或Wordpad,或一个字处理器打开上述文件,做一些小小的改动,然后存盘,再象平常一样在DOS或Windows下打印出来.希望一切顺利!用dos的print命令打印手册文档效果最好.(把文件从FreeBSD拷贝到mount好的dos风区要冒一些风险.)

要从FreeBSD下打印首先要牵涉到在/etc/printcap目录下创建合适的条目和在/var/spool/output目录下创建相应的脱机目录 .如果你的打印机在lpt0上(即dos下的LPT1),你只须到/var/spool/output目录然后用mkdir lpd命令(用root)建一个lpd目录(如果该目录原先不存在的话).接着当系统启动的时候如果打印机电源接通的话,打印机会有反应,并且lp或lpr命令应该能够向打印机发送一个文件.无论文件是否打印取决于它的配置,在FreeBSD手册里有详细介绍.
7. 其他一些常用命令


QUOTE:
df 显示磁盘空间和安装了的文件系统.
ps aux 显示正在运行的进程.ps ax是窄格式.
rm filename 删除filename.
rm -R dir 删除一个目录,包括所有子目录--小心!
ls -R
显示当前目录和所有其子目录的文件;我用的不大一样,用ls -AFR > where.txt,可以在我找到更好的查找文件的方法之前得到/目录和(分别的)/usr目录下所有文件的列表.
passwd 修改一个用户(或root)的口令
man hierUnix 文件系统上的手册
在/usr或任何别的目录下使用find命令来查找文件:
% find /usr -name filename
你可以用在filename里使用*通配符(应该加在引号里). 如果你告诉find到/目录而不是/usr目录下查找文件,它会到所有安装好的文件系统包括CDROM和dos分区中去查找文件.

关于Unix命令和使用工具,一本比较好的书是Abrahams & Larson, Unix for the Impatient (2nd ed., Addison-Wesley, 1996).在Internet上也有很多Unix信息.看看Unix Reference Desk.
8. 下一步


QUOTE:
现在你有了编辑工具并且知道如何遍历系统,因此你可以运行任何你想要的东西.在FreeBSD的站点上和FreeBSD手册上(很可能在你的硬盘上)都可以找到大量的相关信息.同时在Walnut Creek CDROM和它的站点上也可以找到大量的应用程序包.使用手册已经告诉你如何添加这些程序包(添加程序包的时候该包必须存在 ,然后用pkg_add/cdrom/packages/All/packagename,packagename表示包的文件名).在下列目录及文件中可以找到光盘上有关每个程序包简要说明的一张列表:cdrom/packages/index,cdrom/packages/index.txt,和cdrom/ports/index.更详细的说明可以在/cdrom/ports/*/*/pkg/DESCR文件里找到,前后两个*分别代表程序所属的类别和程序名.

如果你不能理解手册上所说的关于如何从cdrom上安装程序包的话,下列步骤通常可以行的通:

找一个你要的包,比如kermit.存放在光盘上的某个目录.用下列命令把该子目录拷贝到/usr/local目录下(供所有用户使用的软件最好都放在这):
# cp -R /cdrom/ports/comm/kermit /usr/local
这样/usr/local/kermit子目录就包含了是光盘上kermit子目录下的所有文件.下一步,如果/usr/ports/distfiles不存在的话就用mkdir把这个目录建起来.现在到/cdrom/ports/distfiles文件里查找一下你所要的程序包的名字.然后包相关的安装文件拷贝到/usr/ports/distfiles目录下;在最近的新版本中你可以跳过这一步,FreeBSD会自动完成这一步.对kermit来说,没有d istfile.然后cd到包含Makefile的/usr/local/kermit子目录下,打命令:
# make all install
在这一过程中,如果系统在/usr/ports/distfiles目录中找不到相关的压缩文件的话,它就会ftp去下载该文件.如果你没有联网并且该文件不在上述目录下的话,你得用另外一台机器来获得该文件,然后再把它从软盘或dos分区拷贝到/usr/ports/distf iles下.阅读一下Makefile(用cat或more命令)看看应该到哪里(master distribution site)下载、文件名是什么.下载到了dos下后文件名会缩短,你把它放到/usr/ports/distfiles下后得把文件名改为原来的(用 mv命令),这样在安装的时候,系统就能找到这个文件了.(用二进制模式下载!)然后回到/usr/local/kermit目录,到有Makefil e的目录,打make all install.

安装程序包的时候可能碰到的另外一件事就是需要事先安装一些别的应用程序.如果安装过程停下来说找不到unzip或别的什么的话,你就必须先安装unzip的程序包然后才能继续. 

一旦安装完毕,打rehash命令让FreeBSD重新读一下该路径下的文件,这样它就知道目录下都有些什么.(如果当你用whereis或w hich命令时出现很多路径找不到的信息的话,你得在你的主目录下的.cshrc文件中path描述后添加一部分.出于安全考虑,Unix中的path除了当前目录不在path中(默认),别的和DOS下的path都是一样的,要运行不在path中的当前目录的命令,要在命令前打./才能使命令执行,斜杠后不能有空格.)
< br> 也许你想从Netscape的ftp站点上得到最新版的Netscape.(Netscape必须运行在X Windows系统上.)现在有FreeBSD版本了,仔细找找.只要运行 gunzip filename和tar xvf filename,把执行文件移到/usr/local/bin或其它一些存放执行文件的地方,rehash,然后把下列行加到每个用户主目录下的.c shrc文件中或者(更简

将消逝的十大热门技术

0

分类 : 业界动态 | 发表时间 22-01-2006

还记得推送技术(Push technology)吗?记得Web虚拟现实吗?或者Microsoft Bob吗?一些概念也许最好留给历史。在信息高速公路两旁散落着很多概念,这些概念曾经听起来前程远 大,但还没有引发一场革命就从IT界的视线中消失得无影无踪。
还需要例子吗?不用多找,这样例子比比皆是。《InfoWorld》推出本应成为“10大”,但却从未真正成功的热门技术。但谁又知道呢,如果有合适的人留意的话,其中的一些梦想可能会变为现实。

大型机之死

在Windows 3.1发布之前,专家们就敲响了古老大型机的丧钟。十多年以后,用户当然不用再温顺地找到大型机的主管,以得到使用大型机的许可。但数据中心里的这些笨重的大箱子还远没有死亡。

上世纪90年代,许多企业开始实施IT项目,以将应用从大型机迁移到更廉价、现代化的硬件上。可惜,其中的很多项目仍停留在日程表上,或被完全放弃了。

   事实上,Web应用等一些大型机应用复制起来相当困难,且迁移数据的费用就像天文数字。此外,还有重新培训费用、软件许可费用以及宕机的业务风险。尽管迁移的想法很好,但大型机仍在运行。

值得赞扬的是,IBM公司在这些大家伙上做了很多事情,而不仅是维持现状。该公司最新的大型机硬件产品线(具有讽刺意味的是以恐龙为名称的),除了支持传统的z/OS软件外,甚至支持Linux和Java。

那么,那些没有放弃大型机的客户是否会发大财?也许――如果用来支付他们的租用费的资金数额不小的话。不过,在最后一个这类应用停止使用前,我们认为有关大型机完蛋的报道太夸大其词了。

Java无处不在

   从诞生之日起,Java就打算征服世界。由于高度面向对象,Java比以前的语言更高雅。人们可以编写一次Java程序,它就可以到处运行。它速度快、可靠、安全……它可以带来人们希望从一种开发工具上得到的任何东西。

要达到如此之高的目标,Java实际取得的成功的确令人难以置信。但其令人失望之处同样难以忽视。

   Applet是Java的第一个失败。宏媒体(macromedia)抢走了富媒体(rich-media)市场,把客户机端Java贬到了跨平台实用程序和管理工具的小众市场。Java语言最终在服务器端找到了用户。然而此时,许多年来不断变化的SDK和难以捉摸、常常流产的API玷污了Java曾经高雅的设计,令新信徒们感到困惑,使得与以前版本的兼容性变得毫无希望。

    Java 2给我们带来了Enterprise Java。毫无疑问,它是第一个成熟的Java版本。但是,许多机构仍偏爱普通的服务器小程序(servlet),而不喜欢被认为是J2EE王冠上的宝石的复杂EJB架构。同时,那些一头扎进J2EE怀抱的人,基本上牺牲了Java编写一次、随处运行的承诺,去换取应用服务器的专有扩展。目前,随着坚定的开放源代码开发人员转到Microsoft公司的C#等竞争性技术的旗下,Java获得世界统治地位的机会之门可能很快就会关闭。

移动宽带

  4年前经济全面衰退时,美国移动电信公司宣称通过3G网络提供的无线宽带即将面世。但业界对部署费用高昂的3G不感兴趣。相反,利用其在传输语音所需要的基础设施升级,运营商推出形形色色的所谓2.5G解决方案的缩写词。但是,所取得的速度与其说是接近真正的宽带,不如说是更接近拨号――尽管Sprint和Qualcomm喜欢将自己的技术称为“3G第一阶段”。

   谢天谢地,移动宽带列车终于就要进站了。Verizon公司已向美国6个大城市地区部署了EvDO(演进、优化的数据)服务(具有300Kbps到500Kbps的下行数据速率),并计划在2005年年底时覆盖全美国。Sprint将是下一家公司,尽管它在EvDO部署上落后于Verizon。

  同时,Cingular Wireless公司从对AT&T Wireless的收购中继承了UMTS(通用移动电信系统)技术。UMTS速度比EvDO慢,不过也在美国6大城市推出。但为了取得高于EvDO的速度,Cingular可能将成为第一家利用低时延的HSDPA(高速数据分组接入)技术的运营商。

需要提醒的是,在所有这几项服务上,用户共享基站带宽。因此,3G数据变得越普及,对性能潜在影响就越大。

语音识别

   早在上世纪60年代,人们就已开始利用语音识别技术来控制计算机――至少在科幻小说里如此。然而有趣的是,就技术而言,电影《星际旅行》中计算机的语音驱动UI(用户界面)可能并没有那么遥不可及。

Dragon Naturally Speaking和IBM ViaVoice等字典软件,使计算机将语音转换为文本的能力上有了巨大的改进。同时,VoiceXML和SALT(语音应用语言标记)等基于XML的标准,使企业比以往更容易将语音识别功能集成到现有应用基础设施中。

  2004年3月,Microsoft语音服务器部经理James Mastan宣布说:“我们的目标是让语音识别技术成为主流。”你从Microsoft得到的与其说是主流技术,不如说是某种保证。目前,尽管Speech Server 2004已推出有一年了,但我们大多数人仍经常使用鼠标而不是麦克风。

  也许,真正通用的语音UI与人类优先考虑的另一件事情相比处于次要位置:安静。想像一下整个办室中的工作人员都向桌面PC大声发出命令产生的噪音吧。在我们解决这个问题之前,语音控制可能仍将保有电信、医疗保健、伤残人员和联邦太空飞船等小众市场。

Microsoft Passport

在推出五年后,Passport(即Microsoft的单一登录方案)日趋没落,虽还没有终结。例如,Microsoft仍在使用它。

所有人都记得Passport。你可能不记得的是:它曾被设想为一种联邦身份模型:Microsoft的.Net Web服务大业(最终的名称为HailStorm)的认证基础。不幸的是,尽管董事长兼软件总设计师Bill Gates大声为Passport叫好,但一场风暴马上就要来临。

依赖于“可信网络”的Passport,用户可以利用单一登录和口令,无需重新输入敏感的个人数据,就可跨网站旅行。然而,信赖是一种脆弱的东西。对Passport进行挖地三尺调查的开发人员和隐私观察家对自己的发现感到惊慌。

在Passport走上崎岖之路的两年后,Windows测试网站Bugtoaster.com报告发现一个让黑客能够偷窃Passport账户所有者的用户名和口令的OS设计缺陷。2002年8月,美国联邦贸易委员会命令Microsoft加固安全“不足之处”,宣称该公司在未通知用户的情况下采集数据。

紧接着就有了来自Microsoft的坚决的承诺,但是损失已造成了。Passport的采用率直线下降,Monster和eBay等金牌合作伙伴退缩了。去年,Microsoft撤下了参与站点的在线目录。

改进Internet

我们都知道Internet远非完善。IP的寻址问题被讨论了一次又一次,但是,Ipv6在美国的广泛采用似乎没有一点离我们越来越近的样子。但IP地址的短缺并不是互联网工程技术人员正在解决的惟一问题。

安全是萦绕在所有人脑海里的问题。人们建议在全互联网范围采用端到端的加密,但是并没有出现朝这个方向前进的行动。2001年,当前美国计算机安全“沙皇”Richard Clarke谈到发生“数字
珍珠港”事件可能性时,他的警告没有引起多少人的注意。

再往前追溯,1992年3月,IETF第一次证明了利用IP多播技术提供广播服务的潜力。10多年以后,即使我们已经看到了消费者对多媒体广播和多媒体流的兴趣爆炸式增长,与专用研究网上的情况形成显明对比的是,目前仍没有一种在Internet上进行大规模多播的可靠方法。在这方面,Internet2又如何呢?人们声称建设Internet2的目的是为了部署“用于研究和高等教育的高级网络应用和技术,以加快创建明天Internet的速度。”那么,准确地说,何时才算“明天”呢?

当然,基础设施升级是阻碍互联网发生重大变革的巨大障碍。互联网变得越大,新技术普及达到实际应用的规模就越难。但是,我们难道不需要从某个地方开始吗?

无纸化办公

   听起来可能十分诱人,但是,正如冷聚变和苦杏仁苷癌症疗法一样,无纸化办公室是20世纪最大的玩笑之一。它所展现的美好前景是:技术将淘汰基于纸张的记录;凭借计算机、电话以及其他形式的电子通信技术,办公室工作人员或经理们所需要的每一比特(数量单位)的数据都在他们的指头尖上。

  事实上,早在上世纪80年代发生PC革命之前,无纸化办公室的概念就提出来了。D. Roosevelt总统的科学顾问Vannevar Bush在上世纪30年代初首次详细论述的Memex,被认为是除科幻小说之外,对“未来办公室”的第一个著名说明。尽管是幻想,但由于Memex是在Internet时代之前,依赖微缩胶片和邮政服务交换信息,同样不切实际。

  60年后,无纸化办公室仍是个白日梦。如果有什么区别的话,那就是近些年发明的技术让产生纸张文件变得毫不费力。集扫描、复印、校对和电子邮件功能于一身的多功能打印机是办公室技术中最热门的物件。

在人们发现在明亮的显示屏上阅读如同在纸张上阅读一样愉悦前,无纸化办公室仍将像独角兽那样难以捉摸。更不要说纸张还兼有以下重要作用:没有什么东西能像一本硬皮报告那样,可以掷地有声地摔在会议室桌子上。

语义Web

   假如你是Web发明人,你打算拿什么作为加演节目呢?假如你是Tim Berners-Lee,你试图把它做得更好一点。

Berners-Lee推出了他的下一个成果,即所谓的语义Web,其目的是解决在线信息组织的基本问题。Web将信息孤岛连接起来,构成一条世界各地的人都可访问的巨大网络。可是,这是一种无组织的连接:人类可以理解,但自动化系统理解起来非常困难。

   语义Web旨在利用元数据解决这个问题。利用专门为机器设计的新语言表示的元数据描述网页内容。其最终目标是使搜索引擎、自动代理和其它内容分类工具,能够更加容易地找到人们所需要的特定信息。

  这是个很好的创意。在1998年9月Berners-Lee发表第一张路线图几年后,语义Web发展成为羽翼丰满的W3C机构,并在媒体上得到广泛讨论。但是,除了研究应用外,实际应用的例子似乎距我们很远。

但我们应当感到吃惊吗?最终,语义Web的真正思维变迁可能不是技术,而是将Web视为一所图书馆――而不是一种“新型电视”――的想法。

人工智能

   1956年,人工智能(AI)一词诞生于Dartmouth学院。在此后的20或30年间,它发展成为一个巨大的产业,出现了数不清的研究项目,探索其各种可能性。但现在,它似乎要消失得无影无踪了。

   实际上,AI由三个主要分支组成:KBS(基于知识的系统)、RBS(基于规则的系统)和ANN(人工神经网络)。到目前为止,只有RBS在商界中生存了下来,通常以BRMS(商业规则管理系统)的形式出现。

  这一领域中的大型项目已演变为大型系统,几乎可做开发人员想做的所有事情。问题在于,掌握所有阴谋诡计需要很多年时间;等到学会后,又出现了新系统需要学习掌握。

  用户和厂商将太多的时间用在了比较标准基准上,而不是花时间设计真正代表真实世界问题的测试。BRMS存在的问题是,它将50%到70%的时间用于发现问题――在人们编写代码前,而大多数项目经理更喜欢立即的结果。

总而言之,与从未使BRMS超过第二阶段的大量尝试比起来,实在并没有多少真正的BRMS成功故事。这真的是AI要提供的最好东西吗?

B2B电子商务

随着网络经济开始在2000年降温,任何仍置身于.com竞赛的精明企业家都紧紧抓住B2B作为手中的王牌。下一代在线商务模式的热门时髦词是“非居间化”(disintermediation)――其含意就是砍掉中间人(仅此而已)。然而,利用Web来连接合作伙伴,以及想方设法在幕后完成交易,这并不是取得巨大成功的处方,只不过是消费者此前就面对一种电子商务模式。

   首先,让它运转起来所需要的Web服务等集成技术,在2000年根本没有准备就绪。其次,对于参与其中的供应方来说,没有太大的诱惑力――为什么要向B2B厂商付钱才能参加一场投标,而在这场投标战中,你却被迫降低价格,去竞争你认为已赢得的客户?最后,B2B的基本假设没有意识到:与消费销售领域不同,企业关系不仅仅只是以费用和可用性为基础的。

  不过,如果认为B2B行将就木,这还为时尚早。日益增长的SOA(面向服务的架构)和模块化应用市场可能会成为企业基础设施提供者的理想机会:如果他们这次能用一点现实主义来控制自己野心的话。

Linux的病毒起源、发展及分类

0

分类 : 技术文摘 | 发表时间 17-01-2006

  1996年的Staog是Linux系统下的第一个病毒,它出自澳大利亚一个叫VLAD的组织(Windows 95下的第一个病毒程序Boza也系该组织所为)。Staog病毒是用汇编语言编写,专门感染二进制文件,并通过三种方式去尝试得到root权限。 Staog病毒并不会对系统有什么实质性的损坏。它应该算是一个演示版。它向世人揭示了Linux可能被病毒感染的潜在危险。Linux系统上第二个被发现的病毒是Bliss病毒,它是一个不小心被释放出来的实验性病毒。与其它病毒不同的是,Bliss本身带有免疫程序,只要在运行该程序时加上 “disinfect-files-please”选项,即可恢复系统。

  如果说刚开始时Linux病毒向人们展示的仅仅是一个概念,那么,在2001年发现的Ramen病毒,则已经开始引起很多人的担心。Ramen病毒可以自动传播,无需人工干预,所以和1988年曾使人们大受其苦的 Morris蠕虫非常相似。它只感染Red Hat 6.2和7.0版使用匿名FTP服务的服务器,它通过两个普通的漏洞RPC.statd和wu-FTP感染系统。

  表面看来,这不是一个危险的病毒。它很容易被发现,且不会对服务器做出任何有破坏性的事情。但是当它开始扫描时,将消耗大量的网络带宽。

  从1996年至今,新的Linux病毒屈指可数,这说明Linux是一个健壮的具有先天病毒免疫能力的操作系统。当然,出现这种情况,除了其自身设计优秀外,还有其它的原因。

  首先,Linux早期的使用者一般都是专业人士,就算是今天,虽然其使用者激增,但典型的使用者仍为那些有着很好的电脑背景且愿意帮助他人的人,Linux 高手更倾向于鼓励新手支持这样一种文化精神。正因为如此,Linux使用群中一种倾向就是以安全的经验尽量避免感染病毒。其次,年轻,也是Linux很少受到病毒攻击的原因之一。事实上,所有的操作系统(包括DOS和Windows)在其产生之初,也很少受到各种病毒的侵扰。

  然而, 2001年3月,美国SANS学院的全球事故分析中心(Global Incident Analysis Center——GIAC)发现,一种新的针对使用Linux系统的计算机的蠕虫病毒正通过互联网迅速蔓延,它将有可能对用户的电脑系统造成严重破坏。这种蠕虫病毒被命名为“狮子”病毒,与Ramen蠕虫病毒非常相似。但是,这种病毒的危险性更大,“狮子”病毒能通过电子邮件把一些密码和配置文件发送到一个位于china.com的域名上。Dartmouth学院安全技术研究所工程师威廉·斯蒂恩斯说:“攻击者在把这些文件发回去之后就可以通过第一次突破时的缺口再次进入整个系统。这就是它与Ramen蠕虫病毒的不同之处。事实上,Ramen病毒是一种比较友善的病毒,它在侵入系统后会自动关闭其中的漏洞,而这个病毒却让那些漏洞敞开并开辟新的漏洞。以至于如果你的系统感染了这个病毒,我们不能百分之百确信这个系统有挽救的价值,更加合理的选择很有可能是转移你的数据并且重新格式化硬盘。”

  一旦计算机被彻底感染,“狮子”病毒就会强迫电脑开始在互联网上搜寻别的受害者。不过,感染“狮子”病毒的系统少于感染Ramen病毒的系统,但是它所造成的损失却比后者大得多。


  随着Klez病毒在Linux平台上的传染,防毒软件厂商开始提醒我们微软的操作系统不再是唯一易受病毒攻击的操作系统了。即使Linux和其他一些主流 UNIX平台的用户可能不是微软捆绑应用软件的大用户,不可能通过这些软件造成病毒的泛滥,Linux和UNIX仍然有它们自身并不引人注目的脆弱点。除了Klez以外,其他Linux/UNIX平台的主要威胁有:Lion.worm、OSF.8759病毒、Slapper、Scalper、 Linux.Svat和BoxPoison病毒,这些都很少被提及。

  病毒的制造者是一些精通编写代码的黑客,他们远比那些胡乱涂改网站却对编写病毒知之甚少的黑客要危险。一个被黑掉的网站可以很快修好,而病毒却更加隐蔽,会带来潜在的安全隐患,它会一直潜伏,直到给系统带来不可挽回的损害。

  另外,越多的Linux系统连接到局域网和广域网,就会有越多受攻击的可能,这是因为很多Linux病毒正在快速地扩散着。使用WINE的 Linux/UNIX系统特别容易受到病毒的攻击。WINE是一个公开源代码的兼容软件包,能让Linux平台运行Windows应用软件。 WINE系统特别容易遭受病毒的攻击,因为它们会使无论是对Linux的还是对 Windows的病毒、蠕虫和木马都能对系统产生威胁。

  Linux平台下的病毒分类

  可执行文件型病毒:可执行文件型病毒是指能够寄生在文件中的,以文件为主要感染对象的病毒。病毒制造者们无论使用什么武器,汇编或者C,要感染ELF文件都是轻而易举的事情。这方面的病毒如Lindose,当其发现一个ELF文件时,它将检查被感染的机器类型是否为Intel 80386,如果是,则查找该文件中是否有一部分的大小大于 2,784字节(或十六进制AEO),如果满足这些条件,病毒将用自身代码覆盖它并添加宿主文件的相应部分的代码,同时将宿主文件的入口点指向病毒代码部分。一个名为Alexander Bartolich的学生发表了一篇名为《如何编写一个Linux的病毒》的文章,详细描述了如何制作一个感染在Linux/i386的ELF可执行文件的寄生文件病毒。有了这样具启发性的、在网上发布的文档,基于Linux的病毒数量只会增长的更快,特别是自Linux的应用越来越广泛之后。

  蠕虫(worm)病毒:1988年Morris蠕虫爆发后,Eugene H. Spafford 为了区分蠕虫和病毒,给出了蠕虫的技术角度的定义,“计算机蠕虫可以独立运行,并能把自身的一个包含所有功能的版本传播到另外的计算机上。” (worm is a program that can run by itself and can propagate a fully working version of itself to other machines. )。在Linux平台下,蠕虫病毒极为猖獗,像利用系统漏洞进行传播的ramen,lion,Slapper……这些臭名远播的家伙每一个都感染了大量的 Linux系统,造成了巨大的损失。它们就是开放原代码世界的nimda,红色代码。在未来,这种蠕虫病毒仍然会愈演愈烈,Linux系统应用越广泛,蠕虫的传播程度和破坏能力也会随之增加。

  脚本病毒:目前出现比较多的是使用shell脚本语言编写的病毒。此类病毒编写较为简单,但是破坏力同样惊人。我们知道,Linux系统中有许多的以.sh结尾的脚本文件,而一个短短十数行的shell脚本就可以在短时间内遍历整个硬盘中的所有脚本文件,进行感染。因此病毒制造者不需要具有很高深的知识,就可以轻易编写出这样的病毒,对系统进行破坏,其破坏性可以是删除文件,破坏系统正常运行,甚至下载一个木马到系统中等等。

  后门程序:在广义的病毒定义概念中,后门也已经纳入了病毒的范畴。活跃在Windows系统中的后门这一入侵者的利器在Linux平台下同样极为活跃。从增加系统超级用户账号的简单后门,到利用系统服务加载,共享库文件注射,rootkit工具包,甚至可装载内核模块(LKM),Linux平台下的后门技术发展非常成熟,隐蔽性强,难以清除。是Linux系统管理员极为头疼的问题。

  病毒、蠕虫和木马基本上意味着自动化的黑客行为,也许被病毒攻击比被黑客攻击更可能发生。直接的黑客攻击目标一般是服务器,而病毒是等机会的麻烦制造者。如果你的网络包含了Linux系统,特别危险的是服务器,不要在作出反应

成功和失败的唯一区别是受到挫折时不放弃

0

分类 : 网络日志 | 发表时间 21-12-2005



IT业可以说是传奇人物的总汇处。许多人已经成为这个时代的偶像,然而更多的传奇人物湮没在IT业浩瀚的历史之中,毕竟这是一个更新迅速、十分健忘的行业。但是,有一个独特人物却值得人们关注,尽管现在他已经全然没有IT美丽的面纱,而常常被人视为暴富的政治家。

这个人一开始压根儿不知道IBM是什么,却很快成为IBM在美国西部销售额最高的人;这个人并不倾心于计算机本身,却在60年代初富有远见地创办了EDS,这个全球最大的计算机服务公司;这个从小为了多挣一分钱而绞尽脑汁的人,却一下子成了80年代IT业最富有的人之一。尤其是作为一个成功的企业家之外,他还是一个人人皆知的爱国主义者,象《第一滴血》中的兰博一样,他亲自带领一个营救队去营救关押在伊朗的两名EDS人质,冒险生涯还延伸到老挝;这还不算,1992年,正当共和党的布什和民主党的克林顿为总统席位角逐时,他打破了美国建国以来的传统历史,如同一匹黑马,代表无党派人士参加竞选。结果他的声威节节上升,民意调查的支持率一度达到19%,几乎与布什、克林顿并驾齐驱……

这家伙除了著书立作,还频频在电视上露面。有时看起来象慢条斯理的大学教授,有时则象一个善辩的鼓动家,煽动人们对现状的不满。虽然,最终没能创造奇迹,却已创造出不属于美国两党的第三股力量。他从不停止追求新目标,他儿子说:“许多人爬一座山就放弃了,但我老爸如果没有挑战,他会觉得不自在。”

如今看来,IT仅仅是扔在他身后的一座山峰而已。当乔布斯、比尔·盖茨这些后辈继续将IT业搅得天翻地覆时,他却将这些喧嚣扔在了身后,在一个他自认为更精彩、更广阔的舞台——政治上施展自己的身手。尽管如此,他已经创造了IT历史,并且改变了IT的面貌。“人生的道路就象一张互相交织的蜘蛛网,错综复杂”,他认为,“不管你如何计划,如何精心安排你人生的道路,你确实很难在这张蜘蛛网中找出一条最好的道路。人生真正的成功好像在于你能否适时地逮住一些突然出现的机会。”

这个人就是罗斯·佩罗,他以自己的经历精彩地证明了这套人生哲学。


在IBM工作期间,罗斯如鱼得水。很快,赚的钱比他的许多上级都多,于是上级就有意识限制他的任务。佩罗建议说,干脆少给他支付些佣金。令他惊讶的是,公司居然真的采纳了建议,给他的提成只有其他人的20%。结果,他很快成了地区销售冠军。1962年1月19日,他就完成了全年的销售定额。一年的活3周就干完了,对很多人来说,这种生活真舒服。但他讨厌闲逛,他想干更多的事。

他不但想干更多的事,还有很多好主意。当时计算机工业正在迅速崛起,功能、用途越来越多,技术越来越复杂。他就琢磨:IBM的顾客不仅需要硬件,而且还需要有人教他们如何使用,如何选择软件,如何安装综合系统……一言概之,他们需要当时还没有的计算机服务业!

“我已经稳固了自己的领土,这就像一个苹果园,我只要维护它们,然后每年就有收获。”结果,那年1月到6月,地区经理没有给他安排任何工作。他就重点思考这个新想法。

他热血沸腾,跑进IBM高层管理人员办公室,建议公司创造一个计算机服务部,他热情地请求:“我可以负责这个部门,一定能够经营好”。“没意思,那不是我们的市场,风险太大了”,他得到的是一盆凉水。

这天他实在闲得无聊,决定到一个理发店打发时间。他拿起一本《读者文摘》,偶然看到封底上的一句话:“大部分的人都过着安静但近乎绝望的生活”。这句话一下子照亮了他的思维。他决定改变人生,离开IBM,创建自己的公司。

他用妻子教书存下的1000美元开办起电子数据系统公司(EDS),专门从事计算机服务。1962年8月3日,兑换成现金的这张支票被镶在镜框里,从此就挂在他的办公室里。他自己在银行里也有一些钱,可以帮他支撑几个月。当时他觉得自己还有一条退路:海军一直想让他回去。但公司成立一个月后,海军的联系中断了,因为他已经32岁,超龄了,退路堵死了。

当时推销计算机服务实在是个新玩意,阻力可想而知。他联系的头77位顾客都直截了当地拒绝了。1962年10月,他联系的第78个客户终于有了突破。“这是一个转折点,当我完成这个项目后,我还完了所有的欠款,而且银行里有了10万美元。”“有些人愿意冒险,有些人不,我想这就是区别。除了坚持,没有任何秘诀。不停地打电话推销……在大多数情况下,成功和失败的区别就是受到挫折时不放弃! ”


Born: 27 June 1930
Birthplace: Texarkana, Texas
Best Known As: Rich Texan who ran for president in 1992 and 1996

天啊!google adsense无法正常访问

0

分类 : 技术文摘 | 发表时间 17-12-2005

天啊!google adsense无法正常访问!
经过几分种郁闷的等待之后,出现了抱歉信息!!
The Google AdSense website is temporarily unavailable. Please try back later.
We apologize for any inconvenience.

Google AdSense の web サイトは一時的にご利用いただけません。後で再度お試しくださいますようお願いいたします。
お手数をおかけいたしますことをお詫びいたします。

Die Google AdSense-Website ist vorübergehend nicht verfügbar. Bitte versuchen Sie es später noch einmal.
Wir entschuldigen uns für eventuell enstandene Unannehmlichkeiten.

Le site Google AdSense est temporairement indisponible. Veuillez réessayer plus tard.
Nous vous prions de nous excuser pour le désagrément occasionné.

El sitio web de AdSense de Google no se encuentra disponible en estos momentos. Por favor, inténtelo de nuevo más tarde.
Disculpe las molestias.

Google AdSense 网站暂时无法浏览。请您侍候再尝试。
对于造成您的不便我们感到抱歉。

Il sito AdSense di Google è temporaneamente non disponibile. La preghiamo di provare più tardi.
Ci scusiamo per il disagio.

De website van Google AdSense is tijdelijk niet beschikbaar. Probeert u het later opnieuw.
Onze excuses voor het eventuele ongemak.

Google AdSense Sayfası geçici olarak hizmet dışıdır. Lütfen, daha sonra tekrar deneyin.
Bu geçici sorundan dolayı özür dileriz.

O site do Google AdSense não está disponível no momento. Tente novamente mais tarde.
Pedimos desculpas pelo inconveniente.

The Google AdSense website is temporarily unavailable. Please try back later.
We apologise for any inconvenience.

Witryna programu Google AdSense jest chwilowo niedostępna. Prosimy spróbuj później.
Przepraszamy za wszelkie niedogodności.

Веб-сайт Google AdSense временно недоступен. Попробуйте, пожалуйста, еще раз через несколько минут.
Мы приносим свои извинения за причиненные неудобства.

Google AdSense webbplats är för tillfället inte tillgänglig. Försök igen senare.
Vi ber om ursäkt för eventuellt besvär.

Google AdSense-webstedet er ikke tilgængeligt i øjeblikket. Prøv igen senere.
Vi beklager ulejligheden.

Google AdSense 웹사이트를 일시적으로 사용하실 수 없습니다 . 나중에 다시 시도해 보십시오 .
불편을 끼쳐드려 죄송합니다 .

Google AdSense-webområdet er midlertidig utilgjengelig. Prøv igjen senere.
Vi beklager eventuelle problemer dette medfører.

Google AdSense 網站暫時無法流覽。請您侍候再嘗試。
對於造成您的不便我們感到抱歉。

A Google AdSense oldal jelenleg nem elérhető. Kérjük, látogasson vissza később.
Elnézést kérünk az esetleges kellemetlenségekért.

Google AdSense –sivusto ei väliaikaisesti ole saatavilla. Yritä myöhemmin uudelleen.
Pahoittelemme tämän aiheuttamaa hankaluutta.

Stránka Google AdSense je dočasně nedostupná. Zkuste to později.
Omlouváme se za způsobené nepříjemnosti.

Stránka Google AdSense je dočasne nedostupná. Skúste neskôr, prosím.
Ospravedlňujeme sa za spôsobené nepríjemnosti.

Google AdSense sučelje trenutno je nedostupno. Molimo Vas pokušajte docnije.
Ispričavamo se za neugodnosti.

PHP 4.1.0 – php.ini 全文翻译

0

分类 : 技术文摘 | 发表时间 06-12-2005

;;;;;;;;;;;;;;;;;;;
; About this file ;
;
; 关于这个文件
;
;;;;;;;;;;;;;;;;;;;
;
; This is the recommended, PHP 4-style version of the php.ini-dist file. It
; sets some non standard settings, that make PHP more efficient, more secure,
; and encourage cleaner coding.
;
;
; 这个是推荐的,PHP 4 版本类型的 php.ini-dist 文件,他设置了一些非标准的设置,他们使得
; PHP更加有效,更加安全,鼓励整洁的编码。
;
;
; The price is that with these settings, PHP may be incompatible with some
; applications, and sometimes, more difficult to develop with. Using this
; file is warmly recommended for production sites. As all of the changes from
; the standard settings are thoroughly documented, you can go over each one,
; and decide whether you want to use it or not.
;
;
; 这样做的代价是,某些应用程序可能在这样的配置下不兼容,在某些情况下,开发会更加困难。
; 使用这个文件是我门对建设站点的热心建议。每个标准设置的改变都有彻底的说明稳当,你可以
; 处理没一个,决定是否使用他们。
;
;
; For general information about the php.ini file, please consult the php.ini-dist
; file, included in your PHP distribution.
;
;
; 关于 php.ini 的一般信息,请参考 php.ini-dist 文件,包括你的 PHP 的说明
;
;
; This file is different from the php.ini-dist file in the fact that it features
; different values for several directives, in order to improve performance, while
; possibly breaking compatibility with the standard out-of-the-box behavior of
; PHP 3. Please make sure you read what’s different, and modify your scripts
; accordingly, if you decide to use this file instead.
;
;
; 这个文件和 php.ini-dist 的区别在于它给予了一些指示不同的值,来提高性能,同时可能破坏了
; PHP 3 的标准的 out-of-the-box 特性。
;
;
; – register_globals = Off [Security, Performance]
; Global variables are no longer registered for input data (POST, GET, cookies,
; environment and other server variables). Instead of using $foo, you must use
; you can use $_REQUEST["foo"] (includes any variable that arrives through the
; request, namely, POST, GET and cookie variables), or use one of the specific
; $_GET["foo"], $_POST["foo"], $_COOKIE["foo"] or $_FILES["foo"], depending
; on where the input originates. Also, you can look at the
; import_request_variables() function.
; Note that register_globals is going to be depracated (i.e., turned off by
; default) in the next version of PHP, because it often leads to security bugs.
; Read http://php.net/manual/en/security.registerglobals.php for further
; information.
;
;
; 全局变量不再注册输入的数据(POST,GET,cookies,环境变量和其他的服务器变量)。作为代替的是使用
; $foo, 你必须使用 $_REQUEST["foo"] ( 包括所有的通过请求传来的变量,也就是说,POST,GET,和
; cookies 变量)或者根据输入的来源使用指定的 $_GET["foo"],$_POST["foo"],$_COOKIE["foo"]
; ,$_FILES["foo"] (访问他们).同时,你可以查看 import_request_variables()函数。
;
; 注意,这个参数可能在下个版本去掉(默认为off),因为他经常引起安全 bugs.到
; http://php.net/manual/en/security.registerglobals.php
; 查看详细内容
;
;
; – display_errors = Off [Security]
; With this directive set to off, errors that occur during the execution of
; scripts will no longer be displayed as a part of the script output, and thus,
; will no longer be exposed to remote users. With some errors, the error message
; content may expose information about your script, web server, or database
; server that may be exploitable for hacking. Production sites should have this
; directive set to off.
;
;
; 设置这个指示为Off,在脚本执行期间发生错误时,不再将错误作为输出的一部分显示,这样就不会暴露给
; 远端用户。对于某些错误,错误信息的内容可能暴露你的脚本,web服务器,数据库服务器的信息,可能被
; 黑客利用。最终产品占点需要设置这个指示为off.
;
;
; – log_errors = On [Security]
; This directive complements the above one. Any errors that occur during the
; execution of your script will be logged (typically, to your server’s error log,
; but can be configured in several ways). Along with setting display_errors to off,
; this setup gives you the ability to fully understand what may have gone wrong,
; without exposing any sensitive information to remote users.
;
;
; 这个指示补充上面的。所有的发生在脚本运行期间的错误都会纪录在日志中(代表性的,记录在服务器的错误
; 日志中,但是可以配置不同的方式)。随着 display_errors 设置为 off,这个设置给你全面了解到底什么
; 发生错误的能力,而不会向远端用户暴露任何信息。
;
;
; – output_buffering = 4096 [Performance]
; Set a 4KB output buffer. Enabling output buffering typically results in less
; writes, and sometimes less packets sent on the wire, which can often lead to
; better performance. The gain this directive actually yields greatly depends
; on which Web server you’re working with, and what kind of scripts you’re using.
;
;
; 设置 4KB 的输出缓冲区。打开输出缓冲可以减少写的次数,有时减少线路发送包的数量,这样能提高性能。
; 这个指示真正得到的益处很大程度的依赖于你的工作的 WEB 服务器,以及你使用的脚本。
;
;
; – register_argc_argv = Off [Performance]
; Disables registration of the somewhat redundant $argv and $argc global
; variables.
;
;
; 禁止注册某些多于的 $argv 和 $argc 全局变量
;
;
; – magic_quotes_gpc = Off [Performance]
; Input data is no longer escaped with slashes so that it can be sent into
; SQL databases without further manipulation. Instead, you should use the
; function addslashes() on each input element you wish to send to a database.
;
;
; 输入数据不再被斜线转义,以便于无需更多的处理就可以发送到SQL数据库里面。作为代替,你可
; 以对每个要发送到数据库的输入元素使用 addslashes()函数。
;
;
; – variables_order = “GPCS” [Performance]
; The environment variables are not hashed into the $HTTP_ENV_VARS[]. To access
; environment variables, you can use getenv() instead.
;
; 环境变量不再进入 $HTTP_ENV_VARS[],你需要用 getenv()来访问环境变量。
;
;
; – error_reporting = E_ALL [Code Cleanliness, Security(?)]
; By default, PHP surpresses errors of type E_NOTICE. These error messages
; are emitted for non-critical errors, but that could be a symptom of a bigger
; problem. Most notably, this will cause error messages about the use
; of uninitialized variables to be displayed.
;
;
; 默认的,PHP 给出 E_NOTICE 错误类型,这些错误信息不是核心错误,但是可能是个更大错误的隐患。
; 大多数提醒是那些没有初始化变量引起的错误信息。
;
;
; – allow_call_time_pass_reference = Off [Code cleanliness]
; It’s not possible to decide to force a variable to be passed by reference
; when calling a function. The PHP 4 style to do this is by making the
; function require the relevant argument by reference.
;
;
; 在调用函数时,不可能决定强制传递变量的引用。PHP 4 里通过函数请求相关参数的引用来实现
;
>;

;;;;;;;;;;;;;;;;;;;;
; Language Options ;
;
;
; 语言配置
;
;
;;;;;;;;;;;;;;;;;;;;

; Enable the PHP scripting language engine under Apache.
;
;
; 允许在Apache下的PHP脚本语言引擎
;
;
engine = On

; Allow the tags are recognized.
;
;
; 允许 标记
;
;
short_open_tag = On

; Allow ASP-style tags.
;
;
; 允许 ASP 类型的 标记
;
;
asp_tags = Off

; The number of significant digits displayed in floating point numbers.
;
;
; 浮点数显示的有意义的数字(精度)
;
;
precision = 14

; Enforce year 2000 compliance (will cause problems with non-compliant browsers)
;
;
; 强制遵从 2000 年(会在不遵从的浏览器上引起错误)
;
;
y2k_compliance = Off

; Output buffering allows you to send header lines (including cookies) even
; after you send body content, at the price of slowing PHP’s output layer a
; bit. You can enable output buffering during runtime by calling the output
; buffering functions. You can also enable output buffering for all files by
; setting this directive to On. If you wish to limit the size of the buffer
; to a certain size – you can use a maximum number of bytes instead of ‘On’, as
; a value for this directive (e.g., output_buffering=4096).
;
;
; 输出缓冲允许你在主体内容发送后发送头信息行(包括 cookies),作为代价,会稍微减慢一点PHP
; 输出层的速度。你可以在运行期间通过调用输出缓冲函数来打开输出缓冲。你也可以通过设置这个
; 指示来对虽有的文件打开输出缓冲。如果你想限制缓冲区大小为某个尺寸,你可以使用一个允许最大
; 的字节数值代替 “On”,作为这个指示的值。
;
;
output_buffering = 4096

; You can redirect all of the output of your scripts to a function. For
; example, if you set output_handler to “ob_gzhandler”, output will be
; transparently compressed for browsers that support gzip or deflate encoding.
; Setting an output handler automatically turns on output buffering.
;
;
; 你可以重新定向脚本所有输出到一个函数。例如,你可以设置 output_handler 为 “ob_gzhandler”,
; 输出将会被明显的被压缩到支持 gzip 或 deflate 编码的浏览器。设置一个输出管理会自动打开
; 输出缓冲
;
;
output_handler =

; Transparent output compression using the zlib library
; Valid values for this option are ‘off’, ‘on’, or a specific buffer size
; to be used for compression (default is 4KB)
;
;
; 使用 zlib 库进行输出压缩,可以指定 off/on 或者用于压缩的缓冲大小
;
;
zlib.output_compression = Off

; Implicit flush tells PHP to tell the output layer to flush itself
; automatically after every output block. This is equivalent to calling the
; PHP function flush() after each and every call to print() or echo() and each
; and every HTML block. Turning this option on has serious performance
; implications and is generally recommended for debugging purposes only.
;
;
; 隐含的通知PHP的输出层在每个输出块后自己自动刷新。等同于在每个 print() 或者 echo()
; 和每个HTML块后面都调用 flush()函数。打开这个配置会引起严重的隐含执行,一般推荐在用于
; 调试目的时使用。
;
;
implicit_flush = Off

; Whether to enable the ability to force arguments to be passed by reference
; at function call time. This method is deprecated and is likely to be
; unsupported in future versions of PHP/Zend. The encouraged method of
; specifying which arguments should be passed by reference is in the function
; declaration. You’re encouraged to try and turn this option Off and make
; sure your scripts work properly with it in order to ensure they will work
; with future versions of the language (you will receive a warning each time
; you use this feature, and the argument will be passed by value instead of by
; reference).
;
;
; 是否允许在函数调用期间有强制参数以引用的形式传递的能力。这个方法不赞成使用,在将来的
; PHP和Zend版本里面可能不支持。鼓励的方法是在函数声明时指定哪个参数通过引用传递。鼓励你
; 尝试关闭这个参数,确认你的脚本能够正常运行,以便在以后版能里面正确运行(你会在每次使用
; 这个特性时得到一个警告,并且参数以值来传递,代替引用)
;
;
allow_call_time_pass_reference = Off

;
; Safe Mode
;
;
; 安全模式
;
;
;
safe_mode = Off

; By default, Safe Mode does a UID compare check when
; opening files. If you want to relax this to a GID compare,
; then turn on safe_mode_gid.
;
;
; 安全模式默认的在打开文件时进行 UID 比较检查,如果你想放宽他为GID比较,打开这个参数
;
;
safe_mode_gid = Off

; When safe_mode is on, UID/GID checks are bypassed when
; including files from this directory and its subdirectories.
; (directory must also be in include_path or full path must
; be used when including)
;
;
; 在安全模式,当包含如下目录和子目录文件时,绕过 UID/GID检查(路径必须在 include_path下面
; 或者在包含时使用完整路径
;
;
safe_mode_include_dir =

; When safe_mode is on, only executables located in the safe_mode_exec_dir
; will be allowed to be executed via the exec family of functions.
;
;
; 在安全模式下,只有给出目录下可以通过 exec 族函数执行
;
;
safe_mode_exec_dir =

; open_basedir, if set, limits all file operations to the defined directory
; and below. This directive makes most sense if used in a per-directory
; or per-virtualhost web server configuration file.
;
;
; 如果设置,则限制所有的文件操作都到下面给出的目录下。这个指示在每个目录,每个虚拟主机的web
; 服务器配置文件里给出更多的认识。
;
;
;open_basedir =

; Setting certain environment variables may be a potential security breach.
; This directive contains a comma-delimited list of prefixes. In Safe Mode,
; the user may only alter environment variables whose names begin with the
; prefixes supplied here. By default, users will only be able to set
; environment variables that begin with PHP_ (e.g. PHP_FOO=BAR).
;
; Note: If this directive is empty, PHP will let the user modify ANY
; environment variable!
;
;
; 设置某些环境变量可能是隐藏的安全缺口。这个指示包含一个逗号分割的前缀指示。在安全模式下
; 用户只能修改下面提供的为前缀的变量名字。默认,用户只能设置以 PHP_ 前缀开头的环境变量(
; 例如 PHP_FOO=BAR).
;
; 注意:如果这个设置为空,则 PHP 可以让用户修改任何环境变量。
;
;
safe_mode_allowed_env_vars = PHP_

; This directive contains a comma-delimited list of environment variables that
; the end user won’t be able to change using putenv(). These variables will be
; protected even if safe_mode_allowed_env_vars is set to allow to change them.
;
;
; 这个指示包含用逗号分割的不允许最终用户通过 putenv()修改的环境变量的列表。这些变量即使
; 在 safe_mode_allowed_env_vars 设置允许改变他们的情况下也被保护。
;
;
safe_mode_protected_env_vars = LD_LIBRARY_PATH

; This
directive allows you to disable certain functions for security reasons.
; It receives a comma-delimited list of function names. This directive is
; *NOT* affected by whether Safe Mode is turned On or Off.
;
;
; 这个指示用于在由于安全原因的情况下屏蔽某些函数。接受用逗号分割的函数名列表,这个指示不受
; Safe Mode 是否打开的影响。
;
;
disable_functions =

; Colors for Syntax Highlighting mode. Anything that’s acceptable in
; would work.
;
;
; 语法加亮模式的颜色,任何 正常工作的都可以接受
;
;
highlight.string = #CC0000
highlight.comment = #FF9900
highlight.keyword = #006600
highlight.bg = #FFFFFF
highlight.default = #0000CC
highlight.html = #000000

;
; Misc
;
; Decides whether PHP may expose the fact that it is installed on the server
; (e.g. by adding its signature to the Web server header). It is no security
; threat in any way, but it makes it possible to determine whether you use PHP
; on your server or not.
;
;
; 是否让服务器暴露 PHP(例如在 web 服务器头增加标记)。他不会有安全威胁,但是可以让你
; 检测一个服务器是否使用了 PHP.
;
;
expose_php = On

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;
;
; 资源限制
;
;

;;;;;;;;;;;;;;;;;;;

;
;
; 每个脚本最大执行的秒数
;
;
max_execution_time = 30 ; Maximum execution time of each script, in seconds

;
;
; 一个脚本最大消耗的内存
;
;
memory_limit = 8M ; Maximum amount of memory a script may consume (8MB)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;
;
; 错误处理和记录
;
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; error_reporting is a bit-field. Or each number up to get desired error
; reporting level
;
;
; 错误报告是一个位字段,每个数值代表错误报告的等级
;
;
; E_ALL – All errors and warnings
;
; 所有的错误和警告
;
; E_ERROR – fatal run-time errors
;
; 致命的运行期错误
;
; E_WARNING – run-time warnings (non-fatal errors)
;
; 运行期警告(非致命错误)
;
; E_PARSE – compile-time parse errors
;
; 编译期间解析错误
;
; E_NOTICE – run-time notices (these are warnings which often result
; from a bug in your code, but it’s possible that it was
; intentional (e.g., using an uninitialized variable and
; relying on the fact it’s automatically initialized to an
; empty string)
;
; 运行期间注意,一般是由于代码的 bug 引起的警告,但是很可能是故意这样的。例如使用没有初始化
; 的变量,依赖于他自动初始化为空的字符串。
;
; E_CORE_ERROR – fatal errors that occur during PHP’s initial startup
;
; 发生在 PHP 的初始启动阶段的致命错误
;
; E_CORE_WARNING – warnings (non-fatal errors) that occur during PHP’s
; initial startup
;
; 发生在 PHP 的初始启动阶段的警告(非致命错误)
;
; E_COMPILE_ERROR – fatal compile-time errors
;
; 致命的编译期间错误
;
; E_COMPILE_WARNING – compile-time warnings (non-fatal errors)
;
; 编译期间的警告(非致命的错误)
;
; E_USER_ERROR – user-generated error message
;
; 用户引起的错误信息
;
; E_USER_WARNING – user-generated warning message
;
; 用户引起的警告信息
;
; E_USER_NOTICE – user-generated notice message
;
; 用户引起的提醒信息
;
;
; Examples:
;
; – Show all errors, except for notices
;
; 显示所有错误,除了提醒
;
;error_reporting = E_ALL & ~E_NOTICE
;
; – Show only errors
;
; 只显示错误
;
;error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR
;
; – Show all errors except for notices
;
; 显示所有的错误(译者注:英文可能有错误)
;
error_reporting = E_ALL

; Print out errors (as a part of the output). For production web sites,
; you’re strongly encouraged to turn this feature off, and use error logging
; instead (see below). Keeping display_errors enabled on a production web site
; may reveal security information to end users, such as file paths on your Web
; server, your database schema or other information.
;
;
; 输出错误(作为输出的一部分)。对于成品网站,强烈建议关闭这个特性,使用下面错误日志代替。
; 在成品网站打开这个特性可能对最终用户暴露安全信息。例如 WEB 服务器的文件路径,数据库计划
; 或其他信息。
;
;
display_errors = Off

; Even when display_errors is on, errors that occur during PHP’s startup
; sequence are not displayed. It’s strongly recommended to keep
; display_startup_errors off, except for when debugging.
;
;
; 即使 display_errors 参数设置位 on,发生在 PHP 的启动顺序期间的错误也不会显示。
; 强烈建议保持 display_startup_errors 为 off,除非在调试阶段。
;
;
display_startup_errors = Off

; Log errors into a log file (server-specific log, stderr, or error_log (below))
; As stated above, you’re strongly advised to use error logging in place of
; error displaying on production web sites.
;
;
; 把错误写到一个日志文件里面(服务器指定日志,标准错误,或者后面的错误日志)。
; 根据上面的一致性,强烈建议使用错误日志代替web站点的错误显示。
;
;
log_errors = On

; Store the last error/warning message in $php_errormsg (boolean).
;
;
; 保存最后的错误/警告信息在 $php_errormsg(boolean)里面。
;
;
track_errors = Off

; Disable the inclusion of HTML tags in error messages.
;
;
; 屏蔽掉错误信息里面内含的HTML标记
;
;
;html_errors = Off

; String to output before an error message.
;
;
; 错误信息前输出的字符串
;
;
;error_prepend_string = “”

; String to output after an error message.
;
;
; 错误信息后输出的字符串。
;
;
;error_append_string = “”

; Log errors to specified file.
;
;
; 错误写进指定的文件
;
;
;error_log = filename

; Log errors to syslog (Event Log on NT, not valid in Windows 95).
;error_log = syslog

; Warn if the + operator is used with strings.
;
;
; 在对字符串用 + 操作符时给出警告
;
;
warn_plus_overloading = Off

;;;;;;;;;;;;;;;;;
; Data Handling ;
;
;
; 数据处理
;
;
;;;;;;;;;;;;;;;;;
;
; Note – track_vars is ALWAYS enabled as of PHP 4.0.3
;
; 注意,在 PHP 4.0.3 里面, track_vars 总是打开的。
;

; The separator used in PHP generated URLs to separate arguments.
; Default is “&”.
;
;
; PHP在产生URLs时用于分割参数的分割符。默认是 “&”
;
;
;arg_separator.output = “&”

; List of separator(s) used by PHP to parse input URLs into variables.
; Default is “&”.
; NOTE: Every character in this directive is considered as separator!
;
;
; PHP用于把输入的 URLs 解析为变量的分割符列表,默认是 “&”;
; 注意:这个指示的每个字符都被认为是分割符
;
;
;arg_separator.input = “;&”

; This directive describes the or
der in which PHP registers GET, POST, Cookie,
; Environment and Built-in variables (G, P, C, E & S respectively, often
; referred to as EGPCS or GPC). Registration is done from left to right, newer
; values override older values.
;
;
; 这个指示描述PHP注册 GET,POST,Cookes,环境变量和内部变量的顺序(分别对应于 G,P,C,E 和 S,
; 经常为 EGPCS 或者 GPC).注册从左到右,新的值覆盖旧的值。
;
;
variables_order = “GPCS”

; Whether or not to register the EGPCS variables as global variables. You may
; want to turn this off if you don’t want to clutter your scripts’ global scope
; with user data. This makes most sense when coupled with track_vars – in which
; case you can access all of the GPC variables through the $HTTP_*_VARS[],
; variables.
;
;
; 是否注册 EGPCS 变量为全局变量。如果你不想和用户数据混淆脚本全局范围,你可能想关闭他。
; 结合 track_vars 可以更加理性。它可以让你通过 $HTTP_*_VARS[] 访问所有的GPC变量。
;
;
; You should do your best to write your scripts so that they do not require
; register_globals to be on; Using form variables as globals can easily lead
; to possible security problems, if the code is not very well thought of.
;
;
; 你可以尽力书写不需要 register_globals 打开时的脚本。如果代码没有非常好的考虑是
; 使用来源于全局变量的表单数据很容易引起安全问题。
;
;
register_globals = Off

; This directive tells PHP whether to declare the argv&argc variables (that
; would contain the GET information). If you don’t use these variables, you
; should turn it off for increased performance.
;
;
; 这个指示通知 PHP 是否声明 argv 和 argc 变量(他们可能包含 GET 信息)。
; 如果你不使用他们,你应该关闭他来提高性能。
;
;
register_argc_argv = Off

; Maximum size of POST data that PHP will accept.
;
;
; PHP接受的最大的 POST 数据尺寸
;
;
post_max_size = 8M

; This directive is deprecated. Use variables_order instead.
;
;
; 这个指示不赞成使用,使用 variables_order 代替
;
;
gpc_order = “GPC”

; Magic quotes
;

; Magic quotes for incoming GET/POST/Cookie data.
;
;
; 转换进入的 GET/POST/Cookie 数据
;
;
magic_quotes_gpc = Off

; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
;
;
; 转换运行期间产生的数据,例如来自于 SQL, exec()等等
;
;
magic_quotes_runtime = Off

; Use Sybase-style magic quotes (escape ‘ with ” instead of \’).
;
;
; 使用 Sybase 样式的转换(对于 ‘ 使用 ” 代替 \’)
;
;
magic_quotes_sybase = Off

; Automatically add files before or after any PHP document.
;
;
; 在PHP文档前后自动加入的文件名字。
;
;
auto_prepend_file =
auto_append_file =

; As of 4.0b4, PHP always outputs a character encoding by default in
; the Content-type: header. To disable sending of the charset, simply
; set it to be empty.
;
; PHP’s built-in default is text/html
;
;
; 在 4.0b4, PHP 总是在 Content-type:头里面发送默认的字符编码。要禁止发送字符设置
; 简单的把他设置为空就可以。
; PHP 内置的默认值是 text/html
;
;
default_mimetype = “text/html”
;default_charset = “iso-8859-1″

;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;
;
; 路径和目录
;
;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: “/path1:/path2″
;
;
; UNIX: 使用 /path1:path2 样式
;
;
;include_path = “.:/php/includes”
;
; Windows: “\path1;\path2″
;
; Window: 使用 \path1;\path2 样式
;
;include_path = “.;c:\php\includes”

; The root of the PHP pages, used only if nonempty.
;
;
; PHP 页面的根位置,仅在非空时使用
;
;
doc_root =

; The directory under which PHP opens the script using /~usernamem used only
; if nonempty.
;
;
; 使用 /~username 打开 PHP 脚本时的目录,非空时使用。
;
;
user_dir =

; Directory in which the loadable extensions (modules) reside.
;
;
; 本地可装载的扩展(模块)所在的目录
;
;
extension_dir = c:\php\extensions

; Whether or not to enable the dl() function. The dl() function does NOT work
; properly in multithreaded servers, such as IIS or Zeus, and is automatically
; disabled on them.
;
;
; 是否允许 dl()函数。dl()在多线程服务器上不能正确的工作,例如 IIS 或者 Zeus,此时自动屏蔽
;
;
enable_dl = On

;;;;;;;;;;;;;;;;
; File Uploads ;
;
;
; 文件上传
;
;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
;
;
; 是否允许文件上传
;
;
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
;
;
; HTTP 上传时文件的临时目录(如果没有指定就使用系统默认的)
;
;
;upload_tmp_dir =

; Maximum allowed size for uploaded files.
;
;
; 最大允许上传文件尺寸
;
;
upload_max_filesize = 2M

;;;;;;;;;;;;;;;;;;
; Fopen wrappers ;
;
;
; 文件打开封装
;
;
;;;;;;;;;;;;;;;;;;

; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
;
;
; 是否允许把 URLs(象 http:// 或者 ftp://)以文件对待
;
;
allow_url_fopen = On

; Define the anonymous ftp password (your email address)
;
;
; 默认的 ftp 密码(你的邮箱地址)
;
;
;from=”john@doe.com”

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;
;
; 动态扩展
;
;
;;;;;;;;;;;;;;;;;;;;;;
;
; If you wish to have an extension loaded automatically, use the following
; syntax:
;
; extension=modulename.extension
;
; For example, on Windows:
;
; extension=msql.dll
;
; … or under UNIX:
;
; extension=msql.so
;
; Note that it should be the name of the module only; no directory information
; needs to go here. Specify the location of the extension with the
; extension_dir directive above.
;
;
; 如果你想自动装载某些扩展,使用下面的语法
;
; extension = modulename.extension
;
; 例如在 Windows 下面
;
; extension=msql.dll
;
; 在 UNIX 下面
;
; extension = msql.so
;
; 注意,必须是模块的名字,不能有其他指示。扩展的位置在 extension_dir 那里指定
;
;

;Windows Extensions
;Note that MySQL and ODBC support is now built in, so no dll is needed for it.
;
;
; Windows 扩展
; 注意,MySQL 和 ODBC 已经内置了,不需要 dll 了。
;
;
;extension=php_bz2.dll
;extension=php_ctype.dll
;extension=php_cpdf.dll
;extension=php_curl.dll
;extension=php_cybercash.dll
;extension=php_db.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_dbx.dll
;extension=php_domxml.dll
;extension=php_dotnet.dll
;extension=php_exif.dll
;extension=php_fbsql.dll
;extension=php_fdf.dll
;extension=php_filepro.dll
;extension=php_gd.dll
;extension=php_gettext.dll
;extension=php_hyperwave.dll
;extension=php_iconv.dll
;extension=php_ifx
.dll
;extension=php_iisfunc.dll
;extension=php_imap.dll
;extension=php_ingres.dll
;extension=php_interbase.dll
;extension=php_java.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll
;extension=php_ming.dll
;extension=php_mssql.dll ; 这个是 Microsoft SQL Server
;extension=php_oci8.dll
;extension=php_openssl.dll
;extension=php_oracle.dll
;extension=php_pdf.dll
;extension=php_pgsql.dll
;extension=php_printer.dll
;extension=php_sablot.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_sockets.dll
;extension=php_sybase_ct.dll
;extension=php_xslt.dll
;extension=php_yaz.dll
;extension=php_zlib.dll

;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;
;
; 模块设置
;
;
;;;;;;;;;;;;;;;;;;;

[Syslog]
;
; 系统日志
;
; Whether or not to define the various syslog variables (e.g. $LOG_PID,
; $LOG_CRON, etc.). Turning it off is a good idea performance-wise. In
; runtime, you can define these variables by calling define_syslog_variables().
;
;
; 是否定以不同的系统日志变量(例如,$LOG_PID,$LOG_CRON,等等)。为性能考虑,关闭比较好
; 在运行期间,你可以通过调用 define_syslog_variables() 定以这些变量
;
;
define_syslog_variables = Off

[mail function]
;
; 邮件函数
;
; For Win32 only.
;
;
; Win32 可用
;
;
SMTP = localhost

; For Win32 only.
;
;
; Win32 可用
;
;
sendmail_from = me@localhost.com

; For Unix only. You may supply arguments as well (default: ‘sendmail -t -i’).
;
;
; Unix 可用,可以指定参数。(默认是 sendmail -t -i )
;
;
;sendmail_path =

[Logging]
;
; 日志
;
; These configuration directives are used by the example logging mechanism.
; See examples/README.logging for more explanation.
;
;
; 这些配置指示例子中的日志机制,查看 examples/README.logging 的详细说明
;
;
;logging.method = db
;logging.directory = /path/to/log/directory

[Java]
;
; Java 支持
;
;
; 指向 php_java.jar 的位置
;
;java.class.path = .\php_java.jar

;
; 指向 java 安装的目录
;
;java.home = c:\jdk

;
; 指向虚拟机的目录
;
;java.library = c:\jdk\jre\bin\hotspot\jvm.dll

;
; 指向 java 扩展所在的目录,比如 c:\php\extensions
;
;java.library.path = .\

[SQL]
;
; SQL 设置
;
sql.safe_mode = Off

[ODBC]
;
; ODBC 设置
;

;
; 默认的数据库,尚未实现
;
;odbc.default_db = Not yet implemented

;
; 默认的用户,尚未实现
;
;odbc.default_user = Not yet implemented

;
; 默认的密码,尚未实现
;
;odbc.default_pw = Not yet implemented

; Allow or prevent persistent links.
;
; 允许或者防止持久连接
;
odbc.allow_persistent = On

; Check that a connection is still valid before reuse.
;
; 在连接重新使用前检查是否依然合法
;
odbc.check_persistent = On

; Maximum number of persistent links. -1 means no limit.
;
; 最大的持久连接数量,-1 代表不限制
;
odbc.max_persistent = -1

; Maximum number of links (persistent + non-persistent). -1 means no limit.
;
; 最大的连接数(持久 + 非持久),-1 代表不限制
;
odbc.max_links = -1

; Handling of LONG fields. Returns number of bytes to variables. 0 means
; passthru.
;
; 处理超长的字段,返回可用的字节数量,0 代表 放弃(passthru)
;
odbc.defaultlrl = 4096

; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char.
; See the documentation on odbc_binmode and odbc_longreadlen for an explanation
; of uodbc.defaultlrl and uodbc.defaultbinmode
;
; 处理二进制数据。0 代表放弃(passthru),1 返回原始的,2 转化为字符。
;
odbc.defaultbinmode = 1

[MySQL]
;
;
; MySQL 配置
;
;
; Allow or prevent persistent links.
;
; 是否允许持久连接
;
mysql.allow_persistent = On

; Maximum number of persistent links. -1 means no limit.
;
; 最大的持久连接数量,-1 无限
;
mysql.max_persistent = -1

; Maximum number of links (persistent + non-persistent). -1 means no limit.
;
; 最大的连接数量(持久+非持久), -1 无限
;
mysql.max_links = -1

; Default port number for mysql_connect(). If unset, mysql_connect() will use
; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
; compile-time value defined MYSQL_PORT (in that order). Win32 will only look at MYSQL_PORT.
;
; mysql_connect()默认的端口号。如果没有设置,则使用 $MYSQL_TCP_PORT 或者 在 /etc/services
; 里面的 mysql_tct 入口,或者运行期间给出的 MYSQL_PORT,Win32 只查看 MYSQL_PORT
;
mysql.default_port =

; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
;
; 默认的本地 MySQL 连接的 socket 名字,如果为空泽使用内置的
;
mysql.default_socket =

; Default host for mysql_connect() (doesn’t apply in safe mode).
;
; 默认的连接主机(在安全模式下不使用)
;
mysql.default_host =

; Default user for mysql_connect() (doesn’t apply in safe mode).
;
; 默认的用户名(在安全模式不使用)
;
mysql.default_user =

; Default password for mysql_connect() (doesn’t apply in safe mode).
; Note that this is generally a *bad* idea to store passwords in this file.
; *Any* user with PHP access can run ‘echo cfg_get_var(“mysql.default_password”)
; and reveal this password! And of course, any users with read access to this
; file will be able to reveal the password as well.
;
; 默认的连接密码(在安全模式下不使用)
; 注意:在这里存储密码是一个非常不好的注意。任何可以访问 PHP 的用户可以通过
; echo cfg_get_var(“mysql.default_password”)来获得密码。当然,任何拥有这个文件读取
; 权限的用户同样可以得到密码。
;
mysql.default_password =

[mSQL]
; Allow or prevent persistent links.
;
; 是否允许持久连接
;
msql.allow_persistent = On

; Maximum number of persistent links. -1 means no limit.
;
; 最大的持久连接数量,-1 无限
;
msql.max_persistent = -1

; Maximum number of links (persistent+non persistent). -1 means no limit.
;
; 最大的连接数量(持久+非持久), -1 无限
;
msql.max_links = -1

[PostgresSQL]
; Allow or prevent persistent links.
;
; 是否允许持久连接
;
pgsql.allow_persistent = On

; Maximum number of persistent links. -1 means no limit.
;
; 最大的持久连接数量,-1 无限
;
pgsql.max_persistent = -1

; Maximum number of links (persistent+non persistent). -1 means no limit.
;
; 最大的连接数量(持久+非持久), -1 无限
;
pgsql.max_links = -1

[Sybase]
; Allow or prevent persistent links.
;
; 是否允许持久连接
;
sybase.allow_persistent = On

; Maximum number of persistent links. -1 means no limit.
;
; 最大的持久连接数量,-1 无限
;
sybase.max_persistent = -1

; Maximum number of
links (persistent + non-persistent). -1 means no limit.
;
; 最大的连接数量(持久+非持久), -1 无限
;
sybase.max_links = -1

;sybase.interface_file = “/usr/sybase/interfaces”

; Minimum error severity to display.
;
; 显示的最小错误
;
sybase.min_error_severity = 10

; Minimum message severity to display.
;
; 显示最小错误信息
;
sybase.min_message_severity = 10

; Compatability mode with old versions of PHP 3.0.
; If on, this will cause PHP to automatically assign types to results according
; to their Sybase type, instead of treating them all as strings. This
; compatability mode will probably not stay around forever, so try applying
; whatever necessary changes to your code, and turn it off.
;
; 兼容于旧的 PHP 3.0
; 如果为 on, 则PHP 根据他们的 Sybase 类型自动给结果赋予类型,而不是全部当成字符串。
; 这个兼容模式在将来不会保留,所以请修改你的代码,关闭这个参数
;
sybase.compatability_mode = Off

[Sybase-CT]
; Allow or prevent persistent links.
;
; 是否允许持久连接
;
sybct.allow_persistent = On

; Maximum number of persistent links. -1 means no limit.
;
; 最大的持久连接数量,-1 无限
;
sybct.max_persistent = -1

; Maximum number of links (persistent + non-persistent). -1 means no limit.
;
; 最大的连接数量(持久+非持久), -1 无限
;
sybct.max_links = -1

; Minimum server message severity to display.
;
; 最小的服务器严重信息显示
;
sybct.min_server_severity = 10

; Minimum client message severity to display.
;
; 最小的客户端严重信息显示
;
sybct.min_client_severity = 10

[bcmath]
;
;
;
; Number of decimal digits for all bcmath functions.
;
; bcmath 函数的十进制数字
;
bcmath.scale = 0

[browscap]
;
; 用于判断客户信息
;
;browscap = extra/browscap.ini

[Informix]
;
;
;
; Default host for ifx_connect() (doesn’t apply in safe mode).
;
; 默认的连接主机(安全模式下无效)
;
ifx.default_host =

; Default user for ifx_connect() (doesn’t apply in safe mode).
;
; 默认的连接用户(安全模式下无效)
;
ifx.default_user =

; Default password for ifx_connect() (doesn’t apply in safe mode).
;
; 默认的连接密码(安全模式下无效)
;
ifx.default_password =

; Allow or prevent persistent links.
;
; 是否允许持久连接
;
ifx.allow_persistent = On

; Maximum number of persistent links. -1 means no limit.
;
; 最大持久连接数量
;
ifx.max_persistent = -1

; Maximum number of links (persistent + non-persistent). -1 means no limit.
;
; 最大连接数量
;
ifx.max_links = -1

; If on, select statements return the contents of a text blob instead of its id.
;
; 如果为 on, 则选择语句返回 text blob 代替编号
;
ifx.textasvarchar = 0

; If on, select statements return the contents of a byte blob instead of its id.
;
; 如果为 on,则选择语句返回 byte blob 代替编号
;
ifx.byteasvarchar = 0

; Trailing blanks are stripped from fixed-length char columns. May help the
; life of Informix SE users.
ifx.charasvarchar = 0

; If on, the contents of text and byte blobs are dumped to a file instead of
; keeping them in memory.
ifx.blobinfile = 0

; NULL’s are returned as empty strings, unless this is set to 1. In that case,
; NULL’s are returned as string ‘NULL’.
ifx.nullformat = 0

[Session]
;
; Session 部分
;

; Handler used to store/retrieve data.
;
; 用于处理存储/取得数据
;
session.save_handler = files

; Argument passed to save_handler. In the case of files, this is the path
; where data files are stored. Note: Windows users have to change this
; variable in order to use PHP’s session functions.
;
; 传递给 save_handleer 的参数,在 files 情况下,是数据存储的路径。
; 注意,Windows 用户需要修改这个变量来使用 PHP 的 session 功能
;
; 我给出的路径是我安装 PHP的路径,你可以改成任何你硬盘存在的路径
;
session.save_path = c:\php

; Whether to use cookies.
;
; 是否使用 cookies
;
session.use_cookies = 1

; Name of the session (used as cookie name).
;
; session 的名字(用于 cookes )
;
session.name = PHPSESSID

; Initialize session on request startup.
;
; 在请求开始时初始化 session
;
session.auto_start = 0

; Lifetime in seconds of cookie or, if 0, until browser is restarted.
;
; cookie 的存活秒数,如果为 0 , 则是直到浏览器重新启动
;
session.cookie_lifetime = 0

; The path for which the cookie is valid.
;
; 正确的 cookie 路径
;
session.cookie_path = /

; The domain for which the cookie is valid.
;
; 存放数值的 cookie的主机(主键)
;
session.cookie_domain =

; Handler used to serialize data. php is the standard serializer of PHP.
;
; 序列化数据的句柄,标准句柄是 php
;
session.serialize_handler = php

; Percentual probability that the ‘garbage collection’ process is started
; on every session initialization.
;
; 打开每个session初始化时自动开始垃圾收集进程
;
session.gc_probability = 1

; After this number of seconds, stored data will be seen as ‘garbage’ and
; cleaned up by the garbage collection process.
;
; 当超过这个时间,存储的的数据会被认为是垃圾,被 gc 进程清除
;
session.gc_maxlifetime = 1440

; Check HTTP Referer to invalidate externally stored URLs containing ids.
;
; 检查包含 ids 的 HTTP 里无效的外部保存 URLs的内容
;
session.referer_check =

; How many bytes to read from the file.
;
; 从文件里读入的允许字节数
;
session.entropy_length = 0

; Specified here to create the session id.
;
; 指定在这里建立 session id
;
session.entropy_file =

;session.entropy_length = 16

;session.entropy_file = /dev/urandom

; Set to {nocache,private,public} to determine HTTP caching aspects.
;
; 确定 HTTP 缓存外貌 {nocache,private,public}
;
session.cache_limiter = nocache

; Document expires after n minutes.
;
; 超过 n 分钟文档到期
;
session.cache_expire = 180

; use transient sid support if enabled by compiling with –enable-trans-sid.
;
; 如果在编译时使用 –enable_trans-sid ,则使用短暂 sid 支持
;
session.use_trans_sid = 1

url_rewriter.tags = “a=href,area=href,frame=src,input=src,form=fakeentry”

[MSSQL]
;
; 这个就是 Microsoft Sql Server
;

; Allow or prevent persistent links.
;
; 是否允许持久连接
;
mssql.allow_persistent = On

; Maximum number of persistent links. -1 means no limit.
;
; 最大持久连接数
;
mssql.max_persistent = -1

; Maximum number of links (persistent+non persistent). -1 means no limit.
;
; 最大连接数
;
mssql.max_links = -1

; Minimum error severity to display.
;
; 显示的最小错误严重
;
mssql.min_error_severity = 10

; Minimum message severity to display.
;

; 最小的显示的严重信息
;
mssql.min_message_severity = 10

; Compatability mode with old versions of PHP 3.0.
;
; 兼容老的 PHP 3.0
;
mssql.compatability_mode = Off

; Valid range 0 – 2147483647. Default = 4096.
;
; 允许值 , 默认值
;
;mssql.textlimit = 4096

; Valid range 0 – 2147483647. Default = 4096.
;
; 允许值, 默认值
;
;mssql.textsize = 4096

; Limits the number of records in each batch. 0 = all records in one batch.
;
; 每个批次最大的纪录数, 0 = 所有纪录1个批次
;
;mssql.batchsize = 0

[Assertion]
; Assert(expr); active by default.
;assert.active = On

; Issue a PHP warning for each failed assertion.
;assert.warning = On

; Don’t bail out by default.
;assert.bail = Off

; User-function to be called if an assertion fails.
;assert.callback = 0

; Eval the expression with current error_reporting(). Set to true if you want
; error_reporting(0) around the eval().
;assert.quiet_eval = 0

[Ingres II]
; Allow or prevent persistent links.
ingres.allow_persistent = On

; Maximum number of persistent links. -1 means no limit.
ingres.max_persistent = -1

; Maximum number of links, including persistents. -1 means no limit.
ingres.max_links = -1

; Default database (format: [node_id::]dbname[/srv_class]).
ingres.default_database =

; Default user.
ingres.default_user =

; Default password.
ingres.default_password =

[Verisign Payflow Pro]
; Default Payflow Pro server.
pfpro.defaulthost = “test-payflow.verisign.com”

; Default port to connect to.
pfpro.defaultport = 443

; Default timeout in seconds.
pfpro.defaulttimeout = 30

; Default proxy IP address (if required).
;pfpro.proxyaddress =

; Default proxy port.
;pfpro.proxyport =

; Default proxy logon.
;pfpro.proxylogon =

; Default proxy password.
;pfpro.proxypassword =

[Sockets]
; Use the system read() function instead of the php_read() wrapper.
;
; 使用系统的 read() 函数代替 php_read() 封装
;
sockets.use_system_read = On

[com]
;
; COM 设置
;
; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs
;
; 指向包含 GUIDs,IIDs 或者 拥有 TypeLibs 文件的文件名的文件路径
;
;com.typelib_file =

; allow Distributed-COM calls
;
; 允许分布式 COM 调用
;
;com.allow_dcom = true

; autoregister constants of a components typlib on com_load()
;
; 在 com_load()时自动注册 typlib 组件的常量
;
;com.autoregister_typelib = true

; register constants casesensitive
;
; 注册常量区分大小写
;
;com.autoregister_casesensitive = false

; show warnings on duplicate constat registrations
;
; 重复注册常量则给出警告
;
;com.autoregister_verbose = true

[Printer]
;printer.default_printer = “”

[mbstring]
;mbstring.internal_encoding = EUC-JP
;mbstring.http_input = auto
;mbstring.http_output = SJIS
;mbstring.detect_order = auto
;mbstring.substitute_character = none;

[FrontBase]
;fbsql.allow_persistant = On
;fbsql.autocommit = On
;fbsql.default_database =
;fbsql.default_database_password =
;fbsql.default_host =
;fbsql.default_password =
;fbsql.default_user = “_SYSTEM”
;fbsql.generate_warnings = Off
;fbsql.max_connections = 128
;fbsql.max_links = 128
;fbsql.max_persistent = -1
;fbsql.max_results = 128
;fbsql.mbatchSize = 1000

; Local Variables:
; tab-width: 4
; End:

下载这个文件 php.ini

[PHP]

;;;;;;;;;;;;;;;;;;;
; About this file ;
;
; 关于这个文件
;
;;;;;;;;;;;;;;;;;;;
;
; This is the recommended, PHP 4-style version of the php.ini-dist file. It
; sets some non standard settings, that make PHP more efficient, more secure,
; and encourage cleaner coding.
;
;
; 这个是推荐的,PHP 4 版本类型的 php.ini-dist 文件,他设置了一些非标准的设置,他们使得
; PHP更加有效,更加安全,鼓励整洁的编码。
;
;
; The price is that with these settings, PHP may be incompatible with some
; applications, and sometimes, more difficult to develop with. Using this
; file is warmly recommended for production sites. As all of the changes from
; the standard settings are thoroughly documented, you can go over each one,
; and decide whether you want to use it or not.
;
;
; 这样做的代价是,某些应用程序可能在这样的配置下不兼容,在某些情况下,开发会更加困难。
; 使用这个文件是我门对建设站点的热心建议。每个标准设置的改变都有彻底的说明稳当,你可以
; 处理没一个,决定是否使用他们。
;
;
; For general information about the php.ini file, please consult the php.ini-dist
; file, included in your PHP distribution.
;
;
; 关于 php.ini 的一般信息,请参考 php.ini-dist 文件,包括你的 PHP 的说明
;
;
; This file is different from the php.ini-dist file in the fact that it features
; different values for several directives, in order to improve performance, while
; possibly breaking compatibility with the standard out-of-the-box behavior of
; PHP 3. Please make sure you read what’s different, and modify your scripts
; accordingly, if you decide to use this file instead.
;
;
; 这个文件和 php.ini-dist 的区别在于它给予了一些指示不同的值,来提高性能,同时可能破坏了
; PHP 3 的标准的 out-of-the-box 特性。
;
;
; – register_globals = Off [Security, Performance]
; Global variables are no longer registered for input data (POST, GET, cookies,
; environment and other server variables). Instead of using $foo, you must use
; you can use $_REQUEST["foo"] (includes any variable that arrives through the
; request, namely, POST, GET and cookie variables), or use one of the specific
; $_GET["foo"], $_POST["foo"], $_COOKIE["foo"] or $_FILES["foo"], depending
; on where the input originates. Also, you can look at the
; import_request_variables() function.
; Note that register_globals is going to be depracated (i.e., turned off by
; default) in the next version of PHP, because it often leads to security bugs.
; Read http://php.net/manual/en/security.registerglobals.php for further
; information.
;
;
; 全局变量不再注册输入的数据(POST,GET,cookies,环境变量和其他的服务器变量)。作为代替的是使用
; $foo, 你必须使用 $_REQUEST["foo"] ( 包括所有的通过请求传来的变量,也就是说,POST,GET,和
; cookies 变量)或者根据输入的来源使用指定的 $_GET["foo"],$_POST["foo"],$_COOKIE["foo"]
; ,$_FILES["foo"] (访问他们).同时,你可以查看 import_request_variables()函数。
;
; 注意,这个参数可能在下个版本去掉(默认为off),因为他经常引起安全 bugs.到
; http://php.net/manual/en/security.registerglobals.php
; 查看详细内容
;
;
; – display_errors = Off [Security]
; With this directive set to off, errors that occur during the execution of
; scripts will no longer be displayed as a part of the script output, and thus,
; will no longer be exposed to remote users. With some errors, the error message
; content may expose information about your script, web server, or database
; server that may be exploitable for hacking. Production sites should h
ave this
; directive set to off.
;
;
; 设置这个指示为Off,在脚本执行期间发生错误时,不再将错误作为输出的一部分显示,这样就不会暴露给
; 远端用户。对于某些错误,错误信息的内容可能暴露你的脚本,web服务器,数据库服务器的信息,可能被
; 黑客利用。最终产品占点需要设置这个指示为off.
;
;
; – log_errors = On [Security]
; This directive complements the above one. Any errors that occur during the
; execution of your script will be logged (typically, to your server’s error log,
; but can be configured in several ways). Along with setting display_errors to off,
; this setup gives you the ability to fully understand what may have gone wrong,
; without exposing any sensitive information to remote users.
;
;
; 这个指示补充上面的。所有的发生在脚本运行期间的错误都会纪录在日志中(代表性的,记录在服务器的错误
; 日志中,但是可以配置不同的方式)。随着 display_errors 设置为 off,这个设置给你全面了解到底什么
; 发生错误的能力,而不会向远端用户暴露任何信息。
;
;
; – output_buffering = 4096 [Performance]
; Set a 4KB output buffer. Enabling output buffering typically results in less
; writes, and sometimes less packets sent on the wire, which can often lead to
; better performance. The gain this directive actually yields greatly depends
; on which Web server you’re working with, and what kind of scripts you’re using.
;
;
; 设置 4KB 的输出缓冲区。打开输出缓冲可以减少写的次数,有时减少线路发送包的数量,这样能提高性能。
; 这个指示真正得到的益处很大程度的依赖于你的工作的 WEB 服务器,以及你使用的脚本。
;
;
; – register_argc_argv = Off [Performance]
; Disables registration of the somewhat redundant $argv and $argc global
; variables.
;
;
; 禁止注册某些多于的 $argv 和 $argc 全局变量
;
;
; – magic_quotes_gpc = Off [Performance]
; Input data is no longer escaped with slashes so that it can be sent into
; SQL databases without further manipulation. Instead, you should use the
; function addslashes() on each input element you wish to send to a database.
;
;
; 输入数据不再被斜线转义,以便于无需更多的处理就可以发送到SQL数据库里面。作为代替,你可
; 以对每个要发送到数据库的输入元素使用 addslashes()函数。
;
;
; – variables_order = “GPCS” [Performance]
; The environment variables are not hashed into the $HTTP_ENV_VARS[]. To access
; environment variables, you can use getenv() instead.
;
; 环境变量不再进入 $HTTP_ENV_VARS[],你需要用 getenv()来访问环境变量。
;
;
; – error_reporting = E_ALL [Code Cleanliness, Security(?)]
; By default, PHP surpresses errors of type E_NOTICE. These error messages
; are emitted for non-critical errors, but that could be a symptom of a bigger
; problem. Most notably, this will cause error messages about the use
; of uninitialized variables to be displayed.
;
;
; 默认的,PHP 给出 E_NOTICE 错误类型,这些错误信息不是核心错误,但是可能是个更大错误的隐患。
; 大多数提醒是那些没有初始化变量引起的错误信息。
;
;
; – allow_call_time_pass_reference = Off [Code cleanliness]
; It’s not possible to decide to force a variable to be passed by reference
; when calling a function. The PHP 4 style to do this is by making the
; function require the relevant argument by reference.
;
;
; 在调用函数时,不可能决定强制传递变量的引用。PHP 4 里通过函数请求相关参数的引用来实现
;
;

;;;;;;;;;;;;;;;;;;;;
; Language Options ;
;
;
; 语言配置
;
;
;;;;;;;;;;;;;;;;;;;;

; Enable the PHP scripting language engine under Apache.
;
;
; 允许在Apache下的PHP脚本语言引擎
;
;
engine = On

; Allow the tags are recognized.
;
;
; 允许 标记
;
;
short_open_tag = On

; Allow ASP-style tags.
;
;
; 允许 ASP 类型的 标记
;
;
asp_tags = Off

; The number of significant digits displayed in floating point numbers.
;
;
; 浮点数显示的有意义的数字(精度)
;
;
precision = 14

; Enforce year 2000 compliance (will cause problems with non-compliant browsers)
;
;
; 强制遵从 2000 年(会在不遵从的浏览器上引起错误)
;
;
y2k_compliance = Off

; Output buffering allows you to send header lines (including cookies) even
; after you send body content, at the price of slowing PHP’s output layer a
; bit. You can enable output buffering during runtime by calling the output
; buffering functions. You can also enable output buffering for all files by
; setting this directive to On. If you wish to limit the size of the buffer
; to a certain size – you can use a maximum number of bytes instead of ‘On’, as
; a value for this directive (e.g., output_buffering=4096).
;
;
; 输出缓冲允许你在主体内容发送后发送头信息行(包括 cookies),作为代价,会稍微减慢一点PHP
; 输出层的速度。你可以在运行期间通过调用输出缓冲函数来打开输出缓冲。你也可以通过设置这个
; 指示来对虽有的文件打开输出缓冲。如果你想限制缓冲区大小为某个尺寸,你可以使用一个允许最大
; 的字节数值代替 “On”,作为这个指示的值。
;
;
output_buffering = 4096

; You can redirect all of the output of your scripts to a function. For
; example, if you set output_handler to “ob_gzhandler”, output will be
; transparently compressed for browsers that support gzip or deflate encoding.
; Setting an output handler automatically turns on output buffering.
;
;
; 你可以重新定向脚本所有输出到一个函数。例如,你可以设置 output_handler 为 “ob_gzhandler”,
; 输出将会被明显的被压缩到支持 gzip 或 deflate 编码的浏览器。设置一个输出管理会自动打开
; 输出缓冲
;
;
output_handler =

; Transparent output compression using the zlib library
; Valid values for this option are ‘off’, ‘on’, or a specific buffer size
; to be used for compression (default is 4KB)
;
;
; 使用 zlib 库进行输出压缩,可以指定 off/on 或者用于压缩的缓冲大小
;
;
zlib.output_compression = Off

; Implicit flush tells PHP to tell the output layer to flush itself
; automatically after every output block. This is equivalent to calling the
; PHP function flush() after each and every call to print() or echo() and each
; and every HTML block. Turning this option on has serious performance
; implications and is generally recommended for debugging purposes only.
;
;
; 隐含的通知PHP的输出层在每个输出块后自己自动刷新。等同于在每个 print() 或者 echo()
; 和每个HTML块后面都调用 flush()函数。打开这个配置会引起严重的隐含执行,一般推荐在用于
; 调试目的时使用。
;
;
implicit_flush = Off

; Whether to enable the ability to force arguments to be passed by reference
; at function call time. This method is deprecated and is likely to be
; unsupported in future versions of PHP/Zend. The encouraged method of
; specifying which arguments should be passed by reference is in the function
; declaration. You’re encouraged to try and tu
rn this option Off and make
; sure your scripts work properly with it in order to ensure they will work
; with future versions of the language (you will receive a warning each time
; you use this feature, and the argument will be passed by value instead of by
; reference).
;
;
; 是否允许在函数调用期间有强制参数以引用的形式传递的能力。这个方法不赞成使用,在将来的
; PHP和Zend版本里面可能不支持。鼓励的方法是在函数声明时指定哪个参数通过引用传递。鼓励你
; 尝试关闭这个参数,确认你的脚本能够正常运行,以便在以后版能里面正确运行(你会在每次使用
; 这个特性时得到一个警告,并且参数以值来传递,代替引用)
;
;
allow_call_time_pass_reference = Off

;
; Safe Mode
;
;
; 安全模式
;
;
;
safe_mode = Off

; By default, Safe Mode does a UID compare check when
; opening files. If you want to relax this to a GID compare,
; then turn on safe_mode_gid.
;
;
; 安全模式默认的在打开文件时进行 UID 比较检查,如果你想放宽他为GID比较,打开这个参数
;
;
safe_mode_gid = Off

; When safe_mode is on, UID/GID checks are bypassed when
; including files from this directory and its subdirectories.
; (directory must also be in include_path or full path must
; be used when including)
;
;
; 在安全模式,当包含如下目录和子目录文件时,绕过 UID/GID检查(路径必须在 include_path下面
; 或者在包含时使用完整路径
;
;
safe_mode_include_dir =

; When safe_mode is on, only executables located in the safe_mode_exec_dir
; will be allowed to be executed via the exec family of functions.
;
;
; 在安全模式下,只有给出目录下可以通过 exec 族函数执行
;
;
safe_mode_exec_dir =

; open_basedir, if set, limits all file operations to the defined directory
; and below. This directive makes most sense if used in a per-directory
; or per-virtualhost web server configuration file.
;
;
; 如果设置,则限制所有的文件操作都到下面给出的目录下。这个指示在每个目录,每个虚拟主机的web
; 服务器配置文件里给出更多的认识。
;
;
;open_basedir =

; Setting certain environment variables may be a potential security breach.
; This directive contains a comma-delimited list of prefixes. In Safe Mode,
; the user may only alter environment variables whose names begin with the
; prefixes supplied here. By default, users will only be able to set
; environment variables that begin with PHP_ (e.g. PHP_FOO=BAR).
;
; Note: If this directive is empty, PHP will let the user modify ANY
; environment variable!
;
;
; 设置某些环境变量可能是隐藏的安全缺口。这个指示包含一个逗号分割的前缀指示。在安全模式下
; 用户只能修改下面提供的为前缀的变量名字。默认,用户只能设置以 PHP_ 前缀开头的环境变量(
; 例如 PHP_FOO=BAR).
;
; 注意:如果这个设置为空,则 PHP 可以让用户修改任何环境变量。
;
;
safe_mode_allowed_env_vars = PHP_

; This directive contains a comma-delimited list of environment variables that
; the end user won’t be able to change using putenv(). These variables will be
; protected even if safe_mode_allowed_env_vars is set to allow to change them.
;
;
; 这个指示包含用逗号分割的不允许最终用户通过 putenv()修改的环境变量的列表。这些变量即使
; 在 safe_mode_allowed_env_vars 设置允许改变他们的情况下也被保护。
;
;
safe_mode_protected_env_vars = LD_LIBRARY_PATH

; This directive allows you to disable certain functions for security reasons.
; It receives a comma-delimited list of function names. This directive is
; *NOT* affected by whether Safe Mode is turned On or Off.
;
;
; 这个指示用于在由于安全原因的情况下屏蔽某些函数。接受用逗号分割的函数名列表,这个指示不受
; Safe Mode 是否打开的影响。
;
;
disable_functions =

; Colors for Syntax Highlighting mode. Anything that’s acceptable in
; would work.
;
;
; 语法加亮模式的颜色,任何 正常工作的都可以接受
;
;
highlight.string = #CC0000
highlight.comment = #FF9900
highlight.keyword = #006600
highlight.bg = #FFFFFF
highlight.default = #0000CC
highlight.html = #000000

;
; Misc
;
; Decides whether PHP may expose the fact that it is installed on the server
; (e.g. by adding its signature to the Web server header). It is no security
; threat in any way, but it makes it possible to determine whether you use PHP
; on your server or not.
;
;
; 是否让服务器暴露 PHP(例如在 web 服务器头增加标记)。他不会有安全威胁,但是可以让你
; 检测一个服务器是否使用了 PHP.
;
;
expose_php = On

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;
;
; 资源限制
;
;

;;;;;;;;;;;;;;;;;;;

;
;
; 每个脚本最大执行的秒数
;
;
max_execution_time = 30 ; Maximum execution time of each script, in seconds

;
;
; 一个脚本最大消耗的内存
;
;
memory_limit = 8M ; Maximum amount of memory a script may consume (8MB)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;
;
; 错误处理和记录
;
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; error_reporting is a bit-field. Or each number up to get desired error
; reporting level
;
;
; 错误报告是一个位字段,每个数值代表错误报告的等级
;
;
; E_ALL – All errors and warnings
;
; 所有的错误和警告
;
; E_ERROR – fatal run-time errors
;
; 致命的运行期错误
;
; E_WARNING – run-time warnings (non-fatal errors)
;
; 运行期警告(非致命错误)
;
; E_PARSE – compile-time parse errors
;
; 编译期间解析错误
;
; E_NOTICE – run-time notices (these are warnings which often result
; from a bug in your code, but it’s possible that it was
; intentional (e.g., using an uninitialized variable and
; relying on the fact it’s automatically initialized to an
; empty string)
;
; 运行期间注意,一般是由于代码的 bug 引起的警告,但是很可能是故意这样的。例如使用没有初始化
; 的变量,依赖于他自动初始化为空的字符串。
;
; E_CORE_ERROR – fatal errors that occur during PHP’s initial startup
;
; 发生在 PHP 的初始启动阶段的致命错误
;
; E_CORE_WARNING – warnings (non-fatal errors) that occur during PHP’s
; initial startup
;
; 发生在 PHP 的初始启动阶段的警告(非致命错误)
;
; E_COMPILE_ERROR – fatal compile-time errors
;
; 致命的编译期间错误
;
; E_COMPILE_WARNING – compile-time warnings (non-fatal errors)
;
; 编译期间的警告(非致命的错误)
;
; E_USER_ERROR – user-generated error message
;
; 用户引起的错误信息
;
; E_USER_WARNING – user-generated warning message
;
; 用户引起的警告信息
;
; E_USER_NOTICE – user-generated notice message
;
; 用户引起的提醒信息
;
;
; Examples:
;
; – Show all errors, except for notices
;
; 显示所有错误,除了提醒
;
;error_reporting = E_ALL & ~E_NOTICE

;
; – Show only errors
;
; 只显示错误
;
;error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR
;
; – Show all errors except for notices
;
; 显示所有的错误(译者注:英文可能有错误)
;
error_reporting = E_ALL

; Print out errors (as a part of the output). For production web sites,
; you’re strongly encouraged to turn this feature off, and use error logging
; instead (see below). Keeping display_errors enabled on a production web site
; may reveal security information to end users, such as file paths on your Web
; server, your database schema or other information.
;
;
; 输出错误(作为输出的一部分)。对于成品网站,强烈建议关闭这个特性,使用下面错误日志代替。
; 在成品网站打开这个特性可能对最终用户暴露安全信息。例如 WEB 服务器的文件路径,数据库计划
; 或其他信息。
;
;
display_errors = Off

; Even when display_errors is on, errors that occur during PHP’s startup
; sequence are not displayed. It’s strongly recommended to keep
; display_startup_errors off, except for when debugging.
;
;
; 即使 display_errors 参数设置位 on,发生在 PHP 的启动顺序期间的错误也不会显示。
; 强烈建议保持 display_startup_errors 为 off,除非在调试阶段。
;
;
display_startup_errors = Off

; Log errors into a log file (server-specific log, stderr, or error_log (below))
; As stated above, you’re strongly advised to use error logging in place of
; error displaying on production web sites.
;
;
; 把错误写到一个日志文件里面(服务器指定日志,标准错误,或者后面的错误日志)。
; 根据上面的一致性,强烈建议使用错误日志代替web站点的错误显示。
;
;
log_errors = On

; Store the last error/warning message in $php_errormsg (boolean).
;
;
; 保存最后的错误/警告信息在 $php_errormsg(boolean)里面。
;
;
track_errors = Off

; Disable the inclusion of HTML tags in error messages.
;
;
; 屏蔽掉错误信息里面内含的HTML标记
;
;
;html_errors = Off

; String to output before an error message.
;
;
; 错误信息前输出的字符串
;
;
;error_prepend_string = “”

; String to output after an error message.
;
;
; 错误信息后输出的字符串。
;
;
;error_append_string = “”

; Log errors to specified file.
;
;
; 错误写进指定的文件
;
;
;error_log = filename

; Log errors to syslog (Event Log on NT, not valid in Windows 95).
;error_log = syslog

; Warn if the + operator is used with strings.
;
;
; 在对字符串用 + 操作符时给出警告
;
;
warn_plus_overloading = Off

;;;;;;;;;;;;;;;;;
; Data Handling ;
;
;
; 数据处理
;
;
;;;;;;;;;;;;;;;;;
;
; Note – track_vars is ALWAYS enabled as of PHP 4.0.3
;
; 注意,在 PHP 4.0.3 里面, track_vars 总是打开的。
;

; The separator used in PHP generated URLs to separate arguments.
; Default is “&”.
;
;
; PHP在产生URLs时用于分割参数的分割符。默认是 “&”
;
;
;arg_separator.output = “&”

; List of separator(s) used by PHP to parse input URLs into variables.
; Default is “&”.
; NOTE: Every character in this directive is considered as separator!
;
;
; PHP用于把输入的 URLs 解析为变量的分割符列表,默认是 “&”;
; 注意:这个指示的每个字符都被认为是分割符
;
;
;arg_separator.input = “;&”

; This directive describes the order in which PHP registers GET, POST, Cookie,
; Environment and Built-in variables (G, P, C, E & S respectively, often
; referred to as EGPCS or GPC). Registration is done from left to right, newer
; values override older values.
;
;
; 这个指示描述PHP注册 GET,POST,Cookes,环境变量和内部变量的顺序(分别对应于 G,P,C,E 和 S,
; 经常为 EGPCS 或者 GPC).注册从左到右,新的值覆盖旧的值。
;
;
variables_order = “GPCS”

; Whether or not to register the EGPCS variables as global variables. You may
; want to turn this off if you don’t want to clutter your scripts’ global scope
; with user data. This makes most sense when coupled with track_vars – in which
; case you can access all of the GPC variables through the $HTTP_*_VARS[],
; variables.
;
;
; 是否注册 EGPCS 变量为全局变量。如果你不想和用户数据混淆脚本全局范围,你可能想关闭他。
; 结合 track_vars 可以更加理性。它可以让你通过 $HTTP_*_VARS[] 访问所有的GPC变量。
;
;
; You should do your best to write your scripts so that they do not require
; register_globals to be on; Using form variables as globals can easily lead
; to possible security problems, if the code is not very well thought of.
;
;
; 你可以尽力书写不需要 register_globals 打开时的脚本。如果代码没有非常好的考虑是
; 使用来源于全局变量的表单数据很容易引起安全问题。
;
;
register_globals = Off

; This directive tells PHP whether to declare the argv&argc variables (that
; would contain the GET information). If you don’t use these variables, you
; sh

无觅相关文章插件,快速提升流量