wiki:howto/MAMP

Version 97 (modified by Schamschula (Marius Schamschula), 7 years ago) (diff)

fix phpinfo.php

<- 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 line

<?php phpinfo(); ?>

and place it in your Apache "DocumentRoot" directory (nominally: "/opt/local/www/apache2/html") or your own user "Sites" directory if you activated user directories as specified above. Point your browser to http://localhost/phpinfo.php (or http://localhost/~username/phpinfo.php as applicable) and verify that the correct version of PHP is active and that MySQL support is active (you may want to search the page for "mysql").
Note that this file needs to be readable and executable.

  • Remember to return to howto/PHP to complete the PHP installation.