Many website owners use PHP with their websites to expand the capabilities of the sites. Before you can enable PHP on a Mac, you first have to enable Apache. Both PHP and Apache are free open source software programs and both come installed on all Macs. PHP is server-side software, and Apache is the most widely used web server software. Pub 4096R/70D-04-14 expires: 2024-04-21 Key fingerprint = 1729 F839 38DA 44E2 7BA0 F4D3 DBDB 3974 70D1 2172 uid Sara Golemon php.net pub 4096R/EE5AF27F 2017-05-24 expires: 2024-05-22 Key fingerprint = B1B4 4D8F 021E 4E2D 6021 E995 DC9F F8D3 EE5A F27F uid Remi Collet php.net pub rsa4096/118BCCB6 2018-06-05.
How to install and configure Apache, MySQL and PHP on Mac OS X 10.7 Lion and OS X 10.6 Snow Leopard.
OSX 10.8 Mountain Lion VersionOSX 10.9 Mavericks Version
Apache and PHP already come preloaded in OS X 10.7 Lion and 10.6 Snow Leopard, the versions on 10.7 Lion are PHP 5.3.6 and Apache 2.2.20, these 2 pieces of Open Source software are part of the “AMP” stack with MySQL the missing third component.
Their are other options for Mac users to install an AMP stack using prebuilt point and click downloads including the following, MAMP, DAMP, XAMPP and BitNami – these installations use separate binaries outside of the regular OS X software so no conflict occurs and it makes it easier to delete the stacks without affecting other parts of the operating system.
However sometimes you need to configure these with different port numbers and this can lead to issues and there is the question of vendor support and application versions.
Php 7 Form Example
This tutorial bypasses the 3rd party AMP stacks and uses the native installed components with the exception of MySQL which is a separate install, unless you have OS X Server, which then MySQL comes preloaded in 10.6 but not 10.7 which has dumped MySQL in favour of PostgreSQL instead – you can still install MySQL on 10.7 Server with the instructions below.
To get Apache, MySQL and PHP running natively on OSX is quite easy and straightforward – this guide should have you up and running in no time.
This guide uses the command line to achieve some text editing of various configuration files, however If you aren’t comfortable in the Terminal you can do this in a graphical mode, download a free text editor utility call TextWrangler, launch it, when you come to edit one of the configuration files, open file, you have to click on “show hidden items” at the bottom of the open dialog box to see all of the system files. But you will still need to use the terminal for some of the commands which don’t involve editing files.
PHP
You can verify your version of PHP by launching the Terminal application, as found in the Utilities folder: /Applications/Utilities/Terminal
To find the PHP version, type at the prompt:
And the version is displayed:
To find the Apache version, type at the prompt:
And the version is displayed:
So far so good, however by default PHP is not enabled and has to have its module loaded you need to make a simple edit in the Apache configuration file “httpd.conf” file. This is filed in /etc/apache2/httpd.conf, get there in the terminal by typing:
Then in the terminal you need to use a text editor either “vi” or nano” will do, this file also has stricter permissions so the “sudo” command needs to be used to edit the file, you will need to be an admin user to have permission to change the file, type:
and then your password.
Once in nano click “control+w” to get a search dialog, type “php” and this will bring you to the php module line:
Uncomment out the hash # to leave it like:
enable php module in nano
Finally type “control + x” to exit and when prompted save the change by typing “y”
Php 7 Form Validation
MySQL
So now onto the 2nd piece of the puzzle, MySQL. You need to download it from http://dev.mysql.com/downloads/mysql/, chose Mac OS X ver. 10.7 (x86, 64-bit), DMG Archive for an Intel Mac the .dmg file is a point and click installation nice and easy, you can download the tar.gz also for a command line install. The easiest format is the .dmg file as it allows for an installation visually using the GUI.
When downloading you don’t have to sign up, look for » No thanks, just take me to the downloads! – go straight to the download mirrors and download the software from a mirror which is closest to you.
After download open the .dmg and install:
- mysql5.6.xxx.pkg
- MySQLstartupitem.pkg
- MySQLPrefPane
The first is the MySQL software, the 2nd item allows MySQL to start when the Mac is booted and the third is a System Preference that allows start/stop operation and a preference to enable it to start on boot.
- Installation of MySQL
Once the installs are done you can start the mysql server right from the System Preferences which has a new preference in the “Other” category called “MySQL” click start and now it is running.
mysql-system-preference-osx
To find the MySQL version from the terminal, type at the prompt:
This also puts you in to an interactive dialogue with mySQL, type q to exit.
If you got the error:
then mysql was not started, go back to the System Preference and start the database.
After installation, in order to use mysql commands without typing the full path to the commands you need to add the mysql directory to your shell path, this is done in your “.bash_profile” file in your home directory, if you don’t have that file just create it using vi or nano:
and then add:
The first command brings you to your home directory and opens the .bash_profile file or creates a new one if it doesn’t exist, then add in the line above which adds the mysql binary path to commands that you can run. Exit the file with type “control + x” and when prompted save the change by typing “y”. Last thing to do here is to reload the shell for the above to work straight away.
Then test the path by just this time issuing the mysql command without the full path:
You will get the version number again, just type “q” to exit.
The next step is to set up a root password for mysql there are 2 ways to do this one is a regular way and the other provides additional security and disables all other access:
Regular Way
If you have set the path correctly as above:
!use the single quotes
Then when logging in to mysql:
!NB the no space between -p and the password
Securer Way
Go ahead and just hit enter if this is a new installation and no password currently exists, follow the prompts to set up a new root password – this is a root password just for mysql separate from the root password of OS X you should set this.
You also get asked about:
- Removing anonymous users?
- Disallow root login remotely?
- Remove test database and access to it?
- Reload privilege tables now?
If this is a new installation you can just answer yes to the questions.
Once the root user and password is set, you have to interact with mysql with the username and password, so access via command line is (note that there is no space between -p and the password):
So thats the two components installed with MySQL having a System Preference option to Start/Stop the database.
Apache
You can start/stop the Web Server Apache in the System Preferences under Sharing and checking the WebSharing box. (Sometimes you may have to toggle it on/off a few times to get it going).
web-sharing-turned-on
This can also be accomplished in the terminal using:
Or restart the web server gracefully using the following:
Once you start your server the there are 2 x document root folders for sharing, one is a top level and the other is user account specific:
and
You should see a “It Works!” or a OSX welcome page depending on which document root you are at, in the finder these locations are found at your Sites folder in your home folder for local user:
/Users/username/Sites/
or at the higher level
/Library/WebServer/Documents/
At the user level in Lion 10.7 you may need to create the personal web sharing folder first, do this through System Preferences > Sharing > Web Sharing and click “Create Personal Website Folder” if it is created this will say ” Open Personal WebSite Folder”
The final thing to verify is that PHP is loaded and ready to go by creating a new text file, has to be plain text (use TextEdit) and typing in:
Save the file as phpinfo.php and save it to the Sites folder in your home directory. Now point your browser to:
You should see the full PHP configuration page. If you just see the code restart the web server to make sure the php module is loaded.
- php-module-configuration
That’s it you are ready to develop and share!
The only difference between 10.6 and 10.7 are some incremental version numbers on Apache and MySQL otherwise the process is the same for both operating systems.
To get up and running with mysql and use phpMyAdmin to manage the mysql database, there is a guide here.
Then look at installing WordPress, Drupal and Joomla!!!
« back — written by Brent on November 28, 2019Interested in more?
I'm writing a new book called Front Line PHP. It's about PHP 8 and modern PHP development in general. I plan to release it in December, you can already subscribe to the mailing list to stay up to date!
# Upgrading with Homebrew
Start by making sure brew is up-to-date:
Next, upgrade PHP:
Firefox 7 For Mac
Check the current version by running php -v
:
Restart Nginx or Apache:
And make sure that your local web server also uses PHP 7.4 by visiting this script:
The version should show 7.4.x
.
Note: if you're using Laravel Valet, please keep on reading,you need some extra steps in order for the web server to properly work.
# Valet
If you're using Laravel Valet, you should do the following steps to upgrade it:
Now run valet install
:
# Extensions
Php 7 For Centos
Homebrew doesn't support the installation of PHP extensions anymore, you should use pecl instead.I personally use Imagick, Redis and Xdebug.
They can be installed like so:
You can run pecl list
to see which extensions are installed:
You can search for other extensions using pecl search
:
Php 7 For Apache
Make sure to restart your web server after installing new packages:
If you're using Laravel Valet, you should restart it as well.
Make sure all extensions are correctly installed and loaded by checking both your PHP webserver and CLI installs:
If extensions aren't properly loaded, there are two easy fixes.
First, make sure the extensions are added in the correct ini file. You can run php --ini
to know which file is loaded:
Now check the ini file:
Note that if you're testing installed extensions via the CLI, you don't need to restart nginx, apache or Valet.
The second thing you can do, if you're updating from an older PHP version which also used pecl to install extension; is to reinstall every extension individually.
# Last step
Finally you should test and upgrade your projects for PHP 7.4 compatibility.