// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= 在 Windows 中配置 PHP 开发环境
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: 在 Windows 中配置 PHP 开发环境 - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, 在 Windows 中配置 PHP 开发环境

本教程介绍了在 Windows 操作系统上配置 PHP 开发环境的两种方法。第一种方法是安装和配置 AMP (*A*pache、*M*ySQL、*P*HP) 包，这种方法最为简便。本教程介绍了如何安装 XAMPP 包。第二种方法是单独安装和配置每个组件。


*要学习本教程，您需要具备以下软件和资源。*

|===
|软件或资源 |要求的版本 

|link:https://netbeans.org/downloads/index.html[+NetBeans IDE+] |PHP 下载包 

|PHP 引擎 |版本 5。包含在 link:http://www.apachefriends.org/en/xampp-windows.html[+XAMPP-Windows+] 中。 

|Web 服务器 |推荐使用 link:http://httpd.apache.org/download.cgi[+Apache HTTP Server 2.2+]。
包含在 XAMPP Windows 中。 

|数据库服务器 |推荐使用 link:http://dev.mysql.com/downloads/mysql/5.1.html[+MySQL Server 5.0+]。
包含在 XAMPP Windows 中。 

|PHP 调试器（可选） |link:http://www.xdebug.org[+XDebug 2.0 或更高版本+]。
 
|===

通常，开发和调试都是在本地 Web 服务器上执行，而生产环境位于远程 Web 服务器上。link:./remote-hosting-and-ftp-account.html[+使用 NetBeans IDE 在远程 Web 服务器上部署 PHP 应用程序+]中介绍了如何设置远程 Web 服务器。本教程会引导您设置本地 Web 服务器。PHP 支持可以添加到许多本地 Web 服务器（IIS、Xitami 等）上，但最常用的是 link:http://httpd.apache.org/download.cgi[+Apache HTTP 服务器+]。Apache HTTP 服务器包含在本教程中使用的 XAMPP AMP 包中。有关单独安装和配置 Apache HTTP 服务器的信息，请单击link:http://httpd.apache.org/docs/2.2/install.html[+此处+]。


== 所需的软件

要创建、运行和调试 PHP 项目，需要以下软件：

* 用于 PHP 的 NetBeans IDE。可以从link:https://netbeans.org/downloads/index.html[+此处+]进行下载。
* Web 服务器。通常，开发和调试都是在本地 Web 服务器上执行，而生产环境位于远程 Web 服务器上。当前版本允许使用本地服务器。未来版本将支持通过 FTP 访问使用远程服务器。PHP 支持可以添加到许多 Web 服务器（IIS、Xitami 等）上，但最常用的是 link:http://httpd.apache.org/download.cgi[+Apache HTTP 服务器+]。有关如何安装和配置 Apache 2.2 的信息，请单击link:http://httpd.apache.org/docs/2.2/install.html[+此处+]。

* PHP 引擎。支持的版本是 PHP5。可以从link:http://www.php.net/downloads.php[+此处+]进行下载。
* PHP 调试器。用于 PHP 的 NetBeans IDE 使您能够使用 link:http://www.xdebug.org[+XDebug+]，但使用调试器是可选的。推荐版本为 XDebug 2.0 或更高版本，因为它与 PHP5 兼容。
* 数据库服务器。您可以使用多种数据库服务器，而最受欢迎的一种是 MySQL 服务器。可以从link:http://dev.mysql.com/downloads/mysql/5.1.html[+此处+]进行下载。
NOTE: 该产品的推荐版本为 MySQL Server 5.0。提供的文档描述如何使用此版本。

安装之后，需要设置环境，使所有软件组件可以彼此之间正常配合工作。

您可以使用其中包含所需软件的<<XAMPP,包>>或<<installComponentsSeparately,单独安装每个组件>>。


== 使用 AMP 包

要自动指定 PHP 引擎、Apache HTTP 服务器和 MySQL 数据库服务器的所有配置设置，请使用 AMP 包。本教程仅提供 link:http://www.apachefriends.org/en/xampp-windows.html[+XAMPP-Windows+] 包的说明。有关 WAMP 包的帮助，请参见 link:http://wiki.netbeans.org/HowToConfigureXDebug[+NetBeans XDebug Wiki+]。


=== 安装和配置 XAMPP 包

此部分将介绍如何下载、安装和配置 XAMPP 包。

*警告：*不要使用 XAMPP 1.7.0。此版本中的 XDebug 出现重大问题。可以使用版本 1.7.1 或更高版本，其中已修复这些问题。

NOTE: 从 XAMPP 1.7.2 开始，XAMPP 附带提供 PHP 5.3 而不是 PHP 5.2.x。适用于 PHP 的 NetBeans IDE 版本 6.7.x 不支持新的 PHP 5.3 功能。适用于 PHP 6.8 的 NetBeans IDE 目前提供开发版本，完全支持 PHP 5.3。另请注意，PHP 5.2.x 和 PHP 5.3 之间的 Xdebug 安装不同。

1. 下载 link:http://www.apachefriends.org/en/xampp-windows.html[+XAMPP+] 安装包。（XAMPP Lite 不包括 XDebug。）
2. 下载完成后，运行  ``.exe``  文件。

在 Microsoft Vista 上，“用户访问控制”功能会阻止 PHP 安装程序更新 Apache httpd 配置。在安装 XAMPP 时请禁用 UAC。有关详细信息，请参见 link:http://support.microsoft.com/kb/922708[+Microsoft 支持+]。


[start=3]
. 您可以选择作为服务安装 Apache 服务器和 MySQL 数据库服务器。如果将 Apache 服务器和 MySQL 作为服务进行安装，则您将不必通过 XAMPP 控制面板来手动启动它们。请注意，您可以在 <<xamppConstolPanel,XAMPP 控制面板>>中选择安装或卸载这些服务。

[start=4]
. 如果您使用的是自解压档案文件，请在解压缩该档案文件之后，运行  ``setup-xampp.bat``  文件以配置该包的组件。（XAMPP 安装程序会自动运行此文件。）

[start=5]
. 配置之后，打开 XAMPP 控制面板。（您可以通过运行  ``XAMPP_HOME/xampp-control.exe``  文件或通过自动置于桌面上的 XAMPP 控制面板图标手动打开该控制面板。）在打开 XAMPP 控制面板时，请注意作为服务安装的模块是否已在运行。

*警告：*在 Windows Vista 上，有时  ``xampp-control.exe``  不会运行。这时您可以运行  ``xampp-start.exe`` 。

*警告：*如果通过 MySQL 的“管理”按钮启动  ``winmysqladmin.exe``  文件，则该文件将无法正常运行。出现层叠错误消息时，只能通过手动终止  ``winmysqladmin``  进程来阻止这些消息。您也无法从命令行启动  ``winmysqladmin.exe`` 。请参见 link:http://bugs.xampp.org/view.php?id=71[+http://bugs.xampp.org/view.php?id=71+]。

image::images/xampp-control-panel.png[]


[start=6]
. "Svc" 复选框指示模块是作为 Windows 服务安装的，并且将在系统启动时自动启动。您可以通过选中或取消选中 "Svc" 复选框来安装或卸载 Windows 服务。卸载 Windows 服务不会卸载模块，但之后您需要手动启动该模块。XAMPP 控制面板包括用于停止和启动模块以及打开这些模块的管理控制台的按钮。


=== 检查 XAMPP 安装

1. 运行浏览器，然后输入以下 URL： ``http://localhost`` 。XAMPP 欢迎页面打开：

image::images/xampp-welcome-page.png[]


[start=2]
. 要确保 Apache 和 MySQL 服务器已作为系统服务安装，请重新启动您的操作系统，再运行浏览器，然后再次输入  ``http://localhost``  URL。XAMPP 欢迎页面打开。请注意，XAMPP 欢迎页面在左旁注中包含一个菜单，您可以通过此菜单检查 XAMPP 组件的状态，运行  ``phpinfo()`` ，以及实现其他有用的功能。 ``phpinfo()``  会返回一个屏幕，其中显示关于 XAMPP 组件的配置信息。 

image::images/xampp-phpinfo.png[]


=== 安装和启用 XDebug 调试器

您需要配置 PHP 堆栈才能使用 XDebug。如果使用的是 <<xdebug-xampp-171,XAMPP 1.7.1>>（捆绑了 PHP 5.2.6）或 <<xdebug-xampp-172,XAMPP 1.7.2>>（捆绑了 PHP 5.3），该过程会有所不同。

许多用户在其系统上运行 XDebug 时都遇到了一些问题。有关帮助信息，请参见link:http://wiki.netbeans.org/HowToConfigureXDebug[+我们的 wiki+] 和 link:http://forums.netbeans.org/viewforum.php?f=13&sid=5b63e6774fe7859b5edd35b1192d8efd[+NetBeans PHP 编辑器用户论坛+]。


[[xdebug-xampp-171]]
==== XAMPP 1.7.1 (PHP 5.2) 上的 XDebug

您必须下载 XDebug，将 .dll 文件放在 php 扩展目录中，然后配置 php.ini 以查找并使用该文件。

1. 下载与您的 PHP 版本兼容且_线程安全_的最新 link:http://www.xdebug.org/download.php[+XDebug+]。下载链接列在 "Releases" 下。将  ``.dll``  文件复制到  ``XAMP_HOME/php/ext``  目录中。（ ``XAMPP_HOME``  是指 XAMPP 或 XAMPP Lite 安装目录，如  ``C:\Program Files\xampp``  或  ``C:\xampplite`` 。）
2. 找到 XAMPP 的活动  ``php.ini``  文件并将其打开。默认情况下，此文件位于  ``XAMPP_HOME/apache/bin``  目录中。通过运行  ``phpinfo()``  并搜索 "Loaded Configuration File" 来确认活动的  ``php.ini``  文件。
3. 由于 Zend 优化器会阻止 XDebug，因此您需要禁用 Zend 优化器。在活动的  ``php.ini``  文件中找到以下行，然后将其删除或标记为注释（为了安全起见，请搜索与 Zend 相关的所有属性并将其注释掉）：

[source,ini]
----

[Zend]
;zend_extension_ts = "C:\Program Files\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll"
;zend_extension_manager.optimizer_ts = "C:\Program Files\xampplite\php\zendOptimizer\lib\Optimizer"
;zend_optimizer.enable_loader = 0
;zend_optimizer.optimization_level=15
;zend_optimizer.license_path =

----

[start=4]
. 要将
 XDebug 附加到 PHP 引擎，请在  ``php.ini``  文件中取消对以下行（恰好位于 [Zend] 部分下面；如果没有，请添加它们）的注释。已另外添加一些注释。

[source,ini]
----

[XDebug]; Only Zend OR (!) XDebug
zend_extension_ts = "./php/ext/php_xdebug<-version-number>.dll"
; XAMPP and XAMPP Lite 1.7.0 and later come with a bundled xdebug at <XAMPP_HOME>/php/ext/php_xdebug.dll, without a version number.xdebug.remote_enable=1xdebug.remote_host=127.0.0.1xdebug.remote_port=9000
; Port number must match debugger port number in NetBeans IDE Tools > Options > PHPxdebug.remote_handler=dbgpxdebug.profiler_enable=1xdebug.profiler_output_dir="<XAMPP_HOME>\tmp"
----

将  ``xdebug.remote_enable``  属性设置为 1，而不是 "true" 或任何其他值。

NOTE: 请确保您指定的路径与安装过程中所确定的相应文件的位置匹配。


[start=5]
. 保存  ``php.ini`` 。

[start=6]
. 运行 <<xamppConstolPanel,XAMPP Control Panel Application（XAMPP 控制面板应用程序）>>并重新启动 Apache 服务器。
有关如何配置 XDebug 的详细信息，请参见link:http://wiki.netbeans.org/HowToConfigureXDebug[+我们的 wiki+] 和 link:http://www.xdebug.org/docs/install[+XDebug 文档+]。


[[xdebug-xampp-172]]
==== XAMPP 1.7.2 (PHP 5.3) 上的 XDebug

XAMPP 1.7.2 捆绑了相应的 Xdebug .dll 文件。只需配置  ``php.ini``  即可使用该文件。请注意，所有 Xdebug 设置都具有说明文本。

1. 找到并打开  ``XAMPP_HOME\php\php.ini``  以进行编辑。这是 XAMPP 1.7.2 中的唯一  ``php.ini``  文件。
2. 查找并取消注释以下行： ``zend_extension = "XAMPP_HOME\php\ext\php_xdebug.dll"`` 。
3. 查找并取消注释以下行： ``xdebug.remote_host=localhost`` 。将设置值从  ``localhost``  更改为  ``127.0.0.1`` 。
4. 查找并取消注释以下行： ``xdebug.remote_enable = 0`` 。将 0 更改为 1。
5. 查找并取消注释以下行： ``xdebug.remote_handler = "dbgp"`` 。
6. 查找并取消注释以下行： ``xdebug.remote_port = 9000`` 。
7. 保存  ``php.ini`` 。
8. 运行 <<xamppConstolPanel,XAMPP Control Panel Application（XAMPP 控制面板应用程序）>>并重新启动 Apache 服务器。

有关如何配置 XDebug 的详细信息，请参见link:http://wiki.netbeans.org/HowToConfigureXDebug[+我们的 wiki+] 和 link:http://www.xdebug.org/docs/install[+XDebug 文档+]。


== 单独安装组件


=== Apache HTTP 服务器

1. 下载 link:http://httpd.apache.org/download.cgi[+Apache2 HTTP 服务器+]。
2. 运行安装文件  ``.msi`` 。此时将启动安装向导。按照说明操作。

在 Microsoft Vista 上，不要将 Apache 服务器安装到 Program Files 中的默认位置。Program Files 中的所有文件均具有写保护。


[start=3]
. 安装完成后，重新启动 Apache 服务器。

[start=4]
. 要检查安装是否成功，请运行浏览器，然后输入以下 URL：

[source,ini]
----

  http://localhost/
----
Apache 欢迎测试页面打开： 

image::images/install-apache-it-works-port80.png[]


==== 疑难解答

默认情况下，Apache 服务器监听端口 80。此端口可能已被其他服务所使用，如 Skype。要解决此问题，请更改服务器监听的端口：

1. 打开 Apache Web 服务器配置文件  ``httpd.conf`` 。默认情况下，此文件位于  ``C:\Program Files\Apache Software Foundation\Apache<version>\conf\``  中
2. 找到  ``Listen 80``  行，并更改端口号，如  ``8080`` 。保存该文件。
3. 重新启动 Apache Web 服务器。
4. 要检查 Web 服务器是否工作，请运行浏览器并输入 URL，然后明确指定端口号： ``http://localhost:8080`` 

您还可以停止可能监听端口 80 的进程。在任务管理器中，选择相关文件名称，并单击“结束进程”。

有关安装和配置服务器的详细信息，请查看link:http://httpd.apache.org/docs/2.2/install.html[+此处+]。


=== PHP 引擎

1. 下载适用于您所选 PHP5 版本的 link:http://windows.php.net/download/[+Windows 二进制文件安装程序+]。

*重要信息：*如果没有安装程序适用于您要安装的 PHP 版本，则必须手动从 .zip 文件中安装它。请参见 php.net 文档中的link:http://php.net/manual/en/install.windows.manual.php[+手动指令步骤+]。


[start=2]
. 下载完成后，运行  ``.msi``  安装文件。此时将启动安装向导。

[start=3]
. 在“Apache 配置目录”面板上，指定  ``httpd.conf``  文件所在的目录，默认设置是  ``C:\Program Files\Apache Software Foundation\Apache<version>\conf\`` 。PHP 处理将自动启用。

[start=4]
. 如果您要使用 MySQL 数据库服务器，请选择“完全”安装选项，或在“扩展”列表中选择 "MySQL" 和 "MySQLi" 项。

[start=5]
. 安装完成后，请重新启动 Apache 服务器。

[start=6]
. 要检查 PHP 引擎是否已成功安装，以及是否在 Apache 配置中启用了 PHP 处理，请执行以下操作：
* 打开记事本或其他文本编辑器。创建一个文件并键入以下文本：

[source,php]
----

<?php 
     echo "PHP has been installed successfully!";
?>
----
* 在 htdocs 文件夹中将此文件另存为 `test.php`。默认路径为  ``C:\Program Files\Apache Software Foundation\Apache<version>\htdocs\test.php`` 
* 运行浏览器，然后输入以下 URL： ``http://localhost:<port>/test.php`` 。以下页面打开：

image::images/install-php-test.png[]


==== 疑难解答

如果页面未打开：

1. 重新启动 Apache 服务器。
2. 检查 Apache 服务器配置文件 httpd.conf 是否包含以下几行：

[source,ini]
----

  AddType Application/x-httpd-php .php 
  LoadModule php5_module "c:/php/sapi/php5apache2_2.dll"
----

[start=3]
. 如果缺少以上几行，请添加它们，并保存  ``httpd.conf`` ，然后重新启动 Apache。

[start=4]
. 刷新 http://localhost:<port>/test.php 页面。


=== MySQL 数据库服务器

查找有关link:../ide/install-and-configure-mysql-server.html[+安装和配置 MySQL+] 数据库服务器的详细信息。


=== XDebug

1. 下载 link:http://www.xdebug.org[+XDebug+]。
2. 将 XDebug 安装到  ``php/``  文件夹中。您将需要指向 XDebug 的路径来<<settingUpEnvironment,配置环境>>。


=== 设置环境


[start=1]
. 如果按照默认设置安装，则系统会自动启用 PHP 处理。

[start=2]
. 要将
 XDebug 附加到 PHP 引擎，请找到  ``php.ini``  文件，并在其中添加以下几行：

适用于*线程安全*的 PHP 5.2 引擎：


[source,ini]
----

zend_extension_ts="<path to the php folder>/php_xdebug-<version-number>.dll"
xdebug.remote_enable=1
----

适用于*非线程安全*的 PHP 5.2 引擎：


[source,ini]
----

zend_extension_nts="<path to the php folder>/php_xdebug-<version-number>.dll"
xdebug.remote_enable=1
----

适用于*任何* PHP 5.3 引擎：


[source,ini]
----

zend_extension="<path to the php folder>/php_xdebug-<version-number>.dll"
xdebug.remote_enable=1
----

一些用户还发现需要包括以下行（但有些用户不需要）：


[source,ini]
----

xdebug.remote_host=127.0.0.1xdebug.remote_port=9000
; Port number must match debugger port number in NetBeans IDE Tools > Options > PHPxdebug.remote_handler=dbgp
----

有关如何配置 XDebug 的详细信息，请单击link:http://www.xdebug.org/docs/install[+此处+]。

NOTE: 请确保您指定的路径与安装过程中所确定的相应文件的名称和位置匹配。


[start=3]
. 要确保先前安装的 PHP 引擎支持使用 MySQL 数据库服务器，请执行以下操作：

1. 单击“开始”>“控制面板”。
2. 在控制面板上，选择“添加或删除程序”。
3. 在“添加或删除程序”面板上，选择“PHP <版本号>”区域并单击“更改”。此时将启动 PHP 设置向导。单击 "Next"（下一步）。
4. 在“更改、修复或删除”安装面板上，选择“更改”，然后单击“下一步”。
5. 在“Web 服务器设置”面板上，选择 Apache 服务器的版本（在我们的示例中是 Apache 2.2.x 模块）。单击 "Next"（下一步）。
6. 在“Apache 配置目录”面板上，指定 Apache 配置文件  ``httpd.conf``  所在的目录。单击 "Next"（下一步）。
7. 在“选择要安装的项”面板上，展开“扩展”节点，然后选择 "MySQL" 和 "MySQLi" 项。单击 "Next"（下一步）。
8. 在“准备更改 PHP <版本号>”面板上，单击“更改”。
9. 在“已完成 PHP <版本号> 设置向导”面板上，单击“完成”。

link:/about/contact_form.html?to=3&subject=Feedback:%20Configuring%20PHP%20on%20Windows[+发送有关此教程的反馈意见+]


要发送意见和建议、获得支持以及随时了解 NetBeans IDE PHP 开发功能的最新开发情况，请link:../../../community/lists/top.html[+加入 users@php.netbeans.org 邮件列表+]。

link:../../trails/php.html[+返回至 PHP 学习资源+] 

