Configuring PHP, Apache, MySQL, and Xdebug for PHP development in MAC OS X
This tutorial shows you how to set up PHP on the MAMP
(Macintosh, Apache, MySQL, PHP) 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.
Xdebug 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.
As an alternative to configuring a PHP web stack on your computer, you can set up a server-only OpenSolaris virtual machine with a pre-configured PHP web stack and deploy your PHP applications to this web stack over FTP. See Deploying PHP to a Server-only OpenSolaris Web Stack.
Note: The MAMP package includes the Apache web server, PHP engine,
and MySQL database. Mac OS X 10.5 includes 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.
Extract the downloaded file and run the .dmg file. When the installer displays,
drag MAMP into your /Applications folder.
Navigate to /Applications/MAMP and double-click MAMP.app. The MAMP
Control Panel opens.
You can also install the MAMP Control dashboard widget as described
in MAMP/README.rtf, which enables you to start and stop servers.
Click Preferences to open the Preferences panel, then select the Ports tab.
Click Set to Default Apache and MySQL ports. Apache port is reset to 80 and MySQL to 3306.
Registering MAMP's MySQL Database
MAMP's MySQL database is located by default at /Applications/MAMP/db/MySQL.
The default username and password are both root, which you can verify by
viewing the details in MAMP's welcome page which opens in a browser when you run MAMP.
The IDE interfaces with databases from the Services window (⌘-5).
You can register the MAMP's MySQL database by doing the following:
Right-click the Databases > MySQL Server node and choose Properties. The MySQL
Server Properties dialog displays. You can configure all MySQL settings from this
dialog.
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:
Server Host Name: localhost
Server Port Number: 3306
Administrator User Name: root
Administrator Password: root
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 bin 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 MAMP.app so that you can use the IDE to open MAMP's
control panel. To do so, enter /Applications/MAMP/MAMP.app. However,
an alternative option would be to use the
MySQL Administrator,
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 Administrator, first download and install it,
then enter the following settings into the dialog:
Path/URL to admin tool: /Applications/MySQL Tools/MySQL Administrator.app(default installation for MySQL Administrator)
Path to start command: /Applications/MAMP/bin/startMysql.sh
Path to stop command: /Applications/MAMP/bin/stopMysql.sh
If you chose to use the MySQL Administrator as your MySQL admin tool, you need to specify
the socket for the connection to MAMP's database. You do this directly in the MySQL Administrator
Connect to Instance dialog by clicking More Options. The default location for the socket is:
/Applications/MAMP/tmp/mysql/mysql.sock.
Creating PHP Projects
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 htdocs folder. That way, when you save your
files after making changes, your sources are automatically updated in the deployed version.
For example, when creating a new PHP project use the New Project Wizard (click the New Project
icon in the IDE's toolbar ( ). 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 htdocs
folder.
The IDE remembers this location for future projects. For further
instructions on creating PHP projects in NetBeans IDE, see Setting
Up a PHP Project.
Installing and Enabling Xdebug with MAMP
Perform the following steps to configure Xdebug with MAMP, so it can be used with the IDE's debugger interface.
Download Xdebug source files for the latest stable release.
The download link is named 'source' and is listed separately for each release.
To install and configure Xdebug, follow the offical installation
instructions. These are also loosely provided here in the following steps.
Unpack the downloaded file.
Open a terminal window on your computer and navigate to the Xdebug-2.0.x
folder that contains the resources.
Note: When you unpack the downloaded file, note that
there are two folders with the release name, i.e., ~/Downloads/Xdebug-2.0.4/Xdebug-2.0.4/.
You need to be in the folder that directly contains the resources.
Run sudo phpize (or sudo usr/bin/phpize if it is not declared on your
$path).
Run .configure --enable-Xdebug.
Run make to compile Xdebug. If successful, this creates an xdebug.so
file in the modules directory.
Note: You may need to install OS X
developer tools, or Unix libraries,
to be able to use the make command.
Open the php.ini file in an editor. This file is located in:
/Applications/MAMP/conf/php5/php.ini.
Add the following properties to php.ini (replace xxxxxxxx with the actual number).
; Xdebug config for Mac OS X and NetBeans IDE
zend_extension=/Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-xxxxxxxx/xdebug.so
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.idekey=
For an explanation of these properties, see Related Settings in the Xdebug Remote Debugging
documentation.
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 >
Preferences from the main menu, then select PHP in the Options window.
If needed, you can change the debugger port here.
Open the MAMP control panel and select the PHP tab. Deselect Zend Optimizer.
Start (or restart) the MAMP Apache server.
Debugging PHP Projects
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 ( ) in the main toolbar.
You can set the debugger to suspend on the first line of code by enabling
this option in the PHP Options window.
When a debugger session is active, the debugger toolbar displays above the editor.
You can also verify that a PHP debugging session is active by opening the Sessions window.
Choose Window > Debugging > Sessions from the main menu.
For information on how to use the debugger toolbar and editor, see:
Working with the Toolbar and Editor.
For information on debugging windows available in the IDE, see
Examining the Debugger Windows.
(Although these documents are prepared for the JavaScript Debugger, the IDE's
debugging interface works nearly identically regardless of the debugging engine.)
To send comments and suggestions, get support, and keep informed on the latest
developments on the NetBeans IDE PHP development features, join
the mailing list.