// 
//     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.
//

= 在 MAC OS X 中配置 PHP、Apache、MySQL 和 Xdebug for PHP 开发
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: 在 MAC OS X 中配置 PHP、Apache、MySQL 和 Xdebug for PHP 开发 - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, 在 MAC OS X 中配置 PHP、Apache、MySQL 和 Xdebug for PHP 开发

本教程向您演示如何在 link:http://www.mamp.info/en/index.php[+MAMP+]（*M*acintosh、*A*pache、*M*ySQL、*P*HP）包上设置 PHP，该包中含有 Apache Web 服务器、MySQL 数据库服务器和 PHP 引擎。MAMP 用作 Mac 的 PHP 开发环境，可与 NetBeans IDE 很好地配合使用。

link:http://www.Xdebug.org/[+Xdebug+] 是 PHP 的扩展，可帮助提供对 PHP 脚本调试有用的信息。NetBeans 调试器在 Xdebug 扩展之上运行，在您的开发环境中提供了有效的调试工具。


image::images/netbeans-stamp-80-74-73.png[title="此页上的内容适用于 NetBeans IDE 7.2、7.3、7.4 和 8.0"]


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

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

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

|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+Java 开发工具包 (JDK)+] |7 或 8 

|link:http://www.mamp.info/en/download.html[+MAMP+] |1.7.x 

|link:http://www.Xdebug.org/download.php[+Xdebug+]（可选） |2.x 
|===

NOTE: MAMP 包中包含 Apache Web 服务器、PHP 引擎和 MySQL 数据库。Mac OS X 10.5 及更高版本包含支持 PHP 的 MySQL 数据库和 Apache 服务器。尽管确定可以使用 IDE 配置内置的数据库和服务器，但是 MAMP 的集功能于一身的包提供了一种简便轻松的可配置解决方案。


== 安装和配置 MAMP

1. 下载最新版本的 link:http://www.mamp.info/en/download.html[+MAMP+]。
2. 提取下载的文件并运行 `.dmg` 文件。当安装程序显示时，将 MAMP 拖到 `/Applications` 文件夹中。

image::images/mamp-install.png[title="显示 MAMP 和 MAMP-Pro 选项的 MAMP 安装程序面板"]


[start=3]
. 导航到 `/Applications/MAMP` 并双击 `MAMP.app`。此时将打开 MAMP 控制面板。

您还可以按照 `MAMP/README.rtf` 中所述安装 MAMP 控制板窗口部件，这使您能够启动和停止服务器。

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


[start=4]
. 单击 "Preferences"（首选项）打开 "Preferences"（首选项）面板，然后选择 "Ports"（端口）标签。

[start=5]
. 单击 "Set to Default Apache and MySQL ports"（设置为默认的 Apache 和 MySQL 端口）。Apache 端口将重置为 80，MySQL 端口将重置为 3306。

image::images/mamp-control-panel-preferences-ports.png[title="在端口已更改为默认值之后带有 &quot;Ports&quot;（端口）标签的 MAMP 控制面板"]


== 注册 MAMP 的 MySQL 数据库

默认情况下，MAMP 的 MySQL 数据库位于 `/Applications/MAMP/db/MySQL`。默认的用户名和口令均为 `root`，您可以通过查看 MAMP 欢迎页中的详细信息进行验证，在运行 MAMP 时此欢迎页会在浏览器中打开。

IDE 从 "Services"（服务）窗口（⌘-5 组合键）中与数据库进行交互。可通过执行以下操作来注册 MAMP 的 MySQL 数据库：

1. 右键单击 "Databases"（数据库）> "MySQL Server"（MySQL 服务器）节点并选择 "Properties"（属性）。此时将显示 "MySQL Server Properties"（MySQL 服务器属性）对话框。可以从此对话框中配置所有 MySQL 设置。
2. 输入数据库服务器的主机名和端口号及其用户名和口令。当运行服务器和数据库时，所有这些信息都会显示在 MAMP 欢迎页上。在本地运行 MAMP 的默认设置是：

* *Server Host Name（服务器主机名）：*`localhost`
* *Server Port Number（服务器端口号）：*`3306`
* *Administrator User Name（管理员用户名）：*`root`
* *Administrator Password（管理员口令）：*`root`

image::images/mysql-basic-properties.png[title="包含 MAMP 默认连接设置的 &quot;MySQL Basic Properties&quot;（MySQL 基本属性）对话框"]


[start=3]
. 选择 "Admin Properties"（管理属性）标签以显示可用于从 IDE 中启动和停止数据库服务器的设置。MAMP 在 `bin` 文件夹中维护 Shell 脚本。可以在此文件夹中查找用于启动和停止服务器的脚本。您可以选择管理工具的路径；可以链接到 `MAMP.app`，这样您就可以使用 IDE 打开 MAMP 的控制面板。为此，请输入 `/Applications/MAMP/MAMP.app`。但是，替代选项将使用 link:http://dev.mysql.com/downloads/workbench/[+MySQL Workbench+]，它提供用于执行管理操作（即，配置和监视 MySQL 服务器，管理用户和连接，执行备份等）的直观 GUI 界面。要使用 MySQL Workbench，请先下载并安装它，然后在对话框中输入以下设置：

* *管理工具的路径/URL：*`/Applications/MySQL Tools/MySQLWorkbench.app` _（MySQL Workbench 的默认安装）_
* *启动命令的路径：*`/Applications/MAMP/bin/startMysql.sh`
* *停止命令的路径：*`/Applications/MAMP/bin/stopMysql.sh`

image::images/mysql-admin-props.png[title="包含样例管理设置的 &quot;MySQL Admin Properties&quot;（MySQL 管理属性）对话框"]


[start=4]
. 如果选择使用 MySQL Workbench 作为 MySQL 管理工具，则需要指定用于 MAMP 数据库连接的套接字。启动 MySQL Workbench，然后从主页中，单击 "Server Administration"（服务器管理）列中的 "New Server Instance"（新建服务器实例）。

image::images/mysql-workbench-home.png[]


[start=5]
. 此时将打开 "Create New Server Instance Profile"（新建服务器实例配置文件）对话框。选择 "Local Socket/Pipe"（本地套接字/管道）连接方法，并在 "Parameters"（参数）标签中添加套接字文件的路径。套接字的默认位置为：`/Applications/MAMP/tmp/mysql/mysql.sock`。

image::images/socket-path.png[]


[[phpProject]]
== 创建 PHP 项目

在 IDE 中使用 MAMP 资源创建 PHP 项目时，应指定 IDE 将源复制到 Apache 的 `htdocs` 文件夹中。这样，当您在进行更改之后保存文件时，会自动在已部署版本中更新源。

例如，创建新的 PHP 项目时，使用新建项目向导（在 IDE 的工具栏中单击 "New Project"（新建项目）图标）(image:images/new-project-icon.png[])。在此向导的第三步 "Run Configuration"（运行配置）中，选择 "Copy files from Sources Folder to anotherlocation"（将源文件夹中的文件复制到其他位置）选项，并键入 `htdocs` 文件夹的路径。

[.feature]
--
image::images/new-php-project.png[role="left", link="images/new-php-project.png"]
--

IDE 会记住此位置用于将来的项目。有关在 NetBeans IDE 中创建 PHP 项目的进一步说明，请参见link:project-setup.html[+设置 PHP 项目+]。


== 使用 MAMP 启用 Xdebug

MAMP 包含预编译的  ``xdebug.so``  文件。要使用此文件，请在 MAMP 的  ``php.ini``  中启用它。Xdebug 不与 Zend 优化器一起使用，因此您还必须在  ``php.ini``  中禁用 Zend 优化器。

*要使用 MAMP 启用 Xdebug，请执行以下操作：*

1. 在编辑器中打开 `php.ini` 文件。此文件位于：

`/Applications/MAMP/conf/php5/php.ini`。

[start=2]
. 找到  ``[Zend]``  部分并注释掉每一行。

[source,ini]
----

;[Zend]
;zend_optimizer.optimization_level=15
;zend_extension_manager.optimizer=/Applications/MAMP/bin/php5/zend/lib/Optimizer-3.3.3
;zend_optimizer.version=3.3.3
 
;zend_extension=/Applications/MAMP/bin/php5/zend/lib/ZendExtensionManager.so
----

[start=3]
. 找到  ``[xdebug]``  部分并激活 Xdebug（将 `xxxxxxxx` 替换为实际数字）。将此部分添加到  ``php.ini``  结尾（如果不存在）。

[source,ini]
----

[xdebug]
 
xdebug.default_enable=1
 
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_autostart=1
 
zend_extension="/Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-xxxxxxxx/xdebug.so"
----
有关这些属性的说明，请参见 link:http://www.Xdebug.org/docs/remote[+Xdebug 远程调试+]文档中的“相关设置”。

[start=4]
. 请注意，在上一步中为 Xdebug 指定的远程端口为：9000。这是在 NetBeans 中使用的默认调试器端口。要对此进行验证，请从主菜单中选择 "NetBeans" > "Preferences"（首选项），然后在 "Options"（选项）窗口中选择 "PHP"。

image::images/php-options68.png[title="可以在 &quot;PHP Options&quot;（PHP 选项）窗口中设置调试端口"] 

如果需要，您可以在此处更改调试器端口。

[start=5]
. 打开 MAMP 控制面板并选择 "PHP" 标签。取消选择 "Zend Optimizer"（Zend 优化器）。

image::images/mamp-control-panel-preferences-php.png[title="取消选择 &quot;Zend Optimizer&quot;（Zend 优化器）之后带有 &quot;PHP&quot; 标签的 MAMP 控制面板"]


[start=6]
. 启动（或重新启动）MAMP Apache 服务器。


== 调试 PHP 项目

要在 IDE 中调试 PHP 项目，请在 "Projects"（项目）窗口中右键单击该项目并选择 "Debug"（调试）。或者，如果在 "Projects"（项目）窗口中突出显示了该项目，可以单击主工具栏中的 "Debug Project"（调试项目）图标 (image:images/debug-icon.png[])。

通过在 <<phpOptions,"PHP Options"（PHP 选项）窗口>>中启用此选项，可以将调试器设置为在第一行代码处挂起。

当调试器会话处于活动状态时，将在编辑器上方显示调试器工具栏。

image::images/debugger-toolbar.png[title="处于挂起状态的调试器工具栏"]

您还可以通过打开 "Sessions"（会话）窗口来验证 PHP 调试会话是否处于活动状态。从主菜单中选择 "Window"（窗口）> "Debugging"（调试）> "Sessions"（会话）。

image::images/debugger-sessions-win.png[title="&quot;Sessions&quot;（会话）窗口指示 Xdebug 调试器会话处于活动状态"]


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



== 另请参见

有关 link:https://netbeans.org/[+netbeans.org+] 上 PHP 技术的更多信息，请参见下面的资源：

* link:project-config-screencast.html[+NetBeans IDE 6.9-7.0 中的 PHP 编辑器+]。演示新 PHP 编辑器支持的截屏视频。
* link:debugging.html[+调试 PHP 源代码+]。说明如何在 IDE 中使用 Xdebug 进行调试的文档。
* link:wish-list-tutorial-main-page.html[+创建 CRUD 应用程序+]。演示如何使用 IDE 的 PHP 编辑器创建 CRUD 应用程序的 9 部分教程。
* link:remote-hosting-and-ftp-account.html[+在远程 Web 服务器上部署 PHP 应用程序+]。提供有关如何将 PHP 应用程序部署到您具有托管帐户的远程服务器的指导原则的文档。

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

