Category Archives: Technology

How to Setup the LAMP Stack on Mac OS X

Install Apache MySQL, & PHP on Mac OS X Yosemite

Setup LAMP on Mac OSX

LAMP is an acronym for Linux, Apache HTTP Server, MySQL relational database management system, and PHP server-side programming language.   This web service solution stack is a model for building dynamic web applications and web services.  Web developers can now implement this model on their Mac OS X Yosemite computers to support the development of web-based applications and web services.

Please use caution when installing new software on computer systems. A Best Practice includes creating system backups before changes.

How to Enable Apache Web Server on Mac OS X

The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems.

Apache Web Server is already included with Mac OS X Yosemmite.  This server can be started with the following steps.

Open a terminal window and log in as the root user:
$ sudo su –
(enter root password at the prompt)

Start Apache with the following command:
$ apachectl start

Verify the Apache Web Server is running on your Mac OS X by opening a web browser and navigating to http://localhost

 How to Enable PHP for Apache

PHP is a popular server-side scripting language designed for  web development.

Enabling PHP for the web server on Mac OS X requires an edit of the Apache configuration file.  A copy of the current version of this configuration file can be saved before the edit by running the following command in the terminal.

$ cp /etc/apache2/httpd.conf  /etc/apache2/httpd.conf.bak

The Apache configuration file can be edited by running the following command in the terminal.

$ vi /etc/apache2/httpd.conf

This will open the configuration file in the terminal window.  Edit this file by pressing “i” key.  Enable PHP for Apache by uncommenting (remove #) the following line.

Enable Virtual Hosting by uncommenting the following line.

Enable Mod Rewrite by uncommenting the following line.

Save and close this configuration file by pressing the “escape” key, then entering the following command.

$ :wq

How to Create Virtual Hosts in Apache

The term Virtual Host refers to the practice of running more than one web site on a single machine.  We enabled virtual hosting by allowing Apache to load the httpd-vhosts.conf file in the previous step of editing the httpd.conf file by uncommenting the following line.  Include /private/etc/apache2/extra/httpd-vhosts.conf

How to Define a Virtual Host in Apache

The site we are creating in the example is “mobile” with “dev” as the top-level domain (TLD).  This will give us http://mobile.dev as the URL.  I use “dev” as the TLD to help me remember the site is running on my local development environment, but you can use any value for the TLD.  You can also use any value for the site.  The next few steps will also include defining a local project directory for your new web project.  You can change these values to match your needs, just make sure your values match the values you define in the Virtual Host entry in Apache.

NOTE: If you plan on accessing your virtual host with a mobile device, then do not use “local” as your TLD.

Create a folder on your local file system for the DocumentRoot of your new site.

/1/projects/mobile/www/DocumentRoot

Create a backup of the httpd-vhosts.conf file by running the following command.

$ cp /etc/apache2/extra/httpd-vhosts.conf /etc/apache2/extra/httpd-vhosts.conf.bak

Edit the httpd-vhosts.conf file with the following command.

$ vi /etc/apache2/extra/httpd-vhosts.conf

Add the following markup to the httpd-vhosts.conf file.

Note how the <Directory> definition is slightly different for Apache 2.4. This Apache 2.4 configuration will prevent the Forbidden error that is accompanied by the Apache error message, “You don’t have permission to access / on this server.”

This next step assumes the owner defined in Apache config is _www. Replace “_www” with the name of Apache Server owner. Open a Terminal Window and navigate to the parent folder of the new site directory, then enter the following commands:
# Move into the new site directory
$ cd /1/projects/mobile/www/
# Change ownership of all files to the Apache Server process owner
$ sudo chown -R :_www DocumentRoot
# Change permissions of all site files
$ sudo chmod -R g+w DocumentRoot

 How to Define Virtual DNS

In order to access your new site by name, you will need to edit your system’s hosts file.
# Open /etc/hosts file
$ vi /etc/hosts
# Add the following line towards the bottom of the /etc/hosts file.
127.0.0.1 mobile.dev
# Save and close file, then flush the DNS with the following command:
$ discoveryutil udnsflushcaches
# Restart Apache
$ apachectl restart

How to Create a PHP Test Page

The PHP test page for your new site can be created with the following commands.
# Create file
$ vi /1/projects/mobile/www/DocumentRoot/php.php
# Press the “i” key to edit this new file and enter

# Press the escape key to exit editing mode, then save file
$ :wq
# Open a web browser and go to the following URL

http://mobile.dev/php.php

How to Install MySQL on Mac

MySQL is the world’s most popular open source database.

  1. Download the MySQL DMG for Mac OS X here.
  2. Install MySQL
  3. Install Preference Pane
  4. Start MySQL from Mac System Preferences Panel

Add MySQL to System PATH with the following commands.
# Modify/Create the .bash_profile file
$ touch ~/.bash_profile
$ vi ~/.bash_profile
# Add the following line to the bottom of ~/.bash_profile
export PATH=”/usr/local/mysql/bin:$PATH”
# Activate ~/.bash_profile update
$ source ~/.bash_profile
$ echo “/usr/local/mysql/bin” >> /etc/paths.d/mysql.path

Connect PHP and MySQL
$ cd /var
$ mkdir mysql
$ cd mysql
$ ln -s /tmp/mysql.sock mysql.sock

How to Install phpMyAdmin

phpMyAdmin is a free software tool written in PHP, intended to handle the administration of MySQL over the Web.  Download phpMyAdmin here.

Download phpMyAdmin to the system’s default web directory, “/Library/WebServer/Documents/”; then run the following commands from the Terminal Window.

# Move into default web directory
$ cd /Library/WebServer/Documents/
# Unpack phpMyAdmin download
# NOTE: Use actual phpMyAdmin download file name
$ tar -xvf ~/Downloads/phpMyAdmin-3.5.2.2-english.tar.gz
# Rename unpacked phpMyAdmin folder
# NOTE: Use actual phpMyAdmin download folder name
$ mv phpMyAdmin-3.5.2.2-english/ phpmyadmin
# Move into the new phpmyadmin directory
$ cd phpmyadmin
# Create the phpmyadmin config file
$ mv config.sample.inc.php config.inc.php

Launch the phpmyadmin dashboard by opening a web browser and navigating to the following URL: http://localhost/phpmyadmin

How to Start the Virtual Environment

This Mac OS X Apache MySQL PHP development environment can be started with the following steps.

# Make sure the MySQL database is running
Open MySQL Panel from Mac OS X System Preferences
# Open Terminal and switch to root user
$ sudo su –
# Use Terminal Command to start Apache
$ apachectl restart
# Use a Web Browser and Navigate to Website

How to Create Additional Virtual Environments

Additional virtual environments can be easily be created by just repeating the steps outlined in “How to Define a Virtual Host in Apache” section of this tutorial.

Summary

Following these steps provides the web developer with a development environment for creating web applications and web services using open-source technology.