在 Windows IIS 环境下部署 Laravel 框架完整指南

Ruby
Ruby
发布时间:2026-10-15 | 2人浏览过
原创

深入对比发现,目前 PHP 领域最流行的 Laravel 框架在功能架构上与 ASP.NET MVC 高度相似,差异主要在于底层实现方式。要在 Windows IIS 环境中成功运行 Laravel,关键在于正确配置 PHP 的 FastCGI 模式、理解其目录结构(public 作为入口),以及处理 URL 路由重写与数据库兼容性问题。

准备条件:本地开发环境基础

在开始配置之前,请确认你的服务器或开发机运行的是 Windows 系统(文中示例为 Win7/Server 2008 R32位,适用于大多数现代 Windows Server)。由于 Laravel 依赖 Composer 且需要较新的 PHP 版本,确保你的系统已安装 Microsoft Visual C++ Redistributable 包是至关重要的第一步,缺少此组件会导致 PHP 无法加载。

第1步:安装与配置 PHP

Laravel 对 PHP 版本有严格要求,建议前往 http://windows.php.net/download/ 下载对应版本的 Thread Safe (TS) 或 Non-Thread Safe (NTS) 版本。对于 IIS 环境,通常推荐使用 NTS 版本以获得更好的性能。

操作注意:如果你使用的是 Windows Server 配合 IIS,需确保下载的文件名中包含 VC11 或更高版本的标识(如 VC11 x86 Non Thread Safe)。这是因为 PHP 依赖微软的 C++ 运行库。

  1. 将下载的 .zip 文件解压到指定的目录,例如 C:\PHP。
  2. 复制一份 php.ini-development 并重命名为 php.ini。
  3. 打开 php.ini,找到 extension_dir 属性,将其修改为绝对路径,例如:extension_dir = "C:/PHP/ext"。
  4. 根据需要启用必要的扩展(如 pdo_mysql, mbstring, gd 等)。去掉对应的 ;extension=xxx.dll 前面的分号即可。

第2步:在 IIS 中配置 PHP 支持

IIS 默认不支持 PHP,需要通过 FastCGI 模块进行集成。虽然可以使用命令行工具 php-cgi.exe 注册 Handler Mappings,但为了可视化管理方便,许多开发者会选择安装第三方管理工具(注:原教程提及 phpmanager,该工具已停止维护,现推荐直接在 IIS 管理器中或通过 Web Platform Installer 配置,若习惯图形界面可使用类似功能的现代替代品)。

即便不使用额外插件,原理也是一样的:在 IIS 中映射 .php 请求到 PHP CGI 程序。

关键配置点:

  • FastCGI 设置:确保 IIS 的 CGI 模块已开启。
  • 缓存优化:在生产或准生产环境中,建议在 php.ini 或 IIS 配置中启用 Wincache。例如启用 php_wincache.dll 可以显著提升 PHP 代码执行速度。

安装或配置完毕后,可以通过 IIS 管理器查看站点属性,确认 PHP Manager 或相关的 Handler Mapping 图标出现,这表明 IIS 已成功识别 PHP 处理能力。

在配置过程中,务必核对 PHP Extensions 列表与 php.ini 中的设置是否一致。如果两者冲突,优先以实际加载结果为准。启用 wincache 后,重启 IIS 服务以生效。

第3步:下载并初始化 Laravel 项目

Laravel 是一个重度依赖依赖管理的框架,必须安装 Composer(PHP 的包管理器,类似于 Node.js 的 npm)。

  1. 安装 Composer:从官网下载 Windows 安装程序,并确保在安装向导中正确指定了你刚才安装的 PHP 路径。
  2. 创建项目:新建一个文件夹用于存放项目(如 D:\Websites\LaravelApp)。
    • 在此文件夹空白处 Shift + 右键,选择“在此处打开 Powershell 窗口”或“命令提示符”。
    • 输入命令:
      composer create-project laravel/laravel --prefer-dist
  3. 等待安装完成:Composer 会自动下载 Laravel 框架及其所有依赖组件至 vendor 文件夹中。

第4步:MySQL 配置与兼容性调整

安装 MySQL 服务并非难点,但在运行 Laravel 时,可能会遇到 Eloquent ORM 报错的情况,这通常与 MySQL 的 SQL 模式有关。

常见问题与解决:

Laravel 某些版本的迁移文件或 ORM 操作可能对 STRICT_TRANS_TABLES 敏感。如果发现插入或更新数据时抛出异常,请检查 MySQL 配置文件(通常是 my.ini):

找到 sql-mode 参数:

# Set the SQL mode to strict
# sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

尝试修改为(移除 STRICT 相关模式,视具体 Laravel 版本而定,新版的 Laravel 通常能更好地处理严格模式,若遇阻可暂时放宽):

sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

修改后重启 MySQL 服务。如果在正常项目中未遇到此错误,可保持默认推荐配置。

第5步:配置 IIS 虚拟站点

这是新手最容易出错的一步。Laravel 的路由入口并不是项目的根目录,而是 public 文件夹。

  1. 添加网站:在 IIS 管理器中添加一个新站点。
  2. 物理路径:指向你 Laravel 项目下的 public 子文件夹(例如 D:\Websites\LaravelApp\public)。
  3. 主机名:设置本地测试域名,如 laravel.test,并记得在 Windows 的 C:\Windows\System32\drivers\etc\hosts 文件中添加相应解析:127.0.0.1 laravel.test。
  4. 应用程序池:确保使用该站点的 .NET CLR 版本设置为“无托管代码”,集成管道模式根据需求选择(通常集成模式即可,取决于 PHP FastCGI 的配置要求)。

配置完成后,可以通过 phpinfo() 页面验证当前 IIS 使用的 PHP 版本是否正确。

第6步:处理无后缀 URL 的 404 错误

Laravel 采用单入口文件机制,URL 通常不带 .php 后缀(如 example.com/users)。在 IIS 上,如果没有相应的 URL Rewrite 规则,访问这些路由会直接返回 404 Not Found。

  1. 安装 URL Rewrite 模块:如果 IIS 管理器中没有“Rewrite”图标,请通过 Windows Update 或 Microsoft Web Platform Installer 安装 IIS URL Rewrite Module。
  2. 导入规则:
    • 进入 IIS 管理器,选中你的 Laravel 站点。
    • 双击打开 Rewrite Rules。
    • 在右侧操作面板点击 Import Rules...。
  3. 选择规则文件:在 Laravel 根目录(即 public 文件夹外层的目录,有些版本规则在 public 内,需确认 public/.htaccess 是否存在)中找到 .htaccess 文件,或者手动添加等效的 IIS web.config 规则。通常 Laravel 会在 public 目录下放置 .htaccess,我们需要将其逻辑转换为 IIS 规则或直接导入该文件内容供 IIS 读取。

导入成功后,点击右侧的“Apply”应用更改。此时,再次访问不带后缀的路由,应该就能正常显示页面了。

总结

至此,你在 Windows IIS 环境下搭建 Laravel 开发环境的全部流程已完成。访问配置的域名,你将看到 Laravel 默认的欢迎页面。这套环境不仅可用于开发,稍作优化(如启用 OPcache、Wincache、配置 SSL)后即可投入生产使用。

以上就是在 Windows IIS 环境下搭建 Laravel 开发环境的详细内容,更多关于 PHP 框架部署与优化的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表