diff --git a/.gitignore b/.gitignore
index 28d1ce20..37325190 100644
--- a/.gitignore
+++ b/.gitignore
@@ -69,6 +69,7 @@
/cfg/php-ini-7.2/*.ini
/cfg/php-ini-7.3/*.ini
/cfg/php-ini-7.4/*.ini
+/cfg/php-ini-8.0/*.ini
# Ignore custom PHP-FPM configs
/cfg/php-fpm-5.2/php-fpm.xml
@@ -81,6 +82,7 @@
/cfg/php-fpm-7.2/*.conf
/cfg/php-fpm-7.3/*.conf
/cfg/php-fpm-7.4/*.conf
+/cfg/php-fpm-8.0/*.conf
# Ignore custom PHP-FPM startup scripts
/autostart/*.sh
@@ -94,6 +96,7 @@
/cfg/php-startup-7.2/*.sh
/cfg/php-startup-7.3/*.sh
/cfg/php-startup-7.4/*.sh
+/cfg/php-startup-8.0/*.sh
# Ignore custom PHP-FPM modules
/mod/php-fpm-5.2/*.so
@@ -106,6 +109,7 @@
/mod/php-fpm-7.2/*.so
/mod/php-fpm-7.3/*.so
/mod/php-fpm-7.4/*.so
+/mod/php-fpm-8.0/*.so
# Ignore custom bash and other confi files
/bash/*
diff --git a/.tests/get-modules.sh b/.tests/get-modules.sh
index 321e7ee7..0681041e 100755
--- a/.tests/get-modules.sh
+++ b/.tests/get-modules.sh
@@ -169,6 +169,23 @@ if ! PHP74_BASE="$( curl -sS https://raw.githubusercontent.com/devilbox/docker-
fi
fi
fi
+if ! PHP80_BASE="$( curl -sS https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md | tac | tac | grep -E '80-base' | sed -e 's/.*">//g' -e 's/<.*//g' )"; then
+ sleep 5;
+ if ! PHP80_BASE="$( curl -sS https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md | tac | tac | grep -E '80-base' | sed -e 's/.*">//g' -e 's/<.*//g' )"; then
+ sleep 5;
+ if ! PHP80_BASE="$( curl -sS https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md | tac | tac | grep -E '80-base' | sed -e 's/.*">//g' -e 's/<.*//g' )"; then
+ sleep 5;
+ if ! PHP80_BASE="$( curl -sS https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md | tac | tac | grep -E '80-base' | sed -e 's/.*">//g' -e 's/<.*//g' )"; then
+ sleep 5;
+ if ! PHP80_BASE="$( curl -sS https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md | tac | tac | grep -E '80-base' | sed -e 's/.*">//g' -e 's/<.*//g' )"; then
+ >&2 echo "Failed to retrieve modules for PHP 8.0"
+ exit 1
+ fi
+ fi
+ fi
+ fi
+fi
+
###
### Get PHP mods modules (5 rounds)
@@ -334,12 +351,28 @@ if ! PHP74_MODS="$( curl -sS https://raw.githubusercontent.com/devilbox/docker-
fi
fi
fi
+if ! PHP80_MODS="$( curl -sS https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md | tac | tac | grep -E '80-mods' | sed -e 's/.*">//g' -e 's/<.*//g' )"; then
+ sleep 5;
+ if ! PHP80_MODS="$( curl -sS https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md | tac | tac | grep -E '80-mods' | sed -e 's/.*">//g' -e 's/<.*//g' )"; then
+ sleep 5;
+ if ! PHP80_MODS="$( curl -sS https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md | tac | tac | grep -E '80-mods' | sed -e 's/.*">//g' -e 's/<.*//g' )"; then
+ sleep 5;
+ if ! PHP80_MODS="$( curl -sS https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md | tac | tac | grep -E '80-mods' | sed -e 's/.*">//g' -e 's/<.*//g' )"; then
+ sleep 5;
+ if ! PHP80_MODS="$( curl -sS https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md | tac | tac | grep -E '80-mods' | sed -e 's/.*">//g' -e 's/<.*//g' )"; then
+ >&2 echo "Failed to retrieve modules for PHP 8.0"
+ exit 1
+ fi
+ fi
+ fi
+ fi
+fi
###
### Todo: add ioncube
###
-MODS="$( echo "${PHP52_MODS}, ${PHP53_MODS}, ${PHP54_MODS}, ${PHP55_MODS}, ${PHP56_MODS}, ${PHP70_MODS}, ${PHP71_MODS}, ${PHP72_MODS}, ${PHP73_MODS}, ${PHP74_MODS}" | sed 's/,/\n/g' | sed -e 's/^\s*//g' -e 's/\s*$//g' | sort -u )"
+MODS="$( echo "${PHP52_MODS}, ${PHP53_MODS}, ${PHP54_MODS}, ${PHP55_MODS}, ${PHP56_MODS}, ${PHP70_MODS}, ${PHP71_MODS}, ${PHP72_MODS}, ${PHP73_MODS}, ${PHP74_MODS}, ${PHP80_MODS}" | sed 's/,/\n/g' | sed -e 's/^\s*//g' -e 's/\s*$//g' | sort -u )"
###
@@ -352,8 +385,8 @@ E="🗸" # Enabled mods modules (can be disabled)
D="d" # Disabled modules (can be enabled)
U=" " # Unavailable
-echo "| Modules | PHP 5.2 | PHP 5.3 | PHP 5.4 | PHP 5.5 | PHP 5.6 | PHP 7.0 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 |"
-echo "|----------------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|"
+echo "| Modules | PHP 5.2 | PHP 5.3 | PHP 5.4 | PHP 5.5 | PHP 5.6 | PHP 7.0 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 |"
+echo "|----------------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|"
echo "${MODS}" | while read line; do
printf "| %-15s%s" "${line}" "|"
@@ -507,5 +540,20 @@ echo "${MODS}" | while read line; do
printf " %s |" "${U}" # Not available
fi
+ # ---------- PHP 8.0 ----------#
+ if echo ",${PHP80_MODS}," | sed 's/,\s/,/g' | grep -Eq ",${line},"; then
+ if echo "${DISABLED}" | grep -Eq ",${line},"; then
+ printf " %s |" "${D}" # Currently disabled
+ else
+ if echo ",${PHP80_BASE}," | sed 's/,\s/,/g' | grep -Eq ",${line},"; then
+ printf " %s |" "${B}" # Enabled, but cannot be disabled
+ else
+ printf " %s |" "${E}" # Enabled, can be disabled
+ fi
+ fi
+ else
+ printf " %s |" "${U}" # Not available
+ fi
+
printf "\n"
done
diff --git a/.travis.yml b/.travis.yml
index 2dcad211..cfd166b1 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -93,6 +93,7 @@ env:
- S1=PHP V1=7.2 S2=HTTPD V2=apache-2.2
- S1=PHP V1=7.3 S2=HTTPD V2=apache-2.2
- S1=PHP V1=7.4 S2=HTTPD V2=apache-2.2
+ - S1=PHP V1=8.0 S2=HTTPD V2=apache-2.2
# PHP vs Apache 2.4
- S1=PHP V1=5.3 S2=HTTPD V2=apache-2.4
- S1=PHP V1=5.4 S2=HTTPD V2=apache-2.4
@@ -103,6 +104,7 @@ env:
- S1=PHP V1=7.2 S2=HTTPD V2=apache-2.4
- S1=PHP V1=7.3 S2=HTTPD V2=apache-2.4
- S1=PHP V1=7.4 S2=HTTPD V2=apache-2.4
+ - S1=PHP V1=8.0 S2=HTTPD V2=apache-2.4
# PHP vs Nginx stable
- S1=PHP V1=5.3 S2=HTTPD V2=nginx-stable
- S1=PHP V1=5.4 S2=HTTPD V2=nginx-stable
@@ -113,6 +115,7 @@ env:
- S1=PHP V1=7.2 S2=HTTPD V2=nginx-stable
- S1=PHP V1=7.3 S2=HTTPD V2=nginx-stable
- S1=PHP V1=7.4 S2=HTTPD V2=nginx-stable
+ - S1=PHP V1=8.0 S2=HTTPD V2=nginx-stable
# PHP vs Nginx mainline
- S1=PHP V1=5.3 S2=HTTPD V2=nginx-mainline
- S1=PHP V1=5.4 S2=HTTPD V2=nginx-mainline
@@ -123,6 +126,7 @@ env:
- S1=PHP V1=7.2 S2=HTTPD V2=nginx-mainline
- S1=PHP V1=7.3 S2=HTTPD V2=nginx-mainline
- S1=PHP V1=7.4 S2=HTTPD V2=nginx-mainline
+ - S1=PHP V1=8.0 S2=HTTPD V2=nginx-mainline
###
### Test all other bundled services
diff --git a/README.md b/README.md
index d46c8844..d9538591 100644
--- a/README.md
+++ b/README.md
@@ -307,14 +307,25 @@ Every single attachable container comes with many different versions. In order t
|
|
+
+ |
+ |
+ 8.0[2] |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+
[1] PHP 5.2 is available to use, but it is not officially supported. The Devilbox intranet does not work with this version as PHP 5.2 does not support namespaces.
Furthermore PHP 5.2 does only work with Apache 2.4, Nginx stable and Nginx mainline. It does not work with Apache 2.2. Use at your own risk.
-[2] PHP 7.4 is the upcoming unreleased version of PHP, which is directly built out of their [master](https://github.com/php/php-src/) branch.
-It will improve every day as the image is rebuilt every day from the latest commits.
+[2] PHP 7.4 and PHP 8.0 are upcoming unreleased versions of PHP, which are directly built out of their [official git branches](https://github.com/php/php-src/) every night to assure you will leverage their latest features.
> **Documentation:**
> [Change container versions](https://devilbox.readthedocs.io/en/latest/getting-started/change-container-versions.html)
@@ -625,104 +636,104 @@ The Devilbox is a development stack, so it is made sure that a lot of PHP module
> * Available, but disabled (can be enabled): **d**
-| Modules | PHP 5.2 | PHP 5.3 | PHP 5.4 | PHP 5.5 | PHP 5.6 | PHP 7.0 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 |
-|----------------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
-| amqp | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
-| apc | | 🗸 | 🗸 | 🗸 | 🗸 | | | | | |
-| apcu | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | |
-| bcmath | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| blackfire | | | | | d | d | d | d | d | |
-| bz2 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| calendar | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| Core | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| ctype | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| curl | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| date | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| dba | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| dom | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| enchant | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| ereg | | ✔ | ✔ | ✔ | ✔ | | | | | |
-| exif | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| FFI | | | | | | | | | | 🗸 |
-| fileinfo | 🗸 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| filter | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| ftp | 🗸 | 🗸 | 🗸 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| gd | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| gettext | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| gmp | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| hash | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| iconv | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| igbinary | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| imagick | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | |
-| imap | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | |
-| interbase | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| intl | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| ioncube | d | d | d | d | d | d | d | d | | |
-| json | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| ldap | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| libxml | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| mbstring | ✔ | 🗸 | 🗸 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| mcrypt | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | |
-| memcache | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
-| memcached | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| mhash | | | | | ✔ | | | | | |
-| mongo | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | | | | |
-| mongodb | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| msgpack | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | |
-| mysql | ✔ | ✔ | 🗸 | 🗸 | 🗸 | | | | | |
-| mysqli | ✔ | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| mysqlnd | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| oci8 | | d | d | d | d | d | d | d | d | d |
-| openssl | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| pcntl | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| pcre | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| PDO | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| pdo_dblib | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| PDO_Firebird | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| pdo_mysql | ✔ | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| PDO_OCI | | | | | | d | d | d | d | d |
-| pdo_pgsql | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| pdo_sqlite | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| pdo_sqlsrv | | | | | | d | d | d | d | |
-| pgsql | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| phalcon | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | |
-| Phar | 🗸 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| posix | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| pspell | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| rdkafka | | d | d | d | d | d | d | d | d | d |
-| readline | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| recode | 🗸 | ✔ | ✔ | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| redis | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| Reflection | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| session | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| shmop | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| SimpleXML | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| snmp | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| soap | ✔ | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| sockets | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| sodium | | | | | | | | ✔ | ✔ | ✔ |
-| SPL | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| SQLite | ✔ | ✔ | | | | | | | | |
-| sqlite3 | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| sqlsrv | | | | | | d | d | d | d | |
-| standard | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| swoole | | d | d | d | d | d | d | d | d | d |
-| sysvmsg | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| sysvsem | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| sysvshm | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| tidy | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| tokenizer | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| uploadprogress | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| wddx | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| xdebug | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | |
-| xml | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| xmlreader | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| xmlrpc | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| xmlwriter | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| xsl | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| Zend OPcache | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| zip | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
-| zlib | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| Modules | PHP 5.2 | PHP 5.3 | PHP 5.4 | PHP 5.5 | PHP 5.6 | PHP 7.0 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 |
+|----------------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
+| amqp | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | | |
+| apc | | 🗸 | 🗸 | 🗸 | 🗸 | | | | | | |
+| apcu | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
+| bcmath | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| blackfire | | | | | d | d | d | d | d | | |
+| bz2 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| calendar | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| Core | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| ctype | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| curl | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| date | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| dba | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| dom | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| enchant | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| ereg | | ✔ | ✔ | ✔ | ✔ | | | | | | |
+| exif | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| FFI | | | | | | | | | | 🗸 | 🗸 |
+| fileinfo | 🗸 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| filter | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| ftp | 🗸 | 🗸 | 🗸 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| gd | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| gettext | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| gmp | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| hash | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| iconv | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| igbinary | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | |
+| imagick | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
+| imap | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
+| interbase | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| intl | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| ioncube | d | d | d | d | d | d | d | d | | | |
+| json | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| ldap | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| libxml | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| mbstring | ✔ | 🗸 | 🗸 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| mcrypt | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
+| memcache | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | | |
+| memcached | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| mhash | | | | | ✔ | | | | | | |
+| mongo | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | | | | | |
+| mongodb | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| msgpack | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
+| mysql | ✔ | ✔ | 🗸 | 🗸 | 🗸 | | | | | | |
+| mysqli | ✔ | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| mysqlnd | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| oci8 | | d | d | d | d | d | d | d | d | d | d |
+| openssl | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| pcntl | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| pcre | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| PDO | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| pdo_dblib | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| PDO_Firebird | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| pdo_mysql | ✔ | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| PDO_OCI | | | | | | d | d | d | d | d | d |
+| pdo_pgsql | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| pdo_sqlite | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| pdo_sqlsrv | | | | | | d | d | d | d | | |
+| pgsql | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| phalcon | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
+| Phar | 🗸 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| posix | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| pspell | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| rdkafka | | d | d | d | d | d | d | d | d | d | |
+| readline | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| recode | 🗸 | ✔ | ✔ | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| redis | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| Reflection | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| session | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| shmop | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| SimpleXML | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| snmp | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| soap | ✔ | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| sockets | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| sodium | | | | | | | | ✔ | ✔ | ✔ | ✔ |
+| SPL | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| SQLite | ✔ | ✔ | | | | | | | | | |
+| sqlite3 | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| sqlsrv | | | | | | d | d | d | d | | |
+| standard | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| swoole | | d | d | d | d | d | d | d | d | d | |
+| sysvmsg | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| sysvsem | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| sysvshm | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| tidy | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| tokenizer | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| uploadprogress | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| wddx | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| xdebug | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
+| xml | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| xmlreader | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| xmlrpc | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| xmlwriter | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| xsl | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| Zend OPcache | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| zip | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
+| zlib | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
> * Core enabled (cannot be disabled): **✔**
@@ -852,6 +863,7 @@ To increase visibility and bug-free operation:
* Star this project
* Open up issues for bugs and feature requests
* Clone this project and submit fixes or features
+* Visit the [Devilbox Community Forums](https://devilbox.discourse.group) for announcements and to help others
Additionally you can [subscribe to Devilbox on CodeTriage](https://www.codetriage.com/cytopia/devilbox),
read up on [CONTRIBUTING.md](CONTRIBUTING.md) and check the [ROADMAP](https://github.com/cytopia/devilbox/issues/23) about what is already planned for the near future.
diff --git a/cfg/php-fpm-8.0/.keepme b/cfg/php-fpm-8.0/.keepme
new file mode 100644
index 00000000..e69de29b
diff --git a/cfg/php-fpm-8.0/README.md b/cfg/php-fpm-8.0/README.md
new file mode 100644
index 00000000..db30d63f
--- /dev/null
+++ b/cfg/php-fpm-8.0/README.md
@@ -0,0 +1,54 @@
+# PHP-FPM config directory
+
+## General
+
+* Add you custom php-fpm.conf files into this directory.
+* Only files ending by `.conf` will be enabled
+* Only files ending by `.conf` are ignored by git
+
+
+## Example files
+
+This directory also holds three example files:
+
+| File | Description |
+|---------------------------------|---------------------------------------------|
+| `devilbox-fpm.conf-default` | Represents current PHP-FPM default settings |
+| `devilbox-fpm.conf-pm_dynamic` | Example settings for dynamic workers |
+| `devilbox-fpm.conf-pm_ondemand` | Example settings for ondemand workers |
+
+* Do not edit these example files!
+* Copy them to a new file (in case you want to use them)
+
+
+## Worker configuration
+
+When changing worker processes or scheduler, the following commands will come in handy
+to monitor number of processes and memory consumption.
+
+```bash
+# Show current PHP-FPM child memory consumption in MB
+ps -ylC php-fpm --sort:rss | awk '!/RSS/ { s+=$8 } END { printf "%dM\n", s/1024 }'
+
+# (repeatedly) show current PHP-FPM child memory consumption in MB
+watch --interval=1 "ps -ylC php-fpm --sort:rss | awk '"'!'"/RSS/ { s+=\$8 } END { printf \"%dM\n\", s/1024 }'"
+
+# (repeatedly) Current number of PHP-FPM childs
+watch --interval=1 "ps auxw | grep -E 'php-(cgi|fpm)' | grep -vE 'grep|master' | wc -l"
+```
+
+
+## Overwriting
+
+If multiple `.conf` files are present in this directory specifying different values for the
+same settings, the last file (alphabetically by filename) will overwrite any previous values.
+
+
+## Compatibility
+
+**Note:**
+
+PHP-FPM 5.2 uses XML-style configuration and does not allow includes.
+If you want to change php-fpm.conf for PHP-FPM 5.2 you need to adjust the main configuration file.
+
+See `php-fpm-5.2/` directory.
diff --git a/cfg/php-fpm-8.0/devilbox-fpm.conf-default b/cfg/php-fpm-8.0/devilbox-fpm.conf-default
new file mode 100644
index 00000000..37e1f8ed
--- /dev/null
+++ b/cfg/php-fpm-8.0/devilbox-fpm.conf-default
@@ -0,0 +1,80 @@
+; ############################################################
+; Devilbox php-fpm.conf: Current default settings
+; ############################################################
+;
+; Information
+; -----------
+; * Do not edit this file (it belongs to git)
+; * This file shows example settings that are currently effective
+; * If this file is enabled, nothing will change as it reflects the current default settings
+;
+; How to enable?
+; --------------
+; * Copy this file to another file with ".conf" extension
+; * Only files with ".conf" extensions will be applied by PHP-FPM
+
+
+; ###
+; ### PHP-FPM global settings
+; ###
+;
+[global]
+
+; Error log level. Possible values: alert, error, warning, notice, debug. Default value: notice.
+log_level = notice
+
+
+
+; ###
+; ### Pool configuratoin
+; ###
+
+[www]
+
+; The timeout for serving a single request after which the worker process will be killed.
+; This option should be used when the 'max_execution_time' ini option does not stop script
+; execution for some reason.
+request_terminate_timeout = 120s
+
+
+; A maximum of backlog incoming connections will be queued for processing.
+; If a connection request arrives with the queue full the client may receive an error with an
+; indication of ECONNREFUSED, or, if the underlying protocol supports retransmission,
+; the request may be ignored so that retries may succeed.
+; This should not be greater than `cat /proc/sys/net/core/somaxconn`, otherwise connections
+; are silently truncated
+listen.backlog = 1024
+
+
+; static - the number of child processes is fixed (pm.max_children).
+;
+; dynamic - the number of child processes is set dynamically based on the following directives:
+; pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
+;
+; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
+; pm.start_servers are started when the service is started.
+pm = ondemand
+
+; The maximum number of child processes to be created
+pm.max_children = 50
+
+; The number of child processes created on startup. Used only when pm is set to dynamic.
+; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
+pm.start_servers = 4
+
+; The desired minimum number of idle server processes.
+pm.min_spare_servers = 2
+
+; The desired maximum number of idle server processes.
+pm.max_spare_servers = 6
+
+; The number of requests each child process should execute before respawning.
+; This can be useful to work around memory leaks in 3rd party libraries.
+; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
+; Default value: 0.
+pm.max_requests = 500
+
+; The number of seconds after which an idle process will be killed. Used only when pm is set to ondemand
+pm.process_idle_timeout = 10s
+
+; vim: set ft=dosini:
diff --git a/cfg/php-fpm-8.0/devilbox-fpm.conf-pm_dynamic b/cfg/php-fpm-8.0/devilbox-fpm.conf-pm_dynamic
new file mode 100644
index 00000000..59ec044b
--- /dev/null
+++ b/cfg/php-fpm-8.0/devilbox-fpm.conf-pm_dynamic
@@ -0,0 +1,46 @@
+; ############################################################
+; # Devilbox php-fpm.conf: dynamic example
+; ############################################################
+;
+; Information
+; -----------
+; * Do not edit this file (it belongs to git)
+; * This file show a possible dynamic example configuration
+; * If this file is enabled, it will overwrite the current worker settings
+;
+; How to enable?
+; --------------
+; * Copy this file to another file with ".conf" extension
+; * Only files with ".conf" extensions will be applied by PHP-FPM
+
+
+; ###
+; ### Pool configuratoin
+; ###
+
+[www]
+
+; dynamic - the number of child processes is set dynamically based on the following directives:
+pm = dynamic
+
+; The maximum number of child processes to be created
+pm.max_children = 50
+
+; The number of child processes created on startup. Used only when pm is set to dynamic.
+; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
+pm.start_servers = 4
+
+; The desired minimum number of idle server processes.
+pm.min_spare_servers = 2
+
+; The desired maximum number of idle server processes.
+pm.max_spare_servers = 6
+
+; The number of requests each child process should execute before respawning.
+; This can be useful to work around memory leaks in 3rd party libraries.
+; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
+; Default value: 0.
+pm.max_requests = 500
+
+
+; vim: set ft=dosini:
diff --git a/cfg/php-fpm-8.0/devilbox-fpm.conf-pm_ondemand b/cfg/php-fpm-8.0/devilbox-fpm.conf-pm_ondemand
new file mode 100644
index 00000000..84cd3ca7
--- /dev/null
+++ b/cfg/php-fpm-8.0/devilbox-fpm.conf-pm_ondemand
@@ -0,0 +1,39 @@
+; ############################################################
+; # Devilbox php-fpm.conf: ondemand example
+; ############################################################
+;
+; Information
+; -----------
+; * Do not edit this file (it belongs to git)
+; * This file show a possible ondemand example configuration
+; * If this file is enabled, it will overwrite the current worker settings
+;
+; How to enable?
+; --------------
+; * Copy this file to another file with ".conf" extension
+; * Only files with ".conf" extensions will be applied by PHP-FPM
+
+
+; ###
+; ### Pool configuratoin
+; ###
+
+[www]
+
+; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
+; pm.start_servers are started when the service is started.
+pm = ondemand
+
+; The maximum number of child processes to be created
+pm.max_children = 50
+
+; The number of requests each child process should execute before respawning.
+; This can be useful to work around memory leaks in 3rd party libraries.
+; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
+; Default value: 0.
+pm.max_requests = 500
+
+; The number of seconds after which an idle process will be killed.
+pm.process_idle_timeout = 10s
+
+; vim: set ft=dosini:
diff --git a/cfg/php-ini-8.0/.keepme b/cfg/php-ini-8.0/.keepme
new file mode 100644
index 00000000..e69de29b
diff --git a/cfg/php-ini-8.0/README.md b/cfg/php-ini-8.0/README.md
new file mode 100644
index 00000000..b967fcaa
--- /dev/null
+++ b/cfg/php-ini-8.0/README.md
@@ -0,0 +1,26 @@
+# PHP ini directory
+
+## General
+
+* Add you custom php.ini files into this directory.
+* Only files ending by `.ini` will be enabled
+* Only files ending by `.ini` are ignored by git
+
+
+## Example files
+
+This directory also holds two example files:
+
+| File | Description |
+|----------------------------|-----------------------------------------|
+| `devilbox-php.ini-default` | Represents current PHP default settings |
+| `devilbox-php.ini-xdebug ` | Example settings for Xdebug |
+
+* Do not edit these example files!
+* Copy them to a new file (in case you want to use them)
+
+
+## Overwriting
+
+If multiple `.ini` files are present in this directory specifying different values for the
+same settings, the last file (alphabetically by filename) will overwrite any previous values.
diff --git a/cfg/php-ini-8.0/devilbox-php.ini-default b/cfg/php-ini-8.0/devilbox-php.ini-default
new file mode 100644
index 00000000..83d03712
--- /dev/null
+++ b/cfg/php-ini-8.0/devilbox-php.ini-default
@@ -0,0 +1,63 @@
+; ############################################################
+; # Devilbox php.ini: Current default settings
+; ############################################################
+;
+; Information
+; -----------
+; * Do not edit this file (it belongs to git)
+; * This file shows example settings that are currently effective
+; * If this file is enabled, nothing will change as it reflects the current default settings
+;
+; How to enable?
+; --------------
+; * Copy this file to another file with ".ini" extension
+; * Only files with ".ini" extensions will be applied by PHP
+
+
+
+;
+; PHP.ini configuration
+;
+[PHP]
+
+; Memory
+; Note: "memory_limit" should be larger than "post_max_size"
+memory_limit = 512M
+
+
+; Timeouts
+max_execution_time = 120
+max_input_time = 120
+
+
+; Uploads
+; Note: "post_max_size" should be greater than "upload_max_filesize"
+post_max_size = 72M
+upload_max_filesize = 64M
+max_file_uploads = 20
+
+
+; Vars
+variables_order = EGPCS
+max_input_vars = 8000
+max_input_nesting_level = 64
+
+
+; Error reporting
+; Note: error_log is dynamic and handled during start to set appropriate setting
+error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
+xmlrpc_errors = Off
+report_memleaks = On
+display_errors = On
+display_startup_errors = On
+log_errors = On
+html_errors = On
+
+
+; Xdebug settings
+xdebug.default_enable = Off
+xdebug.profiler_enable = Off
+xdebug.remote_enable = Off
+xdebug.remote_autostart = Off
+
+; vim: set ft=dosini:
diff --git a/cfg/php-ini-8.0/devilbox-php.ini-xdebug b/cfg/php-ini-8.0/devilbox-php.ini-xdebug
new file mode 100644
index 00000000..d3e977b5
--- /dev/null
+++ b/cfg/php-ini-8.0/devilbox-php.ini-xdebug
@@ -0,0 +1,36 @@
+; ############################################################
+; # Devilbox php.ini: Xdebug example
+; ############################################################
+;
+; Information
+; -----------
+; * Do not edit this file (it belongs to git)
+; * This file show a possible Xdebug example configuration
+; * If this file is enabled, it will overwrite the current Xdebug settings
+;
+; How to enable?
+; --------------
+; * Copy this file to another file with ".ini" extension
+; * Only files with ".ini" extensions will be applied by PHP
+
+
+
+;
+; PHP.ini configuration
+;
+[PHP]
+
+; Xdebug
+; Use these settings to enable Xdebug for PHP
+; Make sure to read up on Xdebug some settings might significantly slow down requests.
+; The following is just an example configuration and should be adjusted
+xdebug.default_enable = On
+xdebug.profiler_enable = On
+xdebug.remote_enable = On
+xdebug.remote_autostart = On
+xdebug.remote_handler = dbgp
+xdebug.remote_port = 9000
+xdebug.idekey = PHPSTORM
+xdebug.remote_log = /var/log/php/xdebug.log
+
+; vim: set ft=dosini:
diff --git a/cfg/php-startup-8.0/01-update-apt-index.sh-example b/cfg/php-startup-8.0/01-update-apt-index.sh-example
new file mode 100755
index 00000000..d324ef89
--- /dev/null
+++ b/cfg/php-startup-8.0/01-update-apt-index.sh-example
@@ -0,0 +1,6 @@
+#!/bin/bash
+#
+# Simple example showing how to update the packet index
+#
+
+DEBIAN_FRONTEND=noninteractive apt-get update -q
diff --git a/cfg/php-startup-8.0/README.md b/cfg/php-startup-8.0/README.md
new file mode 100644
index 00000000..e212252e
--- /dev/null
+++ b/cfg/php-startup-8.0/README.md
@@ -0,0 +1,29 @@
+# Custom startup scripts (per PHP version)
+
+Any script inside this directory ending by `.sh` will be executed during the PHP container startup.
+This is useful to apply your custom settings such as installing software that usually requires
+the user to accept a license or similar.
+
+A few examples are given that do not end by `.sh` which won't be run. If you want to use the
+provided examples, copy them to a file ending by `.sh`
+
+
+## Info
+
+If you want to autostart NodeJS applications, you can use [pm2](https://github.com/Unitech/pm2).
+Ensure you do this as user `devilbox`, as by default everything is run by root.
+
+```bash
+su -c 'cd /shared/httpd/node/node; pm2 start index.js' -l devilbox
+```
+
+
+## Note
+
+This directory will startup commands only for a specific PHP version. If you want to run commands
+for all versions , go to `autostart/` in the root of the Devilbox git directory.
+
+
+## Important
+
+All provided scripts will be executed with **root** permissions.
diff --git a/docker-compose.yml b/docker-compose.yml
index a59d023c..c8810b3b 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -95,7 +95,7 @@ services:
# PHP
# ------------------------------------------------------------
php:
- image: devilbox/php-fpm:${PHP_SERVER}-work-0.74
+ image: devilbox/php-fpm:${PHP_SERVER}-work-0.75
hostname: php
##
diff --git a/docs/autostart/custom-scripts-per-php-version.rst b/docs/autostart/custom-scripts-per-php-version.rst
index 1849b6f3..8fa8059e 100644
--- a/docs/autostart/custom-scripts-per-php-version.rst
+++ b/docs/autostart/custom-scripts-per-php-version.rst
@@ -56,6 +56,7 @@ See the directory structure for PHP startup script directories inside ``./cfg/``
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-startup-7.2/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-startup-7.3/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-startup-7.4/
+ drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-startup-8.0/
Custom scripts are added by placing a file into ``cfg/php-startup-X.X/`` (where ``X.X`` stands for
diff --git a/docs/configuration-files/env-file.rst b/docs/configuration-files/env-file.rst
index 7b456d79..366ad0fd 100644
--- a/docs/configuration-files/env-file.rst
+++ b/docs/configuration-files/env-file.rst
@@ -556,11 +556,11 @@ PHP_SERVER
This variable choses your desired PHP-FPM version to be started.
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+
-| Name | Allowed values | Default value |
-+=========================+==============================================================================================================================================================================================================+=================+
-| ``PHP_SERVER`` | ``php-fpm-5.2`` |br| ``php-fpm-5.3`` |br| ``php-fpm-5.4`` |br| ``php-fpm-5.5`` |br| ``php-fpm-5.6`` |br| ``php-fpm-7.0`` |br| ``php-fpm-7.1`` |br| ``php-fpm-7.2`` |br| ``php-fpm-7.3`` |br| ``php-fpm-7.4`` | ``php-fpm-7.2`` |
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+
++-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+
+| Name | Allowed values | Default value |
++=========================+===================================================================================================================================================================================================================================+=================+
+| ``PHP_SERVER`` | ``php-fpm-5.2`` |br| ``php-fpm-5.3`` |br| ``php-fpm-5.4`` |br| ``php-fpm-5.5`` |br| ``php-fpm-5.6`` |br| ``php-fpm-7.0`` |br| ``php-fpm-7.1`` |br| ``php-fpm-7.2`` |br| ``php-fpm-7.3`` |br| ``php-fpm-7.4`` |br| ``php-fpm-8.0`` | ``php-fpm-7.2`` |
++-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+
.. important::
**PHP 5.2** is available to use, but it is not officially supported. The Devilbox intranet does
@@ -587,6 +587,7 @@ All values are already available in the ``.env`` file and just need to be commen
#PHP_SERVER=php-fpm-7.2
#PHP_SERVER=php-fpm-7.3
#PHP_SERVER=php-fpm-7.4
+ #PHP_SERVER=php-fpm-8.0
.. _env_httpd_server:
diff --git a/docs/configuration-files/php-fpm-conf.rst b/docs/configuration-files/php-fpm-conf.rst
index 0b0316ad..e08c3a12 100644
--- a/docs/configuration-files/php-fpm-conf.rst
+++ b/docs/configuration-files/php-fpm-conf.rst
@@ -41,6 +41,7 @@ See the directory structure for PHP-FPM configuration directories inside ``./cfg
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-fpm-7.2/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-fpm-7.3/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-fpm-7.4/
+ drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-fpm-8.0/
Customization is achieved by placing a file into ``cfg/php-fpm-X.X/`` (where ``X.X`` stands for
your PHP version). The file must end by ``.conf`` in order to be sourced by the PHP-FPM server.
diff --git a/docs/configuration-files/php-ini.rst b/docs/configuration-files/php-ini.rst
index 68abe135..69142406 100644
--- a/docs/configuration-files/php-ini.rst
+++ b/docs/configuration-files/php-ini.rst
@@ -34,6 +34,7 @@ See the directory structure for PHP configuration directories inside ``./cfg/``
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-ini-7.2/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-ini-7.3/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-ini-7.4/
+ drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-ini-8.0/
Customization is achieved by placing a file into ``cfg/php-ini-X.X/`` (where ``X.X`` stands for
your PHP version). The file must end by ``.ini`` in order to be sourced by the PHP-FPM server.
diff --git a/docs/getting-started/change-container-versions.rst b/docs/getting-started/change-container-versions.rst
index ed102089..512afc6d 100644
--- a/docs/getting-started/change-container-versions.rst
+++ b/docs/getting-started/change-container-versions.rst
@@ -89,6 +89,7 @@ It will look something like this:
#PHP_SERVER=7.2
#PHP_SERVER=7.3
#PHP_SERVER=7.4
+ #PHP_SERVER=8.0
As you can see, all available values are already there, but commented. Only one is uncommented.
In this example it is ``7.1``, which is the PHP version that will be started, once the Devilbox
@@ -113,6 +114,7 @@ In order to enable PHP 5.5, you would change the ``.env`` file like this:
#PHP_SERVER=7.2
#PHP_SERVER=7.3
#PHP_SERVER=7.4
+ #PHP_SERVER=8.0
Start the Devilbox
^^^^^^^^^^^^^^^^^^
@@ -232,6 +234,7 @@ Consider this ``.env`` file:
#PHP_SERVER=7.2
#PHP_SERVER=7.3
#PHP_SERVER=7.4
+ #PHP_SERVER=8.0
Both, PHP 5.5 and PHP 7.0 are uncommented, however, when you start the Devilbox, it will use
PHP 7.0 as this value overwrites any previous ones.
diff --git a/env-example b/env-example
index 6eff272e..6fd4eca6 100644
--- a/env-example
+++ b/env-example
@@ -264,6 +264,7 @@ DEVILBOX_VENDOR_PHPPGADMIN_AUTOLOGIN=1
PHP_SERVER=7.2
#PHP_SERVER=7.3
#PHP_SERVER=7.4
+#PHP_SERVER=8.0
###