I have been writing blogs for a long time now and playing around with Apache and PHP every once in a while to change my Web Host server settings or to make some changes in my UI layouts. So finally I have decided to learn PHP and I use Mac for my personal usage, so the first step was to install Apache, PHP and MySql on my Mac OS X.
Apache web server free download - Apache HTTP Server for Windows, Apache Admin, Apache, and many more programs. AVG AntiVirus for Mac. View all Mac apps. Popular Android Apps TubeMate 3. How to install and configure Apache, MySQL and PHP on Mac OS X 10.7 Lion and OS X 10.6 Snow Leopard. Their are other options for Mac users to install an AMP stack using prebuilt point and click downloads including the following. You can start/stop the Web Server Apache in the System Preferences under Sharing and checking the WebSharing.
My Mac OS is Mountain Lion (10.8), so for earlier versions you might need to make some changes in the steps provided below.
Table of Contents
Apache is an open source web server that you can download and install for free. This tutorial will give you the preliminary info you need — considering the operating system you’re using — to decide how to begin selection and setting up of your web server software program and even make your own web host. How to install, start and test XAMPP on Mac OSX XAMPP is a free distribution package that makes it easy to install Apache Web Server, PHP, PEAR, and MySQL. Before installing XAMPP, you should turn off any other web servers and instances of MySQL you have running on your Mac. IQ Web/FTP Server is a secure, ultra-fast FTP server and multi-threaded Web server for Windows, featuring XML-based GUI remote administration, authentication, separate upload/download speed limits, storage quotas, dynamic DNS. Apache web server free download - Apache HTTP Server for Windows, Apache Admin, Apache, and many more programs. Apache web server free download - Apache HTTP Server for Windows, Apache Admin, Apache, and many more programs. AVG AntiVirus for Mac. View all Mac apps. Popular iOS Apps BeautyPlus - Selfie Camera for a Beautiful Image. The Apache Tomcat ® software is an open source implementation of the Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket technologies. The Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket specifications are developed under the Java Community Process.
Mac OS is ultimately built on Unix so its very easy to install any Unix supporting softwares. Even better part is that Mac OS X comes with apache web server and we just need to start it and make some changes to setup our development environment.
We will start apache server with root user to avoid any permission issues.
Thats all is needed to start Apache web server on Mac OS X, now you need to verify it by launching browser and visiting page http://localhost/
. You should get a page with message “It works!”.
Now we can proceed further for setting up PHP and MySql but before that I want to make some tweaks to setup my development environment.
Default location for Apache web server project files is /Library/WebServer/Documents/
which is not a convenient place to keep our project files, also we will have to access it in browser with localhost, so I decided to create my own virtual host pointing to my development directory. To enable VirtualHosts, we need to make some changes in Apache Configuration file (httpd.conf).
Now when Apache will load the configuration file, it will also load the virtual hosts configuration file. We can proceed now to HTTPD virtual hosts file.
Make sure to change the DocumentRoot, ServerName and Directory location according to your needs. The Directory directive is added to avoid any permission issues.
The next thing we need to do is add the server URL to known hosts file, else it will go to DNS server and the request will be redirected to Internet rather than loading it from the local machine.
Our virtual hosts setup is done now, just restart the apache with command apachectl restart
Just put a simple HTML file (abc.html) in the server directory and try to access it in the browser http://example.com/abc.html
. If the request is still going to the Internet, try flushing your DNS cache using command dscacheutil -flushcache
.
Sometimes Apache can crash because of heavy load, use apache restart script to get it started automatically.
To enable PHP support for Apache, we need to make changes in its configuration file.
Now restart the server and it should be able to process PHP files. To test it we can create a simple PHP file as below.
test.php
Load the PHP file in browser with URL http://example.com/test.php
and you should see a huge page with all the PHP configurations.
Sigmaplot free download for mac. Lets move now to install MySql database server on Mac OS X.
There are so many Mac OS softwares that you can use for MySql database management but I liked SequelPro most, its easy to install and use and uses very less memory. You can download it from SequelPro Website.
Before I move forward to test MySql connectivity from PHP program, I will create a database and user. For easier access to MySql scripts, I have added MySql bin directory to my PATH and exported it.
When we install MySql, its socket file is located at /tmp/mysql.sock
but when PHP tries it locate it, it look at /var/mysql
directory. The easier solution is to make a symbolic link pointing to the actual MySql socket file.
Here is a sample PHP file that connects to MySql server.
testdb.php
<php>
<?php
$con=mysqli_connect(“localhost”,”myuser”,”pwd123″,”Test”);
// Check connection
if (mysqli_connect_errno($con))
{
echo “Failed to connect to MySQL: ” . mysqli_connect_error();
}else {
echo “Connected to MySql Test DB”;
}
mysqli_close($con);
?>
Just put this file in example.com
directory and try accessing the URL http://example.com/testdb.php
. You should see the message.
Connected to MySql Test DB
If you see below error message.
Warning: mysqli_connect() [function.mysqli-connect]: [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in /Users/pankaj/CODE/example.com/testdb.php on line 2Warning: mysqli_connect() [function.mysqli-connect]: (HY000/2002): No such file or directory in /Users/pankaj/CODE/example.com/testdb.php on line 2
Failed to connect to MySQL: No such file or directory
Warning: mysqli_close() expects parameter 1 to be mysqli, boolean given in /Users/pankaj/CODE/example.com/testdb.php on line 10
Please check for the MySql socket file in both the locations and make sure MySql server is started.
If you get error message as:
This is some problem with the user creation, check above for the correct syntax for creating the user.
Thats all for setting up local Mac OS X environment with basic setup to learn PHP. I will come up with some PHP articles soon. 🙂
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.
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.
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”
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:
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.
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:
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
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:
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.
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.
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!!!