The only certain solution to the above problem is to run a local web server to host the demo code. I have a previous post on setting up Apache on Mac OS X (Install Apache, PHP, MySQL, and phpMyAdmin on Mac OS X 10.6 Snow Leopard) which looks to be helpful, but it was outdated. I have adjusted the instructions for Mac OS X 10.10 Yosemite below.
Configure PHP and Start Apache HTTP Server
Mac OS X 10.10 Yosemite continues to ship with PHP and Apache installed. (The Apache HTTP server is stopped by default.) You can check their versions by opening the Terminal app and running these commands:
Before we start the Apache HTTP Server, enable PHP support by editing the Apache config file (“sudo nano /etc/apache2/httpd.conf”) and uncommenting this line (by removing the initial pound # character):
The “Web Sharing” option was removed from the “System Preferences” dialog so we have to use the command line to start the Apache server. You can start, stop, or restart using the following commands:
sudo apachectl start
sudo apachectl stop
sudo apachectl restart
# Check to see if Apache HTTP Server is running
ps -e | grep httpd
Note: The “apachectl start/restart” command will configure Apache to start on bootup. (Internally, “apachectl start” calls “launchctl load” and “apachectl stop” calls “launchctl unload”.)
Start the Apache HTTP Server. Browse to http://localhost/ and you should see the “It Works!” message.
Create a test PHP file under the Apache document root directory, “sudo nano /Library/WebServer/Documents/phpinfo.php”, with the following content:
// Show all information about PHP
Browse to http://localhost/phpinfo.php and you should see the PHP configuration information.
If you have problems, check the Apache error log file at “/var/log/apache2/error_log” directory.
You can change the Apache document root to point to a different directory by editing “/etc/apache2/httpd.conf” and modifying the values for these two declarations:
Restart the Apache HTTP Server for the change to take effect. Make sure that your new document root directory and its contents have read permission set for others (for example, “chmod 755” for directories and “chmod 644” for files).
Install and Start MySQL Server
Download the free MySQL Community Server distribution; I selected the “Mac OS X 10.10 (x86, 64-bit), DMG Archive” package. You don’t need to login or sign up; just select the “No thanks, just start my download” link at the bottom. Open the downloaded “mysql-5.7.11-osx10.10-x86_64.dmg” disk image file and run the “mysql-5.7.11-osx10.9-x86_64.pkg” package inside to install MySQL Server. (Strangely, even though I downloaded the 10.10 version, the names of the disk image and package files refer to the 10.9 version.)
Note: When the installation completes, you will see a dialog containing the temporary password for the MySQL root user. Please make a copy of it because you will need it below. If you forget to do so, you can follow the MySQL website’s How to Reset the Root Password page to reset the root password.
You can start the MySQL Server and configure whether it will run on bootup under “System Preferences, MySQL”. Alternatively, you can start and stop the MySQL Server from the command line:
sudo /usr/local/mysql/support-files/mysql.server start
sudo /usr/local/mysql/support-files/mysql.server stop
# Check to see if MySQL Server is running
ps -e | grep mysql
Add the following line to your user environment profile, “nano ~/.profile”, to avoid inputting the full path when executing mysql commands:
Start the MySQL Server and try these commands:
mysql -u root --version
# Connect to MySQL Server
mysql -u root -p
# Input the temporary root password when prompted
# Reset the root password to blank
mysql> alter user 'root'@'localhost' identified by '';
# Put your password inside the '' at the end if you don't want a blank password
# Some example queries
mysql> show databases;
mysql> use mysql;
mysql> show tables;
# Exit the MySQL interpreter
Additional info about LAMP setup can be found at Get Apache, MySQL, PHP and phpMyAdmin working on OSX 10.10 Yosemite.