注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Smeagol的博客

 
 
 

日志

 
 
 
 

让iis支持php  

2008-05-26 22:05:37|  分类: 服务器 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

参考资料:http://docs.php.net/manual/zh/install.windows.iis.php

关于调试的的资料:http://www.ibm.com/developerworks/cn/opensource/os-debug/

1、下载php压缩包,解压到c:\php。

2.将php目录加入到windows路径path中去:进入控制面板并打开“系统”图标(开始 -> 设置 -> 控制面板 -> 系统,Windows XP/2003 中是:开始 -> 控制面板 -> 系统,选择“高级”标签页,点击“环境变量”按钮,在“系统变量”栏中,找到 Path 这一项,鼠标双击 Path 这一项,在最后加入你的 PHP 目录,包括前面的“;”(例如:;C:\php),点击“确定”并重新启动电脑。

3、备份php目录中的php.ini-recommmended,修改php.ini-recommended的文件名为php.ini。在php.ini的文件中找到extension_dir,设置为c:\php\ext。(例如:extension_dir = "c:\php\ext")。doc_root设置为"c:\inetpub\wwwroot"。

4、对于win2000,启动Internet 信息服务,点击一个默认网站的右键——属性。选择“主目录”,将执行权限改为“纯脚本”,点“配置”按钮,选择“映射”标签页。点击“添加”按钮,将“可执行文件”指向适当的 ISAPI DLL。例如 PHP 5 的值可能是:C:\php\php5isapi.dll。在“扩展名”中填入 .php。选择“全部动作”(或者“限制为”留空),选中“脚本引擎”。然后点击“确定”。完全停止 IIS(NET STOP iisadmin)重新启动 IIS(NET START w3svc)

    对于 IIS 6(2003 Server),打开 IIS 管理器,进入 web 服务扩展,点击“添加一个新的 web 服务扩展”,“扩展名”中输入名称,例如 PHP,再点击“添加”按钮,点击“浏览”选择要么 ISAPI 文件(php4isapi.dllphp5isapi.dll)或者 CGI 文件(php.exephp-cgi.exe)作为“文件路径”后点“确定”,然后选中“设置扩展状态为允许”并点“确定”。

对于每个要关联为 PHP 脚本的后缀都要重复以上步骤。.php 是最常用的,此外为兼容一些遗留下来的老程序可能还需要加上 .php3

如果过些时候之后碰到 CPU 占用率达到 100%,则取消选中“缓存 ISAPI 应用程序”(“主目录”下点“配置”按钮”)。

关于优化

安装zend optimizer

http://www.zend.com/en/products/guard/optimizer/

这个的安装比较简单,按着步骤做,他自己帮我们会完成的。期间要选一下php的目录。和所用的web服务器。

经过这些设置之后,我只能使用php的基本功能<?echo "nihao"?>。在php.ini中,还有许多要设置的地方。如要让php使用mysql,就要打开mysql的扩展。php.ini中应该有这么一句话;extension=php_mysql.dll。把这句话前面的“;”去掉,就是打开扩展了。此外,我把c:\php\ext也加入了path里。在这里,用<?phpinfo();?>来调试可能是更好的选择。

php在默认情况下,显示错误应该是关着的。要找到以下几个地方:

display_errors = Off
error_reporting = E_ALL
改为如下:

display_errors = On

error_reporting = E_ALL & ~E_NOTICE

经过以上设置,出现了一些问题:

no input file special?

用<?phpinfo()?>测试,php.ini的路径一直位于c:\windows下。当放置一个php.ini在c:\windows下时,改extension_dir = "c:\php\ext"。但<?phpinfo()?>测试中,extension_dir却是指向c:\php5这个目录的。(待解决)

PHP 加载配置文件优先顺序是这样的:

  1. SAPI 模块所指定的位置(Apache 2 中的 PHPIniDir 指令,CGI 和 CLI 中的 -c 命令行选项,NSAPI 中的 php_ini 参数,THTTPD 中的 PHP_INI_PATH 环境变量) ;
  2. HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath(Windows 注册表位置) ;
  3. PHPRC 环境变量 ;
  4. 当前工作目录(对于 CLI) ;
  5. web 服务器目录(对于 SAPI 模块)或 PHP 所在目录(Windows 下其它情况) ;
  6. Windows 目录(C:\windows 或 C:\winnt),或 --with-config-file-path 编译时选项指定的位置 ;)

这里我是加了phprc环境变量,然后重启。

配置完记得重启电脑。可以在cmd里运行php --ini来看php.ini是否被正确加载。这时用<?phpinfo();?>看里面的loaded configuration file 是 c:\php\php.ini。extension_dir也已经被改过来了。。

如果浏览器显示空白,查看源码发现php源代码被直接输出了。先把short_open_tag = Off 改成on 不行的话在iis的主目录——配置中,把缓存isapi关掉。

猜想:php.ini中的设置的目录如果在磁盘中没有,会引起"invaild access to memory location"?

我们自己的服务器上register_globals是on的。

  评论这张
 
阅读(67)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017