This Docker container implements a last generation LAMP stack with a set of popular PHP modules. Includes support for Composer, Bower and npm package managers and a Postfix service to allow sending emails through PHP mail() function.
If you dont need support for MySQL/MariaDB, or your app runs on PHP 5.4, maybe fauria/lap suits your needs better.
Includes the following components:
- Ubuntu 20.04 LTS Xenial Xerus base image.
 - Apache HTTP Server 2.4
 - MariaDB 10.0
 - Postfix 2.11
 - PHP 7
 - PHP modules
- php-bz2
 - php-cgi
 - php-cli
 - php-common
 - php-curl
 - php-dbg
 - php-dev
 - php-enchant
 - php-fpm
 - php-gd
 - php-gmp
 - php-imap
 - php-interbase
 - php-intl
 - php-json
 - php-ldap
 - php-mysql
 - php-odbc
 - php-opcache
 - php-pgsql
 - php-phpdbg
 - php-pspell
 - php-readline
 - php-snmp
 - php-sqlite3
 - php-sybase
 - php-tidy
 - php-xmlrpc
 - php-xsl
 
 - Development tools
- git
 - composer
 - npm / nodejs
 - bower
 - vim
 - tree
 - nano
 - ftp
 - curl
 
 
Installation from Docker registry hub.
You can download the image using the following command:
docker pull fauria/lampThis image uses environment variables to allow the configuration of some parameteres at run time:
- Variable name: LOG_STDOUT
 - Default value: Empty string.
 - Accepted values: Any string to enable, empty string or not defined to disable.
 - Description: Output Apache access log through STDOUT, so that it can be accessed through the container logs.
 
- Variable name: LOG_STDERR
 - Default value: Empty string.
 - Accepted values: Any string to enable, empty string or not defined to disable.
 - Description: Output Apache error log through STDERR, so that it can be accessed through the container logs.
 
- Variable name: LOG_LEVEL
 - Default value: warn
 - Accepted values: debug, info, notice, warn, error, crit, alert, emerg
 - Description: Value for Apache's LogLevel directive.
 
- Variable name: ALLOW_OVERRIDE
 - Default value: All
 - All, None
 - Accepted values: Value for Apache's AllowOverride directive.
 - Description: Used to enable (
All) or disable (None) the usage of an.htaccessfile. 
- Variable name: DATE_TIMEZONE
 - Default value: UTC
 - Accepted values: Any of PHP's supported timezones
 - Description: Set php.ini default date.timezone directive and sets MariaDB as well.
 
- Variable name: TERM
 - Default value: dumb
 - Accepted values: dumb
 - Description: Allow usage of terminal programs inside the container, such as 
mysqlornano. 
The image exposes ports 80 and 3306, and exports four volumes:
/var/log/httpd, containing Apache log files./var/log/mysqlcontaining MariaDB log files./var/www/html, used as Apache's DocumentRoot directory./var/lib/mysql, where MariaDB data files are stored./etc/apache2, where Apache configuration files are stored.
Please, refer to https://docs.docker.com/storage/volumes for more information on using host volumes.
The user and group owner id for the DocumentRoot directory /var/www/html are both 33 (uid=33(www-data) gid=33(www-data) groups=33(www-data)).
The user and group owner id for the MariaDB directory /var/log/mysql are 105 and 108 repectively (uid=105(mysql) gid=108(mysql) groups=108(mysql)).
	docker run -i -t --rm fauria/lamp bash
	docker run --rm -p 8080:80 -e LOG_STDOUT=true -e LOG_STDERR=true -e LOG_LEVEL=debug -v /my/data/directory:/var/www/html fauria/lamp
Create a container linking to another MySQL container:
	docker run -d --link my-mysql-container:mysql -p 8080:80 -v /my/data/directory:/var/www/html -v /my/logs/directory:/var/log/httpd --name my-lamp-container fauria/lamp
	docker exec -i -t my-lamp-container bash
	mysql -u root

