Create.htaccess files on Mac / OS X. The process for OS X basically is the same as it is for Windows. Here are the steps (without screenshots): Open a new TextEdit file; As you save the file, name it “.htaccess” A dialogue box will popup saying that “Names that begin with a dot are reserved for the system.”. Start a server on Mac OS X. Ask Question Asked 4 years, 11 months ago. Active 1 year, 11 months ago. Viewed 31k times 34. The simple python server is not a php server and therefore it is just simply listing the files in the directory for download. After this modification, my PHP finally loaded the correct PHP installation. That being said, if things go wonky, it may be because OS X is made to work off the native installation of PHP at the time of OS X installation. To revert, just undo the change above. Anyway, hopefully this is helpful for anyone else spending countless hours on this.
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.
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. 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.Now create the
phpinfo()
page in your DocumentRoot
:Verify PHP by accessing http://localhost/phpinfo.php
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.I edited my Apache Configuration:
I uncommented the following lines (remove
#
):If you develop multiple projects and would like each to have a unique url, you can configure Apache VirtualHosts for Mac OS X.
If you would like to install PHPMyAdmin, return to my original post on installing Apache, PHP, and MySQL on Mac OS X.
Find this interesting? Let's continue the conversation on Twitter.
Mac OS X runs atop UNIX. Apache and PHP come packaged with OS X. To create a local web server, all you need to do is enable them.
Starting Appache
Open the Terminal app (command line) and type:
Starting PHP
In order to enable PHP you need to enable it on httpd.conf.
Open for editing /etc/apache2/httpd.conf
Open for editing /etc/apache2/httpd.conf
and uncomment the line
Note: it may require root permission. You can use sudo or change permission to 777
Restart Apache for changes to take place
From now on .php files can be created and executed from the terminal using
Run PHP files on server
Web files located at directory:
Create a filename.php file by
/Library/WebServer/Documents
Create a filename.php file by
Open a browser in the address
http://localhost/filename.php
Changing default web files directory
The default web files directory is
Every time you browse to your localhost you get to that directory.
The following will instruct you to change the directory to
/Library/WebServer/Documents
.Every time you browse to your localhost you get to that directory.
The following will instruct you to change the directory to
/Users/your-username/Sites
.Edit the Apache config file:
Change the Document root from the default
Look for these lines:
/Library/WebServer/Documents
to the new folder under home directory:Look for these lines:
And change them to:
Of course instead of your-username insert there your real username.
I prefer to have it there, as I do not need root permissions to add content to that folder.
Enable .htaccess file in Mac OS X
In the same file (/etc/apache2/httpd.conf), under the section <Directory “/Users/your-username/Sites”> look for:
Mac Os Server Setup
And change it to:
Mac Os Php
Also edit this file:
And look for the same line as above
And change it to:
Then restart apache:
Php For Mac Os X Server Settings
How to enable access to sub-directories from the browser
Starting with OS X 10.10 (Yosemite), Apple moved from Apache 2.2 to Apache 2.4, and that means there are a few additional changes we need to make. One of them is a directive that helps secure your machine by denying access to the entire file system by default.
In order to enable access to a sub directory from the browser (e.g.
In order to enable access to a sub directory from the browser (e.g.
http://localhost/subdirectory/filename.php
) you need to edit the Apache config file:Run Php Server Mac
Comment out (place ‘#’ in front of each line) the section of code runs from line 220 through 223.