Configuring PHP, Apache, MySQL, and Xdebug for PHP development in MAC OS X
Last reviewed on 2019-02-02
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.
|Software or Resource||Version Required|
|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.|
Download the latest version of MAMP.
Extract the downloaded file and run the
.dmgfile. When the installer displays, drag MAMP into your
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.
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: *
*Server Port Number: *
*Administrator User Name: *
*Administrator Password: *
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
binfolder. 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.appso 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 Workbench, 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:
*Path/URL to admin tool: *
/Applications/MySQL Tools/MySQLWorkbench.app(default installation for MySQL Workbench)
*Path to start command: *
*Path to stop command: *
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.
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:
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
The IDE remembers this location for future projects. For further instructions on creating PHP projects in NetBeans IDE, see Setting Up a PHP Project.
MAMP contains a pre-compiled
xdebug.so file. To use this file, enable it in MAMP’s
php.ini . Xdebug does not work together with Zend Optimizer, so you also have to disable Zend Optimizer in
To enable Xdebug with MAMP:
php.inifile in an editor. This file is located in:
[Zend]section and comment out every line.
;[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
[xdebug]section and activate Xdebug (replace
xxxxxxxxwith the actual number). Add this section to the end of
php.iniif it is not there.
[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"
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.
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.