本文收藏自网络,本人还没有试过,不知如何,现在PHP版本已经到了5.2了。读者应该找找新的文章,本人自已搭建了一个Apache+PHP+Mysql+Mysqladmin平台,只用做学习用,还没真正实战过。!!!
虽然 LAMP 组合很不错,但是如果想要架设一台同时支持 PHP、ASP、ASP.NET、JSP、Perl 的 Web 虚拟主机服务器,还是用 Windows 2003 的 IIS 6 最好。网上有很多介绍在 IIS 6 上配置 PHP 的文章,但是那些方法不是性能不好,就是升级麻烦。下面的方法可以让你在第一次配置好后,能够非常方便的进行升级。
这里所说的升级,是指从某个 php4 版本升级到另一个 php4 版本,或者从某个 php5 版本升级到另一个 php5 版本,而不是指从 php4 升级到 php5。
准备:
1、一台安装好的 Windows 2003 服务器,并且已经安装了 IIS 6。
2、下载 windows 版的 PHP 二进制压缩包
安装:
解压缩 PHP 二进制压缩包到 C:\php 目录下(这里假设 C: 盘是系统盘,即安装了Windows 系统的盘,如果系统盘是 D: 盘,则解压缩到 D:\php 目录下,以此类推,下同)。
然后打开“我的电脑”->“属性”->“高级”->“环境变量”->“系统变量”->“path”,编辑其值,在前面增加下面的路径地址:
C:\php;C:\php\dlls;C:\php\extensions;C:\php\sapi;
将 php.ini-dist 或 php.ini-recommended 复制到 C:\Windows 目录下,并改名为 php.ini,一般正式发布网站的服务器用 php.ini-dist,而作为调试用的服务器用 php.ini-recommended 更好。当然一般情况下,这个 php.ini 还是需要根据实际情况来修改的。
下面来介绍一下几个必要的修改选项:
extension_dir = "C:\php\extensions"
这个是 PHP 扩展所放置的目录,请确保跟你实际安装的目录相同。
extension=php_mbstring.dll
;extension=php_big_int.dll
extension=php_bz2.dll
extension=php_cpdf.dll
extension=php_crack.dll
extension=php_curl.dll
extension=php_db.dll
extension=php_dba.dll
extension=php_dbase.dll
extension=php_dbx.dll
extension=php_domxml.dll
;extension=php_exif.dll
;extension=php_fdf.dll
;extension=php_filepro.dll
extension=php_gd2.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_interbase.dll
extension=php_java.dll
extension=php_ldap.dll
;extension=php_mcrypt.dll
extension=php_mhash.dll
extension=php_mime_magic.dll
extension=php_ming.dll
extension=php_mssql.dll
extension=php_msql.dll
;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_shmop.dll
;extension=php_snmp.dll
extension=php_sockets.dll
;extension=php_sybase_ct.dll
extension=php_w32api.dll
extension=php_xmlrpc.dll
extension=php_xslt.dll
extension=php_yaz.dll
extension=php_zip.dll
上面这些,开头没有加分号的是打开的扩展,加了分号的是没有打开的扩展。上面的设置包含了在 Windows 2003 上默认安装情况下可以打开所有扩展(这里列出的是 php 4 的)。
session.save_path = c:\sessions
这个是 session 文件默认保存的目录,这个目录必须是一个存在的目录,不然默认的 session 功能会无效。我这里设置的是一个 ramdisk 上的一个目录。将 session.save_path 设置在 ramdisk 上可以加快 session 处理的速度。如果你没有安装 ramdisk,你可以把它指定到其他盘的任何一个目录下,如 C:\sessions 目录、C:\Windows\Temp 目录等。
OK,基本工作作完了,现在该配置 IIS 了。
打开“ Internet 信息服务(IIS)管理器”,在“ Web 服务扩展”里,选择“添加一个新的 Web 服务扩展”,扩展名可填写“PHP ISAPI 扩展”,要求的文件选择:C:\php\sapi\php4isapi.dll(如果安装的是 PHP5,则此处是 C:\php\sapi\php5isapi.dll,下同),并设置扩展状态为允许。
打开“网站”->“属性”->“ISAPI 筛选器”->“添加”,筛选器名称可填写“PHP”,可执行文件仍然选择 C:\php\sapi\php4isapi.dll。
打开“网站”->“属性”->“主目录”->“应用程序设置”->“配置”->“应用程序扩展”->“添加”,可执行文件还是选择 C:\php\sapi\php4isapi.dll。扩展名填写“.php”,动作限制为“HEAD,GET,POST”。
打开“网站”->“属性”->“文档”->“启用默认内容文档”->“添加”,可以将 index.php 添加为默认内容文档。
然后选择“服务器机器名”->“所有任务”->“重新启动 IIS”来重启 IIS。
测试
在默认网站发布目录下,建立一个测试页面:
下载:phptest.php
phpinfo();
?>
如果打开这个页面能够看到 php 安装配置信息,就算是安装成功了。
如果想要更优化的执行 php 程序,可以安装 ZendOptimizer-2.6.0-Windows-i386.exe ,这个东西安装非常简单,这里就不介绍了。
升级
现在升级就非常简单了。只需要将新版本的 PHP 二进制压缩包下载下来,将原来的 C:\php 目录删除,将新版本解压缩到 C:\php 目录中,然后重新启动一下 IIS 就可以了。不需要修改任何配置,也不需要往 System32 目录中复制任何文件。是不是很方便啊?
Router>enable 进入特权模式
Router#disable 从特权模式返回到用户模式
Router#configure terminal 进入到全局配置模式
Router(config)#interface ethernet 1 进入到路由器编号为1的以太网口
exit 返回上层模式
end 直接返回到特权模式
=========================================================
注意:
1、CISCO CATALYST(交换机),如果在初始化时没有发现“用户配置”文件,就会自动载入Default Settings(默认配置)文件,进行交换机初始化,以确保交换机正常工作。
2、CISCO Router(路由器)在初始化时,如果没有发现“用户配置”文件,系统会自动进入到“初始化配置模式”(系统配置对话模式,SETUP模式, STEP BY STEP CONFIG模式),不能正常工作!
=========================================================
1、CONSOLE PORT(管理控制台接口):距离上限制,独占的方式。刚开始配置的时候一般使用这个。
2、AUX port(辅助管理接口):可以挂接MODEM实现远程管理,独占的方式。
3、Telnet:多人远程管理(决定于性能,VTY线路数量)不安全。后期维护,远程管理登陆。
=========================================================
注意:
交换机、路由器配置命令都是回车后立即执行,立即生效的。在运行中的机器上修改命令的时候要特别注意。
=========================================================
Router(config)#hostname ?
WORD This system's network name
在配置模式下修改当前主机的本地标识,例:
------------------
Router(config)#hostname r11
r11(config)#
------------------
r11(config-if)#ip address ?
A.B.C.D IP address
为当前端口设置IP地址,使用前先进入需要配置的端口,例:
------------------
r11(config)#interface ethernet 1
r11(config-if)#ip address 172.16.1.1 255.255.255.0
------------------
r11>show version
r11#show version 观察IOS版本,设备工作时间,相关接口列表
r11#show running-config 查看当前生效的配置,此配置文件存储在RAM
r11#show interfaces ethernet 1 查看以太网接口的状态,工作状态等等等...
=========================================================
r11#reload 重新加载Router(重启)
r11#setup 手工进入setup配置模式
r11#show history 查看历史命令(最近刚用过的命令)
r11#terminal history size <0-256> 设置命令缓冲区大小,0 : 代表不缓存
r11#copy running-config startup-config 保存当前配置
注意概念:
nvram:非易失性内存,断电信息不会丢失 <-- 用户配置 <-- 保存着startup-config
ram:随机存储器,断电信息全部丢失 <-- 当前生效配置 <-- 保存着running-config
startup-config:在每次路由器或是交换机启动时候,会主动加载(默认情况)
=========================================================
设置说明和密码的几个命令:
r11(config)#banner motd [char c] 同时要以[char c]另起一行结束,描述机器登陆时的说明
r11(config-if)#description 描述接口注释,需要在端口配置模式下
配置console口密码:
------------------
r11(config)#line console 0 进入到consolo 0
r11(config-line)#password eliuzd 设置一个密码为“eliuzd”
r11(config-line)#login 设置login(登陆)时使用密码
------------------
配置enable密码:
------------------
r11(config)#enable password cisco 设置明文的enable密码
r11(config)#enable secret eliuzd 设置暗文的enable密码(优先于明文被使用)
r11(config)#service password-encryption 加密系统所有明文密码(功能较弱)
------------------
配置Telnet密码:
------------------
r11(config)#line vty 0
r11(config-line)#password cisco
r11(config-line)#login
------------------
=========================================================
配置虚拟回环接口:(回环接口默认为UP状态)
(config)# 下,虚拟一个端口
------------------
r11(config)#interface loopback 0 创建一个回环接口loopback 0
r11(config-if)#ip address 192.168.1.1 255.255.255.0 配置它的IP地址
no * 做配置的反向操作(删除配置)
------------------
=========================================================
路由器 DCE/DTE 仅存在广域网中
r11#show controllers serial 0 用于查看DCE与DTE的属性,serial 0路由器广域网端口
DCE的Router需要配置时钟频率
r11(config-if)#clock rate ? 配置DCE接口的时钟频率(系统指定频率)
一般实际情况下,这个不需要自己配置,因为DCE设备都在运营商那。
=========================================================
r11#show interfaces serial 1
查看端口状态,第一行提示说明
Serial1 is administratively down, Line protocol is down
没有使用no shutdown命令激活端口
Serial1 is down, Line protocol is down
1、对方没有no shutdown激活端口
2、线路损坏,接口没有任何连接线缆
Serial1 is up, line protocol is down
1、对方没有配置相同的二层协议,Serial接口default encapsulation: HDLC
2、可能没有配置时钟频率
3、可能没有正确的配置三层地址(可能)
Serial1 is up,line protocol is up
接口工作正常
=========================================================
查看CDP信息的几个命令:
r11#show cdp neighbors 查看CDP的邻居(不含IP)
r11#show cdp neighbors detail 查看CDP的邻居(包含三层的IP地址)
r11#show cdp entry * 查看CDP的邻居(包含三层的IP地址)老命令
r1(config)#no cdp run 在全局配置模式关闭CDP协议(影响所有的接口)
r1(config-if)#no cdp enable 在接口下关闭CDP协议(仅仅影响指定的接口)
r11#clear cdp table 清除CDP邻居表
r11#show cdp interface serial 1 查看接口的CDP信息
注意两个提示:
Sending CDP packets every 60 seconds(每60秒发送cdp数据包)
HoldTime 180 seconds(每个cdp数据包保持180秒)
=========================================================
r11(config)#ip host <name> <ip> 设置静态的主机名映射
r11#show sessions 查看设置过的映射主机名
=========================================================
Telnet *.*.*.* 被telnet的设备,需要设置line vty的密码,如果需要进入特权模式需要配置enable密码
例:
------------------
Router#telnet 192.168.1.1
------------------
Router#show users 查看登录到本地的用户
Router#show sessions 查看从本地telnet外出的会话
Router#clear line * 强制中断“telnet到本地”的会话
Router#disconnect * 强制中断“telnet外出”的会话
=========================================================
以下只是在实验时连接交换机上切换登陆路由器的命令,可以跳过。
>show hosts 显示当前的主机名配置
>show sessions 显示当前的外出TELNET会话
>clear line XXX 清除线路
<ctrl>+<z> 直接返回到特权模式
<ctrl>+<shift>+<6> + x
保持 HTTP 连接 的选项
说明如下
启用保持 HTTP 连接
大多数 Web 浏览器都要求服务器对多个请求保持连接打开状态,这称为“保持 HTTP 连接”。保持连接是一个 HTTP 规范,能够显著增强服务器性能。如果没有它,浏览器将不得不对包含多个元素(如图形)的网页发出多个连接请求。可能需要为每个元素都生成一个连接。这些额外的请求和连接需要额外的服务器活动和资源,这将降低服务器的效率,还会使浏览器速度变慢并且响应不灵敏,特别是对高滞后时间(慢)连接更是如此。安装过程中,将默认启用“保持 HTTP 连接”。
第一反应就是ASP中的Response.IsClientConnected,上面的连接超时应该和这个有关系。以前一直纳闷ASP这个东东的实现原理和具体作用
然后想了下,如果这个是开启的,ajax的多次请求应该会类似数据库的连接那样,连接是一直存在的。会节省很多资源。这里应该会有很多东西值得研究。先记录下