ThinkCMF在iis7上安装后路由不生效_URL重写模块检查与修复
企业环境中Windows Server + iis7 + SQL Server或MySQL的组合很常见,ThinkCMF作为PHP框架在这种环境下的部署需要特定的配置技巧。iis7通过FastCGI方式运行PHP,性能稳定但配置项较多,包括应用池模式、处理程序映射、URL重写规则、MIME类型等。本文把这些配置项逐一说明,给出ThinkCMF在iis7上的最佳实践配置。
iis7下配置Redis缓存提升性能。安装Redis for Windows,启动Redis服务。在PHP中安装php_redis扩展,下载对应PHP版本和线程安全模式的redis.dll,放入ext目录,php.ini中添加extension=php_redis.dll。重启应用池后用phpinfo确认redis扩展已加载。在ThinkCMF的缓存配置中把驱动改为redis,填写redis服务器地址和端口,配置完成后框架的缓存数据会存入redis,页面加载速度和数据库压力都有明显改善。
配置SSL证书实现HTTPS访问。在iis管理器中「服务器证书」功能中导入证书文件(.pfx格式),然后在网站绑定中添加https类型,选择导入的证书,端口443。配置完成后通过web.config添加HTTP到HTTPS的301重定向规则,确保所有访问走HTTPS。ThinkCMF后台系统设置中把网站地址改为https开头,同时检查模板中是否有硬编码的http资源链接,改为https或协议相对路径避免混合内容警告。
下载ThinkCMF安装包,官网下载最新稳定版,解压后得到完整的项目文件。通过FTP或远程桌面把文件上传到服务器网站目录,如C:inetpubwwwrootthinkcmf。上传完成后检查目录结构,应该能看到app、data、public、runtime、vendor等目录,以及index.php入口文件。如果使用public作为运行目录,把iis网站物理路径指向public子目录。
设置目录权限。ThinkCMF需要写入权限的目录包括data、runtime、public/upload。在iis7中,右键目录选择「属性」-「安全」,添加IIS_IUSRS用户和当前应用池身份用户,授予「修改」和「写入」权限。如果不设置写入权限,安装时会提示目录不可写,安装后也会出现缓存无法生成、文件上传失败、日志无法写入等问题。
环境检测通过后进入数据库配置页面,填写数据库地址(本地填localhost)、数据库名、数据库用户名、数据库密码、表前缀(默认cmf_,可以自定义增加安全性)。填写完成后点击「测试数据库连接」,提示连接成功后继续。下一步创建管理员账号,填写管理员用户名、密码、邮箱,点击「开始安装」,系统自动创建数据表并写入配置信息,安装完成后提示成功并给出后台入口地址。
web.config文件保存后不需要重启iis,配置会自动生效。测试伪静态是否生效的方法:访问一个不存在的路径如http://域名/test/123,如果页面显示ThinkCMF的404页面而不是iis默认404,说明伪静态规则已生效,请求被转发到了index.php处理。如果还是iis默认404页面,检查URL重写模块是否安装、web.config是否放在正确目录、规则代码是否有语法错误。
如果ThinkCMF安装在子目录中,伪静态规则需要相应调整。在web.config的action中,url改为子目录名/index.php/{R:1},如安装在thinkcmf子目录则写为thinkcmf/index.php/{R:1}。同时ThinkCMF后台系统设置中也要配置网站根路径为子目录路径。子目录部署比根目录部署多一层路径处理,配置时要确保伪静态路径和框架配置一致,否则会出现页面跳转错误和资源加载失败。
运维评价:「公司服务器都是Windows+iis7,部署PHP项目一直用FastCGI方式,ThinkCMF按文中步骤配置,应用池选无托管代码集成模式,性能稳定,跑了两年没出过问题」「安全加固配置非常实用,隐藏敏感文件、设置安全头、配置IP限制,这些措施加上之后安全检测评分从60分升到90分」。
经验总结:iis7环境安装ThinkCMF的关键是三个模块——URL重写模块负责伪静态、FastCGI处理程序负责PHP运行、目录权限负责文件读写。这三个配置正确,安装和运行基本不会有大问题。遇到问题先看PHP错误日志和iis日志,大部分问题都能从日志中找到原因。Windows环境运行PHP的性能和稳定性现在已经很好,企业内网或已有Windows服务器的场景完全可以放心使用。

更新时间:2026-08-27 11:57:05