[[PageOutline]] [wiki:howto <- Back to the HOWTO section] These installation instructions are written for the following versions: * Apache 2.4.* - See: [[howto/Apache2]] for instructions on installation of Apache2 * MySQL 5.7.* - See: [[howto/MySQL]] for instructions on installation of MySQL * PHP 5.6.* - See: [[howto/PHP]] for instructions on installation of PHP Simplified sequence: * Install Apache * Install MySQL * Install PHP * Modify Apache Configuration to support MySQL and PHP. = Integrate PHP with Apache = If this is your first install, you need to enable php56-apache2handler in your web server. To enable the php56-apache2handler, run: Register PHP with Apache {{{ $ cd /opt/local/lib/apache2/modules $ sudo /opt/local/bin/apxs -a -e -n php5 mod_php56.so $ # or, if you're using php7... $ sudo /opt/local/bin/apxs -a -e -n php7 mod_php71.so }}} This should return the message: ''[activating module `php5' in /opt/local/etc/apache2/httpd.conf]'' Update Apache’s `httpd.conf` - ''/opt/local/etc/apache2/httpd.conf'' - file to enhance the "DirectoryIndex" directive to include additional "index" files. Search for: {{{ DirectoryIndex index.html }}} and change it this way: {{{ DirectoryIndex index.php index.html }}} Verify that at the end of the `httpd.conf` file the following lines exist so that Apache includes the mod_php "AddType" configurations {{{ # Include PHP configurations Include etc/apache2/extra/mod_php56.conf # Or... Include etc/apache2/extra/mod_php71.conf }}} Verify that in the Dynamic Shared Object (DSO) Support section the following have been added. {{{ # Load the PHP module LoadModule php5_module modules/mod_php56.so # Or... LoadModule php7_module modules/mod_php71.so }}} Note: either of the above two edits are only required if the lines are not present in the httpd.conf file, as the apxs command (executed above) will add those for you. = Step 3: MySQL setup for PHP = Setup the MySQL default socket to use the MacPorts configuration (/opt/local/var/run/mysql57/mysqld.sock) {{{ $ sudo -i # cd /opt/local/etc/php56 # cp php.ini php.ini.bak # defSock=$(/opt/local/bin/mysql_config --socket) # cat php.ini | sed \ -e "s#pdo_mysql\.default_socket.*#pdo_mysql\.default_socket=${defSock}#" \ -e "s#mysql\.default_socket.*#mysql\.default_socket=${defSock}#" \ -e "s#mysqli\.default_socket.*#mysqli\.default_socket=${defSock}#" > tmp.ini # grep default_socket tmp.ini # Check it! # mv tmp.ini php.ini # exit # OR rm php.ini.bak && exit }}} The "`grep`" check should return: {{{ pdo_mysql.default_socket=/opt/local/var/run/mysql57/mysqld.sock mysql.default_socket=/opt/local/var/run/mysql57/mysqld.sock mysqli.default_socket=/opt/local/var/run/mysql57/mysqld.sock }}} Restart Apache so that your changes take effect {{{ $ sudo port unload apache2 $ sudo port load apache2 }}} = Step 4: Create phpinfo = This is used to test the configuration after you have integrated it with Apache and MySQL. Create a file named `phpinfo.php` that contains the following two lines {{{