What a Pretty Hypertext Preprocessor!
Overview
A Pretty Hypertext Preprocessor (PHP) is included by Apple on MacOS.
PHP Version and Location
The version of PHP is obtained from this Terminal command:
php -v
On Mojave, the response was:
PHP 7.1.23 (cli) (built: Feb 22 2019 22:19:32) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
On Sierra, the response was:
PHP 5.6.28 (cli) (built: Dec 6 2016 12:38:54) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
On Yosemite, the response was:
PHP 5.5.14 (cli) (built: Sep 9 2014 19:09:25) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
For the location of the PHP being used by the command line:
which php
On my Yosemite, the response is:
/usr/bin/php
Activate PHP for Apache
To activate PHP using the Pico text editor that comes with Macs:
sudo pico /etc/apache2/httpd.conf
Within pico, press Ctrl+W and type php to search for the php5_module statement.
Press cursor key left to the right of the # comment character, press the backspace key to delete it. PHP is activated after you press Ctrl+X and Ctrl+Y to confirm Yes.
Alternately, to activate PHP using the vi text editor that also comes with Macs:
sudo vi /etc/apache2/httpd.conf
To find php…
Press ‘x’ over the ‘#’ character to delete it.
Type ‘:w!’ to save. Type ‘ZZ’ (upper case) to quit.
Only for Yosemite, also uncomment line 166:
LoadModule userdir_module libexec/apache2/mod_userdir.so
And also line 493:
#Include /private/etc/apache2/extra/httpd-userdir.conf
Activate php.ini
To activate PHP using the pico text editor that comes with Macs:
cd /private/etc
Copy the default file to a .ini file:
sudo cp php.ini.default php.ini
Enable Apache
For Yosemite only, open the file with:
sudo vi /etc/apache2/extra/httpd-userdir.conf
Uncomment line 16:
#Include /private/etc/apache2/users/*.conf
Save and exit.
Specify Mac User Name in Apache
Ensure that your user name is listed within:
ls -la /etc/apache2/users
In addition to the Guest.conf listed, there should be a .conf file with your Mac user name (mine is wilsonmar).
Such file may not be created while upgrading to Mountain Lion. Contents of this file is different on Yosemite:
<Directory "/Users/wilsonmar/Sites/"> AddLanguage en .en LanguagePriority en fr de ForceLanguagePriority Fallback Options Indexes MultiViews AllowOverride None Order allow,deny Allow from localhost Require all granted </Directory>
Establish Sites folder PHP website default file
By popular convention, the Sites folder (with a capital S) is used to store website files. Create one under the default /Applications folder from the command line:
mkdir ~/Sites
Create a HTML file to display by default when no file is specified:
echo “<html><body><h1>My site works</h1></body></html>” > ~/Sites/index.html.en
/Library/WebServer/Documents/index.html.en . This contains the text “It works!”
Launch Apache
Older versions of Apache had a UI in System Preferences > Sharing and enable Web Sharing. But on Yosemite:
Within a Terminal:
sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
Check the version of Apache installed:
httpd -v
The response on my Yosemite is:
Server version: Apache/2.4.9 (Unix)
Server built: Sep 9 2014 14:48:20</tt>
See http://coolestguidesontheplanet.com/get-apache-mysql-php-phpmyadmin-working-osx-10-10-yosemite/
Libmcrypt PHP
http://coolestguidesontheplanet.com/install-mcrypt-php-mac-osx-10-10-yosemite-development-server/
To add modules to PHP, add libmcrypt-2.5.8 and PHP source code from http://us.php.net/get/php-5.5.14.tar.gz/from/a/mirror using these instructions: http://michaelgracie.com/2011/07/21/plugging-mcrypt-into-php-on-mac-os-x-lion-10-7/
More on OSX
This is one of a series on Mac OSX:
- MacOS Setup step-by-step, with automation
- MacOS Hardware and accessories
- MacOS dotfiles for System Preferences setup automation
- MacOS Boot-up
- MacOS Keyboard tricks
- MacOS Terminal Tips and Tricks
- Text editors and IDEs on MacOS
- MacOS Xcode.app and CommandTools (gcc)
- MacOS Command-line utilities
- Applications on MacOS
- 1password on MacOS
- Manage Disk Space on MacOS
- Screen capture on MacOS
- MacOS iPhone integration
- Linux and Windows on Apple MacOS
- Packer create Vagrant Windows image
- Python on MacOS
- Maven on MacOS
- Ruby on MacOS
- Node on MacOS installation
- Java on MacOS
- Scala ecosystem