如何在Windows Server上安装配置PHP 8以运行Codeigniter应用?
Windows Server 环境部署适配CodeIgniter的PHP 8操作指南
你熟悉普通桌面Windows的PHP配置操作的话,只要抓住Windows Server和桌面系统的核心差异点——也就是和IIS的适配逻辑、系统级权限策略、服务稳定性配置,整个流程会顺很多,不用重新从零学起:
前置必需组件准备
- 确认Windows Server版本和PHP 8的兼容性:Server 2019及以上可直接使用全量PHP 8.0/8.1/8.2稳定分支,Server 2016最高兼容PHP 8.1,下载时选x64架构的版本,注意:IIS环境必须使用PHP的线程安全(TS)版本,不要混淆桌面系统配Nginx/Apache时常用的NTS版本,不然会出现脚本运行随机崩溃的问题
- 通过服务器管理器安装IIS角色时,务必勾选「CGI」组件(Server默认不会勾选这个,缺了就没法跑PHP);安装完成后通过IIS自带的管理面板加装
URL Rewrite、FastCGI两个内置模块,这俩是CodeIgniter重写路由、解析PHP脚本的必需依赖
PHP目录与基础配置(和桌面Windows操作的核心差异)
- 把下载的PHP压缩包解压到无中文、无空格的固定路径,比如
C:\php8,别放到带空格的Program Files目录或者桌面这类临时路径下 - 复制目录下的
php.ini-production文件重命名为php.ini,修改以下关键配置:- 去掉
extension_dir = "ext"前的注释,依次打开CodeIgniter全版本依赖的扩展注释:extension=curl、extension=mbstring、extension=mysqli、extension=pdo_mysql、extension=openssl、extension=fileinfo - 调整安全参数:开启
expose_php = Off、关闭allow_url_include = Off,设置和项目匹配的memory_limit = 256M、upload_max_filesize = 20M - 把
C:\php8路径加入系统级环境变量Path,不要只改当前用户的环境变量——Windows Server的IIS进程是以系统权限运行的,读不到单用户的环境变量配置
- 去掉
IIS绑定PHP解析配置(桌面Windows无对应流程)
- 打开IIS管理器,在服务器根节点的「FastCGI设置」中,添加应用程序路径为
C:\php8\php-cgi.exe;在该条目的属性中,把空闲超时调整为300秒,避免Server默认的资源回收策略过早杀掉PHP进程 - 在IIS根节点的「处理程序映射」中新增模块映射:请求路径填写
*.php,模块选择FastCgiModule,可执行文件选中刚才的php-cgi.exe,命名为PHP 8 FastCGI,勾选“允许执行脚本”权限 - 权限配置:给PHP解压目录、后续存放CodeIgniter项目的目录,分配
IUSRS、IIS_IUSRS两个内置用户组的读取、执行、目录浏览权限,不要随便给写入权限,降低服务器被入侵的风险
CodeIgniter部署收尾校验
- 在CodeIgniter项目根目录,通过之前安装的URL Rewrite模块生成对应web.config配置,替换原本桌面系统用的.htaccess重写规则,实现隐藏index.php入口的效果
- 检查Windows Server防火墙规则,开放80/443端口的外部访问权限
- 先部署一个简单的PHP探针页,确认所有CodeIgniter依赖的扩展都正常加载,再依次测试框架路由、数据库连接、文件上传流程,排除权限导致的运行报错
内容的提问来源于stack exchange,提问作者Kelly
相关产品推荐
相关产品推荐

