macOS Update: While these instructions still work, there are new posts for recent versions of macOS, the latest being Install Apache, PHP, and MySQL on macOS Mojave.
PHP Update: Mac OS X El Capitan comes pre-installed with PHP version 5.5 which has reached its end of life. After you complete this post, you should upgrade PHP on Mac OS X.
PHP + MySQL Database System. PHP combined with MySQL are cross-platform (you can develop in Windows and serve on a Unix platform) Database Queries. A query is a question or a request. We can query a database for specific information and have a recordset returned. MySQL Cluster is a real-time open source transactional database designed for fast, always-on access to data under high throughput conditions. MySQL Cluster Plus, everything in MySQL Enterprise Edition. New install of Mac OS X 10.13.6 High Sierra on a mid 2011 iMac New install of MAMP 5.7 (with mysql 5 +) New install of Wordpress and My website set up in the htdocs folder of MAMP (an aside: I have the same environment set up on a 2008 Macbook Pro that MAMP, mysql and wordpress are working fine on, serving pages localhost flawlessly.
Note: This post is for new installations. If you have installed Apache, PHP, and MySQL for Mac OS X Yosemite, read my post on Updating Apache, PHP, and MySQL for Mac OS X El Capitan.
Mac OS X runs atop UNIX. So most UNIX software installs easily on Mac OS X. Agent for mac os x. Furthermore, Apache and PHP come packaged with Mac OS X. To create a local web server, all you need to do is configure Apache and install MySQL.
I am aware of the web server software available for Mac OS X, notably MAMP. These get you started quickly. But they forego the learning experience and, as most developers report, can become difficult to manage.
Running Commands
First, open the Terminal app and switch to the
root
user so you can run the commands in this post without any permission issues:Enable Apache on Mac OS X
Verify It works! by accessing http://localhost
Enable PHP for Apache
First, make a backup of the default Apache configuration. This is good practice and serves as a comparison against future versions of Mac OS X.
Now edit the Apache configuration. Feel free to use TextEdit if you are not familiar with vi.
Uncomment the following line (remove
#
):Restart Apache:
You can verify PHP is enabled by creating a
phpinfo()
page in your DocumentRoot
.The default
DocumentRoot
for Mac OS X El Capitan is /Library/WebServer/Documents
. You can verify this from your Apache configuration.![For For](/uploads/1/1/8/2/118216658/143266499.jpg)
Now create the
phpinfo()
page in your DocumentRoot
:Verify PHP by accessing http://localhost/phpinfo.php
![Php Php](/uploads/1/1/8/2/118216658/954794466.png)
Install MySQL on Mac OS X El Capitan
Download and install the latest MySQL generally available release DMG for Mac OS X.
The README suggests creating aliases for
mysql
and mysqladmin
. However there are other commands that are helpful such as mysqldump
. Instead, you can update your path to include /usr/local/mysql/bin
.Note: You will need to open a new Terminal window or run the command above for your path to update.
Finally, you should run
mysql_secure_installation
. While this isn't necessary, it's good practice to secure your database.Connect PHP and MySQL
You need to ensure PHP and MySQL can communicate with one another. There are several options to do so. I do the following:
Additional Configuration (optional)
The default configuration for Apache 2.4 on Mac OS X seemed pretty lean. For example, common modules like
mod_rewrite
were disabled. You may consider enabling this now to avoid forgetting they are disabled in the future.Php Mysql Macos
I edited my Apache Configuration:
I uncommented the following lines (remove
#
):Php Mysql Phpmyadmin Mac
If you develop multiple projects and would like each to have a unique url, you can configure Apache VirtualHosts for Mac OS X.
Php Mysql State Machine
If you would like to install PHPMyAdmin, return to my original post on installing Apache, PHP, and MySQL on Mac OS X.
Php Mysql Form Maker
Find this interesting? Let's continue the conversation on Twitter.