- Notifications
You must be signed in to change notification settings - Fork1
PHP (with Apache2 or FPM or NGINX) - Docker Image for amd64, arm64, arm (Raspberry Pi)
License
Tob1as/docker-php
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
8.X-fpm-alpine-slim
(Dockerfile)8.X-fpm-alpine
(Dockerfile)8.X-fpm-nginx-alpine-slim
(Dockerfile)8.X-fpm-nginx-alpine
(Dockerfile)8.X-fpm-nginx-alpine-extended
(Dockerfile)8.X-apache-slim
(Dockerfile)8.X-apache
(Dockerfile)8.X-fpm-slim
(Dockerfile)8.X-fpm
(Dockerfile)
All container images are available in versions 8.1, 8.2, 8.3 and 8.4. ;-)
How long php versions are supported (End of Life):https://www.php.net/supported-versions.php
Do not use an container image which php version is no longer supported!
PHP is a server-side scripting language designed for web development, but which can also be used as a general-purpose programming language. PHP can be added to straight HTML or it can be used with a variety of templating engines and web frameworks. PHP code is usually processed by an interpreter, which is either implemented as a native module on the web-server or as a common gateway interface (CGI).
- based on official images:DockerHub /GitHub
- The official base Images have the following PHP extensions enabled by default (check with:
php -m
):Core ctype curl date dom fileinfo filter ftp hash iconv json libxml mbstring mysqlnd openssl pcre PDO pdo_sqlite Phar posix readline Reflection session SimpleXML sodium SPL sqlite3 standard tokenizer xml xmlreader xmlwriter zlib
- These images extend the basic images with additional PHP extensions, for example: SQL-Databases, gd, imagick, ldap and more. For details see in dockerfiles.
- For easy install the extensions and get a smaller images it usephp-extension-installer.
- For information about PHP and extensions see here:php.net andpecl.php.net.
$ docker run --name phpcontainer -v $(pwd)/html:/var/www/html:rw -p PORT:80 -e PHP_ERRORS=1 -e PHP_UPLOAD_MAX_FILESIZE=250 -d tobi312/php:8.1-apache
Environment Variables:
TZ
(set timezone, example: "Europe/Berlin")PHP_ERRORS
(set 1 to enable)PHP_MEM_LIMIT
(set Value in MB, example: 128)PHP_POST_MAX_SIZE
(set Value in MB, example: 250)PHP_UPLOAD_MAX_FILESIZE
(set Value in MB, example: 250)PHP_MAX_FILE_UPLOADS
(set number, example: 20)CREATE_PHPINFO_FILE
(set 1 to enable, for dev and testing)CREATE_INDEX_FILE
(set 1 to enable, for dev and testing)- PHP-FPM (only):
ENABLE_PHP_FPM_STATUS
(set 1 to enable on/php_fpm_status
)
- Apache2 (only):
ENABLE_APACHE_REWRITE
(set 1 to enable)ENABLE_APACHE_ACTIONS
(set 1 to enable)ENABLE_APACHE_SSL
(set 1 to enable)ENABLE_APACHE_HEADERS
(set 1 to enable)ENABLE_APACHE_ALLOWOVERRIDE
(set 1 to enable)ENABLE_APACHE_REMOTEIP
(set 1 to enable (X-Forwarded-For), use this only behind a proxy/loadbalancer!)ENABLE_APACHE_STATUS
(set 1 to enable)ENABLE_APACHE_SSL_REDIRECT
(set 1 to enable, required enable ssl and rewrite)APACHE_SERVER_NAME
(set server name, example: example.com)APACHE_SERVER_ALIAS
(set server name, example: 'www.example.com *.example.com')APACHE_SERVER_ADMIN
(set server admin, example:admin@example.com)DISABLE_APACHE_DEFAULTSITES
(set 1 to disable default sites, then add or mount your own conf in /etc/apache2/sites-enabled)
- NGINX (only):
ENABLE_NGINX_REMOTEIP
(set 1 to enable (X-Forwarded-For), use this only behind a proxy/loadbalancer!)ENABLE_NGINX_STATUS
(set 1 to enable)- or mount own config to
/etc/nginx/conf.d/default.conf
Ports:
- php with apache/nginx:
80
(http), optional:443
(https) - php with fpm:
9000
- php with apache/nginx:
An own Dockerfile?, then here an example with copy additional own entrypoint-file(s) in apache image:
$ echo -e "FROM tobi312/php:8.1-apache\nCOPY *.sh /entrypoint.d/" > Dockerfile
version:"2.4"services:php:image:tobi312/php:8.1-apachecontainer_name:phpcontainerrestart:unless-stopped## ports ONLY with apache/nginx:ports: -"80:80" -"443:443"volumes: -./html:/var/www/html:rw## optional: folder with own entrypoint-file(s) mount:#- ./entrypoint.d:/entrypoint.d:ro## optional for apache: own ssl-cert and -key:#- ./ssl/mySSL.crt:/etc/ssl/certs/ssl-cert-snakeoil.pem:ro#- ./ssl/mySSL.key:/etc/ssl/private/ssl-cert-snakeoil.key:ro## optional for nginx: own nginx default.conf:#- ./nginx_default.conf:/etc/nginx/conf.d/default.conf:roenvironment:TZ:"Europe/Berlin"PHP_ERRORS:1PHP_MEM_LIMIT:128PHP_POST_MAX_SIZE:250PHP_UPLOAD_MAX_FILESIZE:250PHP_MAX_FILE_UPLOADS:20CREATE_PHPINFO_FILE:0CREATE_INDEX_FILE:0## next env only with apacheENABLE_APACHE_REWRITE:1ENABLE_APACHE_ACTIONS:0ENABLE_APACHE_SSL:0ENABLE_APACHE_HEADERS:0ENABLE_APACHE_ALLOWOVERRIDE:1ENABLE_APACHE_REMOTEIP:0ENABLE_APACHE_STATUS:0#ENABLE_APACHE_SSL_REDIRECT: 0#APACHE_SERVER_NAME: ""#APACHE_SERVER_ALIAS: ""#APACHE_SERVER_ADMIN: ""#DISABLE_APACHE_DEFAULTSITES: 0## next env only with nginx#ENABLE_NGINX_REMOTEIP: 0#ENABLE_NGINX_STATUS: 0
About
PHP (with Apache2 or FPM or NGINX) - Docker Image for amd64, arm64, arm (Raspberry Pi)
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.