在 Internet Information Services 中配置 PHP 模块以便支持 PHP 语言

之前本来为了搭建自托管音乐网站而下载了一个 Windows 版本的 PHP ,但是一直拖延着没有进一步搭建配置。

这不刚刚搞了IIS就干脆搞个 IIS + PHP 的测试……

PHP 就使用前面下载的 php-8.3.13-Win32-vs16-x64.zip,然后在下载扩展的时候再细看 IIS 要选择非线程安全的版本。

1、打开 开始 -> 控制面板 -> 程序与功能 -> 打开或关闭windows功能
勾选Internet信息服务,并点击前面的加号,勾选 万维网服务 -> 应用程序开发功能 -> CGI

2、修改php.ini文件
找到php.ini-development,改名为php.ini,用文本编辑器打开

# 找到; extension_dir = "ext"   去掉; 改为
extension_dir = "ext"
# 找到;cgi.force_redirect = 1   去掉; 改为	
cgi.force_redirect = 0   
# 找到;cgi.fix_pathinfo=1   去掉; 改为
cgi.fix_pathinfo=1
# 找到;fastcgi.impersonate = 1    去掉; 改为
fastcgi.impersonate = 1

3、添加php处理程序,添加模块映射

3.1、打开Internet信息服务管理器
3.2、点击处理程序映射,然后点击添加模块映射
请求路径:*.php
模块:FastCgiModule
可执行文件(可选):C:\php-8.3.13-Win32-vs16-x64\php-cgi.exe
名称:PHP

4、修改默认文档
添加默认文档index.php

5、访问测试

浏览器访问https://iis-php.147180.com/出现了503错误,一开始以为是用户权限问题就给文件夹不断的增加用户甚至都给“最危险”的Everyone,但依旧是503错误……

后面在Windows PowerShell中执行php.exe -v直接没有反应,操作了几个都一样是没任何输出哪怕是报错。

后来改到命令提示符中执行时出现弹窗错误提示:

由于找不到VCRUNTIME140.dll,无法继续执行代码。重新安装程序可能会解决此问题。

这才让我知道了报错的原因。

但是一开始只安装Microsoft Visual C++ 2015 Redistributable时出现了其他的错误

PHP Warning:  'C:\WINDOWS\SYSTEM32\VCRUNTIME140.dll' 14.0 is not compatible with this PHP build linked with 14.29 in Unknown on line 0

最后改成Microsoft Visual C++ 2015-2022 Redistributable时终于能正常输出且网站访问也是正常输出了……

C:\php-8.3.13-Win32-vs16-x64>php.exe -v
PHP 8.3.13 (cli) (built: Oct 22 2024 21:08:02) (ZTS Visual C++ 2019 x64)
Copyright (c) The PHP Group
Zend Engine v4.3.13, Copyright (c) Zend Technologies

C:\php-8.3.13-Win32-vs16-x64>php-cgi.exe -v
PHP 8.3.13 (cgi-fcgi) (built: Oct 22 2024 21:08:01)
Copyright (c) The PHP Group
Zend Engine v4.3.13, Copyright (c) Zend Technologies

ChiuYut

2024年11月03日

发布者

ChiuYut

咦?我是谁?这是什么地方? Ya ha!我是ChiuYut!这里是我的小破站!