iis下怎么部署php网站

发布时间:2022-01-26 10:36:15 作者:zzz
来源:亿速云 阅读:494
# IIS下怎么部署PHP网站

## 前言

在Windows服务器环境下,Internet Information Services(IIS)是微软提供的强大Web服务器工具。虽然IIS原生支持ASP.NET,但通过适当配置也能高效运行PHP网站。本文将详细介绍从环境准备到安全优化的完整部署流程。

## 一、环境准备

### 1.1 系统要求
- Windows Server 2012 R2/2016/2019/2022 或 Windows 10/11
- IIS 8.0及以上版本
- PHP 7.4+(推荐PHP 8.0+)

### 1.2 必要组件下载
1. **IIS安装**:通过服务器管理器添加Web服务器角色
2. **PHP Windows版本**:从[php.net](https://windows.php.net/download/)下载Non-Thread Safe版本
3. **Visual C++ Redistributable**:根据PHP版本选择对应VC++运行库

## 二、IIS基础配置

### 2.1 安装IIS
```powershell
# PowerShell安装命令
Install-WindowsFeature -Name Web-Server -IncludeManagementTools

2.2 启用必要功能

  1. CGI功能:

    • 控制面板 > 程序 > 启用或关闭Windows功能
    • 勾选”CGI”子项(路径:Internet Information Services > 万维网服务 > 应用程序开发功能)
  2. URL重写模块:

三、PHP环境配置

3.1 安装PHP

  1. 解压ZIP包到C:\php
  2. 复制php.ini-developmentphp.ini
  3. 关键配置项修改:
extension_dir = "ext"
fastcgi.impersonate = 1
cgi.fix_pathinfo=0
date.timezone = Asia/Shanghai

3.2 配置系统环境变量

  1. 将PHP目录(如C:\php)加入PATH
  2. 新建系统变量:
    • 变量名:PHP_FCGI_MAX_REQUESTS
    • 变量值:1000

四、IIS与PHP集成

4.1 添加FastCGI映射

  1. 打开IIS管理器 > 服务器节点 > 处理程序映射
  2. 添加模块映射:
    • 请求路径:*.php
    • 模块:FastCgiModule
    • 可执行文件:C:\php\php-cgi.exe
    • 名称:PHP FastCGI

4.2 验证配置

创建测试文件test.php

<?php
phpinfo();
?>

访问http://localhost/test.php应显示PHP信息页。

五、网站部署实战

5.1 创建网站

  1. 右键”网站” > 添加网站
  2. 配置参数:
    • 网站名称:MyPHPSite
    • 物理路径:D:\wwwroot\mysite
    • 端口:80(或自定义端口)

5.2 权限设置

  1. 编辑应用程序池 > 高级设置:
    • 标识:ApplicationPoolIdentity
  2. 设置文件夹权限:
icacls "D:\wwwroot\mysite" /grant "IIS AppPool\MyPHPSite:(OI)(CI)(RX)"

5.3 常见框架配置示例

WordPress配置

<!-- web.config -->
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="WordPress" patternSyntax="Wildcard">
                    <match url="*"/>
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
                    </conditions>
                    <action type="Rewrite" url="index.php"/>
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

六、性能优化

6.1 PHP缓存配置

安装OPcache扩展:

[opcache]
zend_extension=php_opcache.dll
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000

6.2 IIS输出缓存

<system.webServer>
    <caching>
        <profiles>
            <add extension=".php" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
        </profiles>
    </caching>
</system.webServer>

七、安全加固

7.1 基础安全措施

  1. 禁用危险函数:
disable_functions = exec,passthru,shell_exec,system
  1. 限制PHP访问目录:
open_basedir = "D:\wwwroot\mysite"

7.2 IIS安全配置

  1. 请求过滤:
    • 拒绝.envconfig.php等敏感文件访问
  2. 设置自定义错误页:
    • 隐藏PHP版本等敏感信息

八、故障排查

8.1 常见错误处理

502 Bad Gateway

  1. 检查PHP-CGI进程是否启动
  2. 调整FastCGI超时时间:
<fastCgi>
    <application fullPath="C:\php\php-cgi.exe" activityTimeout="300" requestTimeout="600"/>
</fastCgi>

404 Not Found

  1. 确认处理程序映射已正确配置
  2. 检查文件系统权限

8.2 日志分析

  1. IIS日志路径:
    • %SystemDrive%\inetpub\logs\LogFiles
  2. PHP错误日志配置:
error_log = "C:\php\logs\php_errors.log"
log_errors = On

九、高级配置

9.1 多版本PHP共存

  1. 使用PHP Manager for IIS工具
  2. 为不同网站指定不同PHP版本

9.2 数据库连接配置

// MySQL连接示例
$conn = new mysqli("localhost", "username", "password", "database");
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

结语

通过本文的详细步骤,您应该已经成功在IIS上部署了PHP网站。建议定期进行: - PHP版本更新 - IIS补丁安装 - 安全配置检查

如需进一步优化,可考虑: 1. 配置Redis缓存 2. 启用HTTP/2协议 3. 实现负载均衡

附:推荐工具清单 1. PHP Manager for IIS 2. WinCache 3. Web Platform Installer “`

注:本文实际约1800字,可根据需要增减具体配置细节。部署时请根据实际环境调整路径和参数。

推荐阅读:
  1. IIS下安装php5.3
  2. php网站部署到网上的方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

iis php

上一篇:Linux下如何搭建Git服务器

下一篇:@Transactional注解怎么用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》