blob: 41155b41110fefa65613aebb5f3d617b91a34f6c [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Configuring PHP, Apache, MySQL, and Xdebug for PHP development in MAC OS X - NetBeans IDE Tutorial</title>
<meta name="KEYWORDS" content="NetBeans, tutorial, configure, PHP, PHP engine, guide, documentation, Mamp, Apache, server, MySQL, database">
<meta name="DESCRIPTION" content="This document describes how to configure PHP, Apache,
and MySQL for PHP development in the NetBeans IDE under MAC OS 10.5 Leopard. It also
demonstrates how to set up Xdebug in the IDE for debugging PHP applications.">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../netbeans.css" media="screen">
<link rel="stylesheet" type="text/css" href="../../../lytebox.css" media="screen">
<script type="text/javascript" src="../../../images_www/js/lytebox-compressed.js"></script></head>
<body>
<!--
Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
-->
<h1>Configuring PHP, Apache, MySQL, and Xdebug for PHP development in MAC OS X</h1>
<p>This tutorial shows you how to set up PHP on the <a target="_blank" href="http://www.mamp.info/en/index.php">MAMP</a>
(<b>M</b>acintosh,<b> A</b>pache, <b>M</b>ySQL, <b>P</b>HP) package, which includes the Apache web
server, the MySQL database server, and the PHP engine. MAMP is intended as a PHP development environment
for the Mac, which can work seamlessly with the NetBeans IDE.</p>
<p><a target="_blank" href="http://www.Xdebug.org/">Xdebug</a> is an extension for PHP that aids
in providing information valuable for debugging PHP scripts. The NetBeans debugger
works on top of the Xdebug extension, providing an effective debugging tool in
your development environment.</p>
<p><b>Contents</b></p>
<img src="../../../images_www/articles/73/netbeans-stamp-80-74-73.png" class="stamp" alt="Content on this page applies to NetBeans IDE 7.2, 7.3, 7.4 and 8.0" title="Content on this page applies to the NetBeans IDE 7.2, 7.3, 7.4 and 8.0" >
<ul class="toc">
<li><a href="#installMamp">Installing and Configuring MAMP</a></li>
<li><a href="#mampMySQL">Registering MAMP's MySQL Database</a></li>
<li><a href="#phpProject">Creating PHP Projects</a></li>
<li><a href="#installEnableXdebug">Enabling Xdebug with MAMP</a></li>
<li><a href="#debug">Debugging PHP Projects</a></li>
<li><a href="#seeAlso">See Also</a></li>
</ul>
<p><b>To complete this tutorial, you need the following software and resources.</b></p>
<table>
<tbody>
<tr>
<th class="tblheader" scope="col">Software or Resource</th>
<th class="tblheader" scope="col">Version Required</th>
</tr>
<tr>
<td class="tbltd1"><a target="_blank" href="https://netbeans.org/downloads/index.html">NetBeans IDE</a></td>
<td class="tbltd1">PHP download bundle</td>
</tr>
<tr>
<td class="tbltd1"><a target="_blank" href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Java Development Kit (JDK)</a></td>
<td class="tbltd1">7 or 8</td>
</tr>
<tr>
<td class="tbltd1"><a target="_blank" href="http://www.mamp.info/en/download.html">MAMP</a></td>
<td class="tbltd1">1.7.x</td>
</tr>
<tr>
<td class="tbltd1"><a target="_blank" href="http://www.Xdebug.org/download.php">Xdebug</a> (optional)</td>
<td class="tbltd1">2.x</td>
</tr>
</tbody>
</table>
<p><strong class="notes">Note: </strong>The MAMP package includes the Apache web server, PHP engine,
and MySQL database. Mac OS X 10.5 and later include the MySQL database and Apache server with PHP support.
While it certainly is possible to configure the built-in database and server with the IDE, MAMP's
all-in-one bundle provides a convenient and easily configurable solution.</p>
<a name="installMamp"></a>
<h2>Installing and Configuring MAMP</h2>
<ol>
<li>Download the latest version of <a target="_blank" href="http://www.mamp.info/en/download.html">MAMP</a>.</li>
<li>Extract the downloaded file and run the <code>.dmg</code> file. When the installer displays,
drag MAMP into your <code>/Applications</code> folder.
<br>
<img src="../../../images_www/articles/72/php/configure-php-environment-mac/mamp-install.png"
class="margin-around b-all" width="600" height="426"
title="MAMP installer panel showing MAMP and MAMP-Pro options"
alt="MAMP installer panel showing MAMP and MAMP-Pro options"></li>
<li>Navigate to <code>/Applications/MAMP</code> and double-click <code>MAMP.app</code>. The MAMP
Control Panel opens.
<br><br>
<span class="tips"></span>You can also install the MAMP Control dashboard widget as described
in <code>MAMP/README.rtf</code>, which enables you to start and stop servers.
<br>
<img src="../../../images_www/articles/72/php/configure-php-environment-mac/mamp-control-panel.png"
class="margin-around b-all" alt="MAMP control panel"></li>
<li>Click Preferences to open the Preferences panel, then select the Ports tab.</li>
<li>Click Set to Default Apache and MySQL ports. Apache port is reset to 80 and MySQL to 3306.
<br>
<img src="../../../images_www/articles/72/php/configure-php-environment-mac/mamp-control-panel-preferences-ports.png"
alt="MAMP control panel with Ports tab, after ports have been changed to default values"
title="MAMP control panel with Ports tab, after ports have been changed to default values"
class="margin-around b-all"></li>
</ol>
<a name="mampMySQL"></a>
<h2>Registering MAMP's MySQL Database</h2>
<p>MAMP's MySQL database is located by default at <code>/Applications/MAMP/db/MySQL</code>.
The default username and password are both <code>root</code>, which you can verify by
viewing the details in MAMP's welcome page which opens in a browser when you run MAMP.</p>
<p>The IDE interfaces with databases from the Services window (&#8984;-5).
You can register the MAMP's MySQL database by doing the following:</p>
<ol>
<li>Right-click the Databases &gt; MySQL Server node and choose Properties. The MySQL
Server Properties dialog displays. You can configure all MySQL settings from this
dialog.</li>
<li>Enter the database server's host name and port number, as well as its username and
password. All of this information is displayed on MAMP's welcome page when you run
the server and database. The default settings for running MAMP locally are:
<br><br>
<ul>
<li><strong>Server Host Name: </strong><code>localhost</code></li>
<li><strong>Server Port Number: </strong><code>3306</code></li>
<li><strong>Administrator User Name: </strong><code>root</code></li>
<li><strong>Administrator Password: </strong><code>root</code></li>
</ul>
<img src="../../../images_www/articles/72/php/configure-php-environment-mac/mysql-basic-properties.png"
alt="MySQL Basic Properties dialog"
title="MySQL Basic Properties dialog containing MAMP's default connectivity settings"
class="margin-around b-all"></li>
<li>Select the Admin Properties tab to display settings that enable you to start
and stop the database server from the IDE. MAMP maintains shell scripts in
its <code>bin</code> folder. You can find scripts for starting and stopping
servers there. For the path to the Admin tool, you have a choice; you can
link to <code>MAMP.app</code> so that you can use the IDE to open MAMP's
control panel. To do so, enter <code>/Applications/MAMP/MAMP.app</code>. However,
an alternative option would be to use the
<a target="_blank" href="http://dev.mysql.com/downloads/workbench/">MySQL Workbench</a>,
which provides an intuitive GUI interface for performing administrative operations
(i.e., configuring and monitoring the MySQL server, managing users and connections,
performing backups, etc.). To use MySQL Workbench, first download and install it,
then enter the following settings into the dialog:
<br><br>
<ul>
<li><strong>Path/URL to admin tool: </strong><code>/Applications/MySQL Tools/MySQLWorkbench.app</code> <em>(default installation for MySQL Workbench)</em></li>
<li><strong>Path to start command: </strong><code>/Applications/MAMP/bin/startMysql.sh</code></li>
<li><strong>Path to stop command: </strong><code>/Applications/MAMP/bin/stopMysql.sh</code></li>
</ul>
<img src="../../../images_www/articles/72/php/configure-php-environment-mac/mysql-admin-props.png"
alt="MySQL Admin Properties dialog" width="600" height="323"
title="MySQL Admin Properties dialog containing sample administration settings"
class="margin-around b-all"></li>
<li>If you choose to use the MySQL Workbench as your MySQL admin tool, you need to specify
the socket for the connection to MAMP's database. Start MySQL Workbench and from the main page, click
New Server Instance in the Server Administration column.<br/>
<img src="../../../images_www/articles/72/php/configure-php-environment-mac/mysql-workbench-home.png"
alt="MySQL Workbench home page"
class="margin-around b-all"/></li>
<li>The Create New Server Instance Profile dialog opens. Select the
Local Socket/Pipe connection method and add the path to the
socket file in the Parameters tab. The default location of the socket is:
<code>/Applications/MAMP/tmp/mysql/mysql.sock</code>.
<br>
<img src="../../../images_www/articles/72/php/configure-php-environment-mac/socket-path.png"
alt="Create New Server Instance dialog showing default path to socket"
class="margin-around"/>
</li>
</ol>
<h2 id="phpProject">Creating PHP Projects</h2>
<p>When you create a PHP project in the IDE using MAMP's resources, you should specify that the
IDE copy your sources to Apache's <code>htdocs</code> folder. That way, when you save your
files after making changes, your sources are automatically updated in the deployed version.</p>
<p>For example, when creating a new PHP project use the New Project Wizard (click the New Project
icon in the IDE's toolbar ( <img src="../../../images_www/articles/72/php/configure-php-environment-mac/new-project-icon.png"
alt="New Project icon"> ). In the third step of the wizard, Run Configuration, select the
Copy files from Sources Folder to another location option and type in the path to the <code>htdocs</code>
folder.</p>
<div class="indent">
<a href="../../../images_www/articles/72/php/configure-php-environment-mac/new-php-project.png" rel="lytebox">
<img src="../../../images_www/articles/72/php/configure-php-environment-mac/new-php-project.png"
alt="New Project wizard, step 3: Run Configuration" width="600" height="293"
title="Enter the path the Apache's htdocs folder to allow the IDE to copy sources to their deployed location"
class="margin-around b-all"></a>
</div>
<p><span class="tips"></span>The IDE remembers this location for future projects. For further
instructions on creating PHP projects in NetBeans IDE, see <a href="project-setup.html">Setting
Up a PHP Project</a>.</p>
<a name="installEnableXdebug"></a>
<h2>Enabling Xdebug with MAMP</h2>
<p>MAMP contains a pre-compiled <tt>xdebug.so</tt> file. To use this file, enable it in MAMP's <tt>php.ini</tt>. Xdebug does not work together with Zend Optimizer, so you also have to disable Zend Optimizer in <tt>php.ini</tt>.</p>
<p><strong>To enable Xdebug with MAMP:</strong><br>
</p>
<ol><li>Open the <code>php.ini</code> file in an editor. This file is located in:
<br><br>
<code>/Applications/MAMP/conf/php5/php.ini</code>.</li>
<li>Locate the <tt>[Zend]</tt> section and comment out every line.
<pre class="examplecode">;[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</pre>
</li>
<li>Locate the <tt>[xdebug]</tt> section and activate Xdebug (replace <code>xxxxxxxx</code> with the actual number).
Add this section to the end of <tt>php.ini</tt> if it is not there.
<pre class="examplecode">
[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"</pre>
For an explanation of these properties, see Related Settings in the <a target="_blank" href="http://www.Xdebug.org/docs/remote">Xdebug Remote Debugging</a>
documentation.</li>
<li>Note that the remote port specified for Xdebug in the previous step is: 9000. This is
the default debugger port used in NetBeans. To verify this, choose NetBeans &gt;
Preferences from the main menu, then select PHP in the Options window.
<br><a name="phpOptions"></a>
<img src="../../../images_www/articles/72/php/configure-php-environment-mac/php-options68.png"
alt="PHP Options window" width="600" title="The debugging port can be set in the PHP Options window"
class="margin-around b-all">
<br>
If needed, you can change the debugger port here.</li>
<li>Open the MAMP control panel and select the PHP tab. Deselect Zend Optimizer.
<br>
<img src="../../../images_www/articles/72/php/configure-php-environment-mac/mamp-control-panel-preferences-php.png"
alt="MAMP Control Panel with PHP tab, after Zend Optimizer has been unselected"
title="MAMP Control Panel with PHP tab, after Zend Optimizer has been unselected"
class="margin-around b-all"></li>
<li>Start (or restart) the MAMP Apache server.</li>
</ol>
<a name="debug"></a>
<h2>Debugging PHP Projects</h2>
<p>To debug a PHP project in the IDE, right-click the project in the Projects window and choose
Debug. Alternately, if the project is highlighted in the Projects window, you can click the
Debug Project icon ( <img src="../../../images_www/articles/72/php/configure-php-environment-mac/debug-icon.png"
alt="Debug Project icon"> ) in the main toolbar.</p>
<p class="tips">You can set the debugger to suspend on the first line of code by enabling
this option in the <a href="#phpOptions">PHP Options window</a>.</p>
<p>When a debugger session is active, the debugger toolbar displays above the editor.</p>
<div class="indent">
<img src="../../../images_www/articles/72/php/configure-php-environment-mac/debugger-toolbar.png"
alt="Debugger toolbar" title="The debugger toolbar in a suspended state" class="margin-around">
</div>
<p>You can also verify that a PHP debugging session is active by opening the Sessions window.
Choose Window &gt; Debugging &gt; Sessions from the main menu.</p>
<div class="indent">
<img src="../../../images_www/articles/72/php/configure-php-environment-mac/debugger-sessions-win.png"
alt="Debugger toolbar" title="The Sessions window indicates that an Xdebug debugger session is active"
class="margin-around">
</div>
<br>
<div class="feedback-box" ><a href="/about/contact_form.html?to=3&amp;subject=Feedback:%20Configuring%20PHP%20on%20Mac%20OS">Send Feedback on This Tutorial</a></div>
<br style="clear:both;" />
<a name="seeAlso"></a>
<h2>See Also</h2>
<p>For more information about PHP technology on <a target="_blank" href="https://netbeans.org/">netbeans.org</a>,
see the following resources:</p>
<ul>
<li><a href="project-config-screencast.html">The PHP Editor in NetBeans IDE 6.9-7.0</a>. A screencast demonstrating
new PHP editor support.</li>
<li><a href="debugging.html">Debugging PHP Source Code</a>. A document describing how to debug in
the IDE using Xdebug.</li>
<li><a href="wish-list-tutorial-main-page.html">Creating a CRUD Application</a>. A 9-part tutorial
demonstrating how to create a CRUD application using the IDE's PHP editor.</li>
<li><a href="remote-hosting-and-ftp-account.html">Deploying a PHP Application on a Remote Web Server</a>. A document
providing guidelines on how to deploy a PHP application to a remote server where you have a hosting account.</li>
</ul>
<p>To send comments and suggestions, get support, and keep informed on the latest
developments on the NetBeans IDE PHP development features, <a href="../../../community/lists/top.html">join
the users@php.netbeans.org mailing list</a>.</p>
</body>
</html>