Windows Server 2003 和 PHP 5.x 已经是过时的技术,不再接收任何安全更新,将其暴露在公网上将面临极高的安全风险,极易被黑客攻击,强烈建议仅在隔离的内网环境(如测试环境、开发环境)中使用,并且不要处理任何敏感数据。

本指南将使用经典的组合:IIS 6.0 + PHP 5.x + MySQL 5.x。
第一步:准备工作
-
操作系统:确保你有一台安装好的 Windows Server 2003 系统,并且安装了 IIS 6.0。
- 如何安装 IIS 6.0:
- 进入“控制面板” -> “添加或删除程序” -> “添加/删除 Windows 组件”。
- 勾选 “应用程序服务器” -> “Internet 信息服务(IIS)”。
- 在 IIS 子组件中,确保勾选了 “万维网服务” 及其下的 “Active Server Pages” 和 “万维网服务” 中的所有默认选项。
- 点击“下一步”完成安装。
- 如何安装 IIS 6.0:
-
下载所需软件:
- PHP 5.x:由于 IIS 6.0 的兼容性,推荐使用 PHP 5.6 版本,这是最后一个稳定且兼容性较好的版本。
- 下载地址:http://windows.php.net/download/#php-5.6
- 选择 VC11 x86 Non Thread Safe 版本(nts),IIS 6.0 的 FastCGI 模式与 Non Thread Safe 版本配合得更好。
- MySQL 5.x:选择一个稳定的版本,如 MySQL 5.5 或 MySQL 5.7。
- 下载地址:https://downloads.mysql.com/archives/community/ (选择 5.5 或 5.7 版本)
- IIS FastCGI:这是让 IIS 6.0 能够运行 PHP 的关键模块。
- 下载地址:https://www.iis.net/downloads/microsoft/fastcgi-for-iis
- 下载
x86版本的安装包。
- PHP 5.x:由于 IIS 6.0 的兼容性,推荐使用 PHP 5.6 版本,这是最后一个稳定且兼容性较好的版本。
第二步:安装和配置 PHP
-
安装 PHP
(图片来源网络,侵删)- 将下载的 PHP 压缩包(
php-5.6.40-nts-Win32-VC11-x86.zip)解压到一个固定目录,C:\php。
- 将下载的 PHP 压缩包(
-
配置 PHP
- 进入
C:\php目录,找到php.ini-development文件,将其复制一份并重命名为php.ini,这是我们的主配置文件。 - 编辑
php.ini文件,使用记事本或专业编辑器(如 Notepad++)打开,并修改以下关键项:extension_dir = "C:\php\ext":确保扩展目录路径正确。date.timezone = "Asia/Shanghai":取消注释并设置你的时区。cgi.fix_pathinfo=1:取消注释,这很重要,能让 PHP 正确处理路径信息。- 根据需要启用常用扩展,取消前面的分号 :
;extension=php_mysql.dll ; 用于连接旧版 MySQL ;extension=php_mysqli.dll ; 用于连接新版 MySQL (推荐) ;extension=php_gd2.dll ; 用于图像处理 ;extension=php_mbstring.dll ; 用于多字节字符串处理
- 将
php.ini文件复制到两个位置:C:\Windows\(系统目录)C:\php\(PHP 安装目录)
- 进入
-
安装 FastCGI 模块
- 双步你下载的 FastCGI 安装包(
fcgisetup_x86.msi),按照向导完成安装,安装过程会自动配置 IIS。
- 双步你下载的 FastCGI 安装包(
-
配置 IIS 与 FastCGI 的关联
- 安装 FastCGI 后,需要告诉 IIS 如何处理
.php文件。 - 打开 “Internet 信息服务(IIS)管理器”。
- 在左侧窗口中,右键点击你的“网站”或“虚拟目录”,选择“属性”。
- 切换到 “主目录” 选项卡,点击 “配置” 按钮。
- 在 “映射” 选项卡中,点击 “添加” 按钮。
- 在 “可执行文件” 字段中,输入
C:\php\php-cgi.exe的完整路径。 - 在 “扩展” 字段中,输入
.php。 - 确保 “确认文件是否存在” 选项是未勾选状态(这对 IIS 6.0 很重要)。
- 点击 “确定” 保存。
- 安装 FastCGI 后,需要告诉 IIS 如何处理
-
测试 PHP 是否工作
(图片来源网络,侵删)- 在你的网站根目录(
C:\Inetpub\wwwroot)下创建一个名为info.php的文件。 - 为:
<?php phpinfo(); ?>
- 打开浏览器,访问
http://你的服务器IP/info.php。 - 如果能看到一个详细的 PHP 信息页面,说明 PHP 已经成功配置并运行了!
- 在你的网站根目录(
第三步:安装和配置 MySQL
-
安装 MySQL
- 运行你下载的 MySQL 安装包(
mysql-5.7.44-winx64.msi)。 - 选择 "Custom"(自定义安装)以便选择安装路径。
- 按照向导进行安装,在配置阶段,设置一个强密码并记住它,建议选择 "Standard Configuration"(标准配置)。
- 运行你下载的 MySQL 安装包(
-
配置 MySQL
- 安装完成后,MySQL 会自动作为服务运行。
- 你可以通过命令行进行测试,打开 “命令提示符”,进入 MySQL 的
bin目录(C:\Program Files\MySQL\MySQL Server 5.7\bin),然后运行:mysql -u root -p
- 输入你设置的密码,如果能成功进入 MySQL 命令行,说明安装成功。
第四步:配置 PHP 连接 MySQL
为了确保 PHP 能够连接到你刚刚安装的 MySQL,需要进行以下配置:
-
检查 PHP 的 MySQL 扩展
- 回到你之前打开的
info.php页面,在页面中按Ctrl+F搜索mysql和mysqli。 - 如果看到
mysql和mysqli的模块项,Loaded Configuration File显示的是C:\php\php.ini的路径,说明扩展已正确加载。
- 回到你之前打开的
-
测试数据库连接
-
在你的网站根目录下创建一个名为
test_db.php的文件。 -
为:
<?php $servername = "localhost"; $username = "root"; $password = "你在MySQL中设置的密码"; // 创建连接 $conn = new mysqli($servername, $username, $password); // 检测连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } echo "连接成功!"; $conn->close(); ?> -
在浏览器中访问
http://你的服务器IP/test_db.php。 -
如果看到 "连接成功!",恭喜你,整个环境已经搭建完成!
-
第五步:部署你的 PHP 网站
- 将你的 PHP 网站源代码(WordPress, Discuz! 或其他自定义项目)复制到 IIS 的网站根目录,默认是
C:\Inetpub\wwwroot。 - 如果网站需要数据库,请先登录 MySQL 创建数据库和用户,然后导入你的数据库备份文件。
- 修改网站配置文件(如
wp-config.php),填入正确的数据库信息。 - 通过浏览器访问你的网站域名或 IP 地址,网站即可正常运行。
常见问题与解决
-
问题:访问
.php文件时,提示下载文件而不是显示页面。- 原因:IIS 没有正确将
.php扩展名映射到 PHP-CGI。 - 解决:检查第二步第4步中的 IIS “应用程序映射”配置,确保路径和扩展名都正确无误。
- 原因:IIS 没有正确将
-
问题:
phpinfo()页面显示Loaded Configuration File: (none)。- 原因:PHP 找不到
php.ini文件。 - 解决:确保
php.ini文件已经复制到C:\Windows\和C:\php\目录,FastCGI 配置指向了正确的 PHP-CGI 路径。
- 原因:PHP 找不到
-
问题:连接数据库失败,提示
Access denied for user 'root'@'localhost'。- 原因:用户名或密码错误。
- 解决:仔细检查
test_db.php文件中的$password变量值,确保与 MySQL 中设置的 root 密码完全一致。
-
问题:网站提示
Call to undefined function mysql_connect()或mysqli相关错误。- 原因:PHP 的 MySQL 扩展没有被加载。
- 解决:检查
php.ini文件中extension_dir和php_mysql.dll/php_mysqli.dll的配置,确保分号 已被取消。
再次强调,这套组合仅适用于安全隔离的内部环境,对于任何新的项目,请务必使用现代化的操作系统(如 Windows Server 2025/2025 或 Linux)和更新的软件栈(如 PHP 7.4/8.x + Nginx/Apache + MySQL 8.0)。
