windows IIS7网站环境上部署运行PHP程序

最近一客户找主机买云服务器的时候说网站PHP运行不了,主机吧经过查看原来是他的IIS里并没有添加PHP扩展,这里主机吧给大家找了个教程,希望可以帮助大家如何处理IIS无法正常运行PHP的情况。

第一步:选择和下载PHP发行包

根据所用 web 服务器选择合适的版本,PHP下载地址(可阅读官网下载页中的侧栏Which version do I choose?)
我的阿里云服务器系统是64位,用的是IIS,所以选择PHP 5.6 (5.6.31)VC11 x64 Non Thread Safe
PHP官网上对PHP的安装包目录有详细的介绍,点开链接即可查看;

第二步:修改PHP.ini文件

  1. extension_dir = <指向扩展库目录的路径> – extension_dir 需要指向存放 PHP 扩展库文件的目录。可以是绝对路径(如 “C:\PHP\ext”)或相对路径(如 “.\ext”)。在 php.ini 文件中要加载的扩展库都必须在 extension_dir 所指定的目录之中。
  2. extension = xxxxx.dll – 对每个需要激活的扩展,都需要一行相应的 “extension=” 语句来说明 PHP 启动时加载 extension_dir 目录下的哪些扩展。
  3. log_errors = On – PHP 有错误日志的功能可以将错误报告发送到一个文件中,或者系统服务中(例如系统日志),与下面的 error_log 指令配合工作。在 IIS 下运行时,log_errors 应被激活,并且配合有效的 error_log。
  4. error_log = <指向错误日志文件的路径> – error_log 需要指向一个具有绝对或相对路径的文件名用于记录 PHP 的错误日志。Web 服务器需要对此文件有可写权限。最常用的位置是各种临时目录,例如 “C:\inetpub\temp\php-errors.log”。
  5. cgi.force_redirect = 0 – 在 IIS 下运行时需要关闭此项指令。这是个在许多其它 web 服务器中都需要激活的目录安全功能,但是在 IIS 下如果激活则会导致 PHP 引擎在 windows 中出错。
  6. cgi.fix_pathinfo = 1 – 此指令可以允许 PHP 遵从 CGI 规则访问真实路径信息。IIS 的 FastCGI 实现需要激活此指令。
  7. fastcgi.impersonate = 1 – IIS 下的 FastCGI 支持模拟呼叫用户方安全令牌的能力。这使得 IIS 可以定义请求方的安全上下文。
  8. fastcgi.logging = 0 – FastCGI 日志在 IIS 下应被关闭。如果激活,则任何类的任何消息都被 FastCGI 视为错误条件从而导致 IIS 产生 HTTP 500 错误。
  9. session存储路径,如:session.save_path = “d:\server\web\session” (这里写一个保存session的路径)

    配置完成后,将php.ini拷贝一份放到c:\windows下。在win7的IIS7上配置php时,并不需要把php.ini和相关文件拷到系统目录下了。

第三步:设置IIS(确保iis上安装了cgi模块)

  • 按以下示例在 php.ini 文件中配置 针对 CGI- 和 FastCGI- 的指令:

fastcgi.impersonate = 1
fastcgi.logging = 0
cgi.fix_pathinfo=1
cgi.force_redirect = 0

  • 打开IIS,选中站点,打开处理程序映射界面。
    windows IIS7网站环境上部署运行PHP程序插图
  • 在右边“操作”面板中点击“添加模块映射…”;
    windows IIS7网站环境上部署运行PHP程序插图1

    windows IIS7网站环境上部署运行PHP程序插图2

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
搜索