Merge branch 'master' into patch-1

This commit is contained in:
Agnohendrix 2021-05-20 15:48:25 +02:00 committed by GitHub
commit aff86a6b15
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
25 changed files with 1901 additions and 4513 deletions

4
.devilbox/cfg/mysql.cnf Normal file
View File

@ -0,0 +1,4 @@
[mysqld]
server_id = 1
log_bin = "mysql-bin"
sync_binlog = 0

View File

@ -13,8 +13,8 @@ error_reporting(-1);
putenv('RES_OPTIONS=retrans:1 retry:1 timeout:1 attempts:1');
$DEVILBOX_VERSION = 'v1.9.0';
$DEVILBOX_DATE = '2020-12-12';
$DEVILBOX_VERSION = 'v1.9.1';
$DEVILBOX_DATE = '2021-05-19';
$DEVILBOX_API_PAGE = 'devilbox-api/status.json';
//

View File

@ -19,7 +19,7 @@
<div class="col-md-12">
<?php if (!loadClass('Memcd')->isAvailable()): ?>
<p>Memcahed container is not running.</p>
<p>Memcached container is not running.</p>
<?php else: ?>
<?php foreach (loadClass('Memcd')->getInfo() as $srv => $data): ?>
<h2><?php echo $srv; ?></h2>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -72,6 +72,10 @@ class Html
'name' => 'PHP Info',
'path' => '/info_php.php'
),
array(
'name' => 'PHP Xdebug Info',
'path' => '/info_xdebug.php'
),
array(
'name' => 'MySQL Info',
'path' => '/info_mysql.php'
@ -92,10 +96,6 @@ class Html
'name' => 'Memcached Info',
'path' => '/info_memcd.php'
),
array(
'name' => 'XDebug Control Panel',
'path' => '/xdebug.php'
)
)
),
array(
@ -435,9 +435,9 @@ HTML;
if (version_compare(loadClass('Php')->getVersion(), '5.4', '<')) {
$el['path'] = '/vendor/adminer-4.6.3-en.php';
} elseif (version_compare(loadClass('Php')->getVersion(), '8.0', '<')){
$el['path'] = '/vendor/adminer-4.7.7-en.php';
$el['path'] = '/vendor/adminer-4.8.1-en.php';
} else {
$el['path'] = '/vendor/adminer-4.7.7-en-php8.php';
$el['path'] = '/vendor/adminer-4.8.1-en.php';
}
}

View File

@ -37,6 +37,11 @@ class Memcd extends BaseClass implements BaseInterface
{
parent::__construct($hostname, $data);
// Faster check if memcached is not loaded
if (!$this->isAvailable()) {
return;
}
if (class_exists('Memcached')) {
$memcd = new \Memcached('_devilbox');
$list = $memcd->getServerList();
@ -274,4 +279,14 @@ class Memcd extends BaseClass implements BaseInterface
}
return $this->_version;
}
public function isAvailable()
{
if (extension_loaded('memcached')) {
return parent::isAvailable();
}
// when php module 'memcached' not available or just disable by configuration (see .env PHP_MODULES_DISABLE)
return false;
}
}

View File

@ -230,4 +230,14 @@ class Mongo extends BaseClass implements BaseInterface
}
return $this->_version;
}
public function isAvailable()
{
if (extension_loaded('mongo') || extension_loaded('mongodb')) {
return parent::isAvailable();
}
// when php modules 'mongo' or 'mongodb' not available or just disable by configuration (see .env PHP_MODULES_DISABLE)
return false;
}
}

View File

@ -31,6 +31,11 @@ class Mysql extends BaseClass implements BaseInterface
{
parent::__construct($hostname, $data);
// Faster check if mysql is not loaded
if (!$this->isAvailable()) {
return;
}
$user = $data['user'];
$pass = $data['pass'];
@ -308,4 +313,14 @@ class Mysql extends BaseClass implements BaseInterface
return $this->_version;
}
public function isAvailable()
{
if (extension_loaded('mysqli')) {
return parent::isAvailable();
}
// when php module 'mysqli' not available or just disable by configuration (see .env PHP_MODULES_DISABLE)
return false;
}
}

View File

@ -38,6 +38,11 @@ class Pgsql extends BaseClass implements BaseInterface
{
parent::__construct($hostname, $data);
// Faster check if pgsql is not loaded
if (!$this->isAvailable()) {
return;
}
$user = $data['user'];
$pass = $data['pass'];
$db = isset($data['db']) ? $data['db'] : null;
@ -372,4 +377,14 @@ class Pgsql extends BaseClass implements BaseInterface
return $this->_version;
}
public function isAvailable()
{
if (extension_loaded('pgsql')) {
return parent::isAvailable();
}
// when php module 'pgsql' not available or just disable by configuration (see .env PHP_MODULES_DISABLE)
return false;
}
}

View File

@ -218,4 +218,14 @@ class Redis extends BaseClass implements BaseInterface
return $this->_version;
}
public function isAvailable()
{
if (extension_loaded('redis')) {
return parent::isAvailable();
}
// when php module 'redis' not available or just disable by configuration (see .env PHP_MODULES_DISABLE)
return false;
}
}

1
.gitignore vendored
View File

@ -88,6 +88,7 @@
/cfg/php-ini-7.3/*.ini
/cfg/php-ini-7.4/*.ini
/cfg/php-ini-8.0/*.ini
/cfg/php-ini-8.1/*.ini
# Ignore custom PHP-FPM configs
/cfg/php-fpm-5.2/php-fpm.xml

View File

@ -22,7 +22,7 @@ lint-tests:
-v "$(PWD):/mnt" \
--entrypoint=sh \
koalaman/shellcheck-alpine:stable \
-c "find . -name '*.sh' -print0 | xargs -0 -n1 shellcheck --check-sourced --color=auto --shell=bash"
-c "find . -name '*.sh' -print0 | xargs -0 -n1 shellcheck --check-sourced --color=auto --exclude=SC1091 --shell=bash"
# -------------------------------------------------------------------------------------------------

View File

@ -326,15 +326,15 @@ MODS="$( echo "${PHP52_MODS}, ${PHP53_MODS}, ${PHP54_MODS}, ${PHP55_MODS}, ${PHP
###
### Get disabled modules
###
DISABLED=",blackfire,ioncube,$( grep -E '^PHP_MODULES_DISABLE=' "${DVLBOX_PATH}/env-example" | sed 's/.*=//g' ),"
DISABLED=",blackfire,ioncube,phalcon,psr,$( grep -E '^PHP_MODULES_DISABLE=' "${DVLBOX_PATH}/env-example" | sed 's/.*=//g' ),"
#echo $DISABLED
B="✔" # Enabled base modules (cannot be disabled)
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 | PHP 8.0 | PHP 8.1 |"
echo "|-------------------------------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|"
echo "| Modules | <sup>PHP 5.2</sup> | <sup>PHP 5.3</sup> | <sup>PHP 5.4</sup> | <sup>PHP 5.5</sup> | <sup>PHP 5.6</sup> | <sup>PHP 7.0</sup> | <sup>PHP 7.1</sup> | <sup>PHP 7.2</sup> | <sup>PHP 7.3</sup> | <sup>PHP 7.4</sup> | <sup>PHP 8.0</sup> | <sup>PHP 8.1</sup> |"
echo "|-------------------------------|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|"
echo "${MODS}" | while read -r line; do
# Print current module
printf "| %-30s%s" "<small>${line}</small>" "|"

View File

@ -69,7 +69,7 @@ if [ "${PHP_VERSION}" = "5.2" ] || [ "${PHP_VERSION}" = "5.3" ] || [ "${PHP_VERS
printf "\\r[OK] Xdebug default disabled\\n"
fi
else
if ! run "curl -sS --fail 'http://localhost:${HOST_PORT_HTTPD}/info_php.php' | tac | tac | grep 'xdebug.mode' | grep -E 'develop.+develop' >/dev/null" "${RETRIES}" "" "0"; then
if ! run "curl -sS --fail 'http://localhost:${HOST_PORT_HTTPD}/info_php.php' | tac | tac | grep 'xdebug.mode' | grep -E '(develop.+develop)|(no value.+no value)' >/dev/null" "${RETRIES}" "" "0"; then
printf "\\r[FAIL] Xdebug default disabled\\n"
run "curl -sS 'http://localhost:${HOST_PORT_HTTPD}/info_php.php' | grep 'xdebug.mode' || true"
exit 1

View File

@ -1,399 +0,0 @@
---
###
### Enable Python support
###
language: python
###
### Enable sudo (required for docker service)
###
sudo: required
###
### Attach services
###
services:
- docker
###
### Specify combinations
###
env:
###
### Check PHP Modules
###
- S1=MODULES
###
### Check Documentation
###
- S1=DOCUMENTATION V1=Build
- S1=DOCUMENTATION V1=linkcheck
- S1=DOCUMENTATION V1=linkcheck2
###
### Check Update script
###
- S1=UPDATE V1=php
- S1=UPDATE V1=httpd
- S1=UPDATE V1=mysql
- S1=UPDATE V1=rest
###
### Test various Docker/DockerCompose versions
###
### Docker versions: https://github.com/docker/docker-ce/releases
### Compose versions: https://github.com/docker/compose/releases
###
# Latest Docker version against various DockerCompose versions
- S1=DOCKER V1=1 S2=COMPOSE V2=1
- S1=DOCKER V1=1 S2=COMPOSE V2=2
- S1=DOCKER V1=1 S2=COMPOSE V2=3
- S1=DOCKER V1=1 S2=COMPOSE V2=4
- S1=DOCKER V1=1 S2=COMPOSE V2=5
# 2nd Latest Docker version against various DockerCompose versions
- S1=DOCKER V1=2 S2=COMPOSE V2=1
- S1=DOCKER V1=2 S2=COMPOSE V2=2
- S1=DOCKER V1=2 S2=COMPOSE V2=3
- S1=DOCKER V1=2 S2=COMPOSE V2=4
- S1=DOCKER V1=2 S2=COMPOSE V2=5
# 3rd Latest Docker version against various DockerCompose versions
- S1=DOCKER V1=3 S2=COMPOSE V2=1
- S1=DOCKER V1=3 S2=COMPOSE V2=2
- S1=DOCKER V1=3 S2=COMPOSE V2=3
- S1=DOCKER V1=3 S2=COMPOSE V2=4
- S1=DOCKER V1=3 S2=COMPOSE V2=5
# 4th Latest Docker version against various DockerCompose versions
- S1=DOCKER V1=4 S2=COMPOSE V2=1
- S1=DOCKER V1=4 S2=COMPOSE V2=2
- S1=DOCKER V1=4 S2=COMPOSE V2=3
- S1=DOCKER V1=4 S2=COMPOSE V2=4
- S1=DOCKER V1=4 S2=COMPOSE V2=5
# 5th Latest Docker version against various DockerCompose versions
- S1=DOCKER V1=5 S2=COMPOSE V2=1
- S1=DOCKER V1=5 S2=COMPOSE V2=2
- S1=DOCKER V1=5 S2=COMPOSE V2=3
- S1=DOCKER V1=5 S2=COMPOSE V2=4
- S1=DOCKER V1=5 S2=COMPOSE V2=5
###
### The matrix specifies 2 versions to compare against each other.
### As PHP (any version) needs to be able to run with everything,
### I am going to test any PHP version against any other service.
###
###
### PHP vs WWW
###
# PHP vs Apache 2.2
- S1=PHP V1=5.3 S2=HTTPD V2=apache-2.2
- S1=PHP V1=5.4 S2=HTTPD V2=apache-2.2
- S1=PHP V1=5.5 S2=HTTPD V2=apache-2.2
- S1=PHP V1=5.6 S2=HTTPD V2=apache-2.2
- S1=PHP V1=7.0 S2=HTTPD V2=apache-2.2
- S1=PHP V1=7.1 S2=HTTPD V2=apache-2.2
- 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
- S1=PHP V1=8.1 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
- S1=PHP V1=5.5 S2=HTTPD V2=apache-2.4
- S1=PHP V1=5.6 S2=HTTPD V2=apache-2.4
- S1=PHP V1=7.0 S2=HTTPD V2=apache-2.4
- S1=PHP V1=7.1 S2=HTTPD V2=apache-2.4
- 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
- S1=PHP V1=8.1 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
- S1=PHP V1=5.5 S2=HTTPD V2=nginx-stable
- S1=PHP V1=5.6 S2=HTTPD V2=nginx-stable
- S1=PHP V1=7.0 S2=HTTPD V2=nginx-stable
- S1=PHP V1=7.1 S2=HTTPD V2=nginx-stable
- 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
- S1=PHP V1=8.1 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
- S1=PHP V1=5.5 S2=HTTPD V2=nginx-mainline
- S1=PHP V1=5.6 S2=HTTPD V2=nginx-mainline
- S1=PHP V1=7.0 S2=HTTPD V2=nginx-mainline
- S1=PHP V1=7.1 S2=HTTPD V2=nginx-mainline
- 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
- S1=PHP V1=8.1 S2=HTTPD V2=nginx-mainline
###
### Test all other bundled services
###
### PHP 7.4 vs XYZ
###
# PHP 7.4 vs MySQL
- S1=PHP V1=7.4 S2=MYSQL V2=mysql-5.5
- S1=PHP V1=7.4 S2=MYSQL V2=mysql-5.6
- S1=PHP V1=7.4 S2=MYSQL V2=mysql-5.7
- S1=PHP V1=7.4 S2=MYSQL V2=mysql-8.0
- S1=PHP V1=7.4 S2=MYSQL V2=mariadb-5.5
- S1=PHP V1=7.4 S2=MYSQL V2=mariadb-10.0
- S1=PHP V1=7.4 S2=MYSQL V2=mariadb-10.1
- S1=PHP V1=7.4 S2=MYSQL V2=mariadb-10.2
- S1=PHP V1=7.4 S2=MYSQL V2=mariadb-10.3
- S1=PHP V1=7.4 S2=MYSQL V2=mariadb-10.4
- S1=PHP V1=7.4 S2=MYSQL V2=mariadb-10.5
- S1=PHP V1=7.4 S2=MYSQL V2=percona-5.5
- S1=PHP V1=7.4 S2=MYSQL V2=percona-5.6
- S1=PHP V1=7.4 S2=MYSQL V2=percona-5.7
- S1=PHP V1=7.4 S2=MYSQL V2=percona-8.0
# PHP 7.4 vs PgSQL
- S1=PHP V1=7.4 S2=PGSQL V2=9.0
- S1=PHP V1=7.4 S2=PGSQL V2=9.1
- S1=PHP V1=7.4 S2=PGSQL V2=9.2
- S1=PHP V1=7.4 S2=PGSQL V2=9.2-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=9.3
- S1=PHP V1=7.4 S2=PGSQL V2=9.3-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=9.4
- S1=PHP V1=7.4 S2=PGSQL V2=9.4-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=9.5
- S1=PHP V1=7.4 S2=PGSQL V2=9.5-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=9.6
- S1=PHP V1=7.4 S2=PGSQL V2=9.6-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=10.0
- S1=PHP V1=7.4 S2=PGSQL V2=10.0-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=10.1
- S1=PHP V1=7.4 S2=PGSQL V2=10.1-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=10.2
- S1=PHP V1=7.4 S2=PGSQL V2=10.2-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=10.3
- S1=PHP V1=7.4 S2=PGSQL V2=10.3-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=10.4
- S1=PHP V1=7.4 S2=PGSQL V2=10.4-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=10.5
- S1=PHP V1=7.4 S2=PGSQL V2=10.5-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=10.6
- S1=PHP V1=7.4 S2=PGSQL V2=10.6-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=11.0
- S1=PHP V1=7.4 S2=PGSQL V2=11.0-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=11.1
- S1=PHP V1=7.4 S2=PGSQL V2=11.1-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=11.2
- S1=PHP V1=7.4 S2=PGSQL V2=11.2-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=11.3
- S1=PHP V1=7.4 S2=PGSQL V2=11.3-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=11.4
- S1=PHP V1=7.4 S2=PGSQL V2=11.4-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=11.5
- S1=PHP V1=7.4 S2=PGSQL V2=11.5-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=11.6
- S1=PHP V1=7.4 S2=PGSQL V2=11.6-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=11.7
- S1=PHP V1=7.4 S2=PGSQL V2=11.7-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=11.8
- S1=PHP V1=7.4 S2=PGSQL V2=11.8-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=11.9
- S1=PHP V1=7.4 S2=PGSQL V2=11.9-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=12.0
- S1=PHP V1=7.4 S2=PGSQL V2=12.0-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=12.1
- S1=PHP V1=7.4 S2=PGSQL V2=12.1-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=12.2
- S1=PHP V1=7.4 S2=PGSQL V2=12.2-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=12.3
- S1=PHP V1=7.4 S2=PGSQL V2=12.3-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=12.4
- S1=PHP V1=7.4 S2=PGSQL V2=12.4-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=13.0
- S1=PHP V1=7.4 S2=PGSQL V2=13.0-alpine
- S1=PHP V1=7.4 S2=PGSQL V2=latest
- S1=PHP V1=7.4 S2=PGSQL V2=alpine
# PHP 7.4 vs Redis
- S1=PHP V1=7.4 S2=REDIS V2=2.8
- S1=PHP V1=7.4 S2=REDIS V2=3.0
- S1=PHP V1=7.4 S2=REDIS V2=3.0-alpine
- S1=PHP V1=7.4 S2=REDIS V2=3.2
- S1=PHP V1=7.4 S2=REDIS V2=3.2-alpine
- S1=PHP V1=7.4 S2=REDIS V2=4.0
- S1=PHP V1=7.4 S2=REDIS V2=4.0-alpine
- S1=PHP V1=7.4 S2=REDIS V2=5.0
- S1=PHP V1=7.4 S2=REDIS V2=5.0-alpine
- S1=PHP V1=7.4 S2=REDIS V2=6.0
- S1=PHP V1=7.4 S2=REDIS V2=6.0-alpine
- S1=PHP V1=7.4 S2=REDIS V2=latest
- S1=PHP V1=7.4 S2=REDIS V2=alpine
# PHP 7.4 vs Memcached
- S1=PHP V1=7.4 S2=MEMCD V2=1.4
- S1=PHP V1=7.4 S2=MEMCD V2=1.4-alpine
- S1=PHP V1=7.4 S2=MEMCD V2=1.5
- S1=PHP V1=7.4 S2=MEMCD V2=1.5-alpine
- S1=PHP V1=7.4 S2=MEMCD V2=1.6
- S1=PHP V1=7.4 S2=MEMCD V2=1.6-alpine
- S1=PHP V1=7.4 S2=MEMCD V2=latest
- S1=PHP V1=7.4 S2=MEMCD V2=alpine
# PHP 7.4 vs MongoDB
- S1=PHP V1=7.4 S2=MONGO V2=2.8
- S1=PHP V1=7.4 S2=MONGO V2=3.0
- S1=PHP V1=7.4 S2=MONGO V2=3.2
- S1=PHP V1=7.4 S2=MONGO V2=3.4
- S1=PHP V1=7.4 S2=MONGO V2=3.6
- S1=PHP V1=7.4 S2=MONGO V2=4.0
- S1=PHP V1=7.4 S2=MONGO V2=4.2
- S1=PHP V1=7.4 S2=MONGO V2=4.4
- S1=PHP V1=7.4 S2=MONGO V2=latest
#jobs:
# allow_failures:
# - env: S1=DOCUMENTATION V1=linkcheck2
###
### Installation
###
install:
# Update Debian/Ubuntu package index
- if [ "${S1}" != "MODULES" ] && [ "${S1}" != "DOCUMENTATION" ] && [ "${S1}" != "UPDATE" ]; then
until sudo apt-get update -qq; do sleep 5; done
fi
# Determine latest Docker version in apt
- DOCKER_APT="";
if [ "${S1}" = "DOCKER" ]; then
DOCKER_APT="$( curl -sS https://raw.githubusercontent.com/cytopia/tools/master/docker-apt-versions | sh -s "${V1}" )";
fi;
if [ -n "${DOCKER_APT}" ]; then
DOCKER_APT="=${DOCKER_APT}";
fi;
echo "${DOCKER_APT}";
# Determine latest Docker Compose version
- if [ "${S2}" = "COMPOSE" ]; then
COMPOSE_VERSION="$( curl -sS https://raw.githubusercontent.com/cytopia/tools/master/docker-compose-versions | sh -s "${V2}" )";
else
COMPOSE_VERSION="$( curl -sS https://raw.githubusercontent.com/cytopia/tools/master/docker-compose-versions | sh -s 1 )";
fi;
echo "${COMPOSE_VERSION}";
# Install Docker and Docker Compose
- if [ "${S1}" != "MODULES" ] && [ "${S1}" != "DOCUMENTATION" ] && [ "${S1}" != "UPDATE" ]; then
until sudo apt-get -y -qq -o Dpkg::Options::="--force-confnew" install docker-ce${DOCKER_APT}; do sleep 5; done;
until curl -L -sS https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose; do sleep 5; done;
chmod +x docker-compose;
sudo mv -f docker-compose /usr/local/bin;
fi
# Provide retry function
- retry() {
for ((n=0; n<60; n++)); do
echo "[${n}] ${*}";
if eval "${*}"; then
return 0;
fi;
sleep 1;
done;
return 1;
}
###
### Before Script
###
before_script:
# Disable services enabled by default
# http://docs.travis-ci.com/user/database-setup/#MySQL
- sudo service mysql stop || true
- sudo service postgresql stop || true
- sudo service memcached stop || true
- sudo service redis stop || true
- sudo service mongodb stop || true
- netstat -tuln
# Ensure Docker is restarted
- sudo service docker stop || true
- sudo service docker start || true
# Show Docker/Docker Compose
- if [ "${S1}" != "DOCUMENTATION" ]; then
docker --version;
docker-compose --version;
fi
###
### Test
###
script:
###
### Test Modules
###
- if [ "${S1}" = "MODULES" ]; then
cd .tests/;
retry make update-readme;
fi
- if [ "${S1}" = "MODULES" ]; then
git diff --quiet || { echo "Build Changes"; git diff; git status; false; };
fi
###
### Test Documentation
###
- if [ "${S1}" = "DOCUMENTATION" ] && [ "${V1}" = "Build" ]; then
cd docs/;
retry make build;
fi
- if [ "${S1}" = "DOCUMENTATION" ] && [ "${V1}" = "linkcheck" ]; then
cd docs/;
retry make linkcheck;
fi
- if [ "${S1}" = "DOCUMENTATION" ] && [ "${V1}" = "linkcheck2" ]; then
cd docs/;
retry make linkcheck2;
fi
###
### Test Update script
###
- if [ "${S1}" = "UPDATE" ]; then
./update-docker.sh "${V1}";
fi
###
### Test Devilbox
###
- if [ "${S1}" != "MODULES" ] && [ "${S1}" != "DOCUMENTATION" ] && [ "${S1}" != "UPDATE" ]; then
cd .tests/;
fi
- if [ "${S1}" != "MODULES" ] && [ "${S1}" != "DOCUMENTATION" ] && [ "${S1}" != "UPDATE" ]; then
if [ "${S1}" != "DOCKER" ]; then
retry make configure KEY="${S1}_SERVER" VAL="${V1}" &&
retry make configure KEY="${S2}_SERVER" VAL="${V2}";
fi
fi
- if [ "${S1}" != "MODULES" ] && [ "${S1}" != "DOCUMENTATION" ] && [ "${S1}" != "UPDATE" ]; then
retry make start &&
retry make test-smoke-modules &&
retry make test-smoke-config &&
retry make test-smoke-intranet &&
retry make test-smoke-vendors &&
retry make test-smoke-vhosts &&
retry make test-smoke-rproxies &&
retry make test-smoke-ssl &&
retry make test-smoke-bind &&
retry make test-smoke-autostart &&
retry make test-smoke-framework-cakephp &&
retry make test-smoke-framework-drupal &&
retry make test-smoke-framework-wordpress &&
retry make test-smoke-container;
fi

View File

@ -6,17 +6,31 @@ Make sure to have a look at [UPDATING.md](https://github.com/cytopia/devilbox/bl
## Unreleased
## Release v1.9.1 (2021-05-19)
#### Added
- Added PHP Xdebug info page for intranet
#### Changed
- [#769](https://github.com/cytopia/devilbox/issues/769) Adjusted Xdebug 3.0 defaults
- Update PHP images to 0.125
- MySQL database use binlog by default
- Updated Adminer to 4.8.1
#### Fixed
- [#783](https://github.com/cytopia/devilbox/pull/783) Kibana 6.6 and above uses ELASTICSEARCH_HOSTS
- [#801](https://github.com/cytopia/devilbox/issues/801) Intranet not available when some php modules disabled or not compiled
## Release v1.9.0 (2020-12-12)
#### Fixed
- [#761](https://github.com/cytopia/devilbox/issues/761) Fixed missing Varnish config env var
- [#10](https://github.com/devilbox/watcherd/issues/10) watcherd performance issues
- Fixed `mdl` rubygen for PHP images
- Fixed `drupal` (Drupal Console Launcher) for PHP images
#### Added
- Added `ioncube` extension to PHP 7.4
- Added `sqlsrv` extension to PHP 7.4
- Added `apcu` extension to PHP 8.0
@ -45,7 +59,6 @@ Make sure to have a look at [UPDATING.md](https://github.com/cytopia/devilbox/bl
- Added checks for TLD_SUFFIX in check-config.sh
#### Changed
- [#763](https://github.com/cytopia/devilbox/issues/764) `redis` extension compiles with `msgpack` and `igbinary` as available serializers
- Updated xdebug to latest version
- Updated `watcherd` to latest version
@ -55,12 +68,10 @@ Make sure to have a look at [UPDATING.md](https://github.com/cytopia/devilbox/bl
## Release v1.8.3 (2020-11-22)
#### Fixed
- [#753](https://github.com/cytopia/devilbox/issues/753) Fixed symlink handling in watcherd
- [#751](https://github.com/cytopia/devilbox/issues/751) Fixed duplicate output in check-config.sh
#### Added
- [#755](https://github.com/cytopia/devilbox/issues/755) Added ~/.composer/vendor/bin to $PATH
- [#692](https://github.com/cytopia/devilbox/issues/692) Added custom supervisor configs
- Added project and customization checks in check-config.sh

View File

@ -22,7 +22,6 @@
[![type](https://img.shields.io/badge/type-Docker-blue.svg)](https://www.docker.com/)
[![License](https://img.shields.io/badge/license-MIT-%233DA639.svg)](https://opensource.org/licenses/MIT)
[![Build Status](https://travis-ci.org/cytopia/devilbox.svg?branch=master)](https://travis-ci.org/cytopia/devilbox)
[![Documentation Status](https://readthedocs.org/projects/devilbox/badge/?version=latest)](https://devilbox.readthedocs.io)
[![Build Status](https://github.com/cytopia/devilbox/workflows/Lint/badge.svg)](https://github.com/cytopia/devilbox/actions?workflow=Lint)
[![Build Status](https://github.com/cytopia/devilbox/workflows/Docs/badge.svg)](https://github.com/cytopia/devilbox/actions?workflow=Docs)
@ -507,7 +506,7 @@ The Devilbox has everything setup for you. The only thing you will have to insta
</tr>
<tr>
<td>:star: Auto virtual hosts</td>
<td>New virtual hosts are created automatically and instantly whenever you add a project directory. This is done internally via <a href="https://travis-ci.org/devilbox/vhost-gen">vhost-gen</a> and <a href="https://github.com/devilbox/watcherd">watcherd</a>.</td>
<td>New virtual hosts are created automatically and instantly whenever you add a project directory. This is done internally via <a href="https://github.com/devilbox/vhost-gen">vhost-gen</a> and <a href="https://github.com/devilbox/watcherd">watcherd</a>.</td>
</tr>
<tr>
<td>:star: Automated SSL certs</td>
@ -720,8 +719,8 @@ 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 -->
| 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 | PHP 8.1 |
|-------------------------------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
| Modules | <sup>PHP 5.2</sup> | <sup>PHP 5.3</sup> | <sup>PHP 5.4</sup> | <sup>PHP 5.5</sup> | <sup>PHP 5.6</sup> | <sup>PHP 7.0</sup> | <sup>PHP 7.1</sup> | <sup>PHP 7.2</sup> | <sup>PHP 7.3</sup> | <sup>PHP 7.4</sup> | <sup>PHP 8.0</sup> | <sup>PHP 8.1</sup> |
|-------------------------------|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|
| <small>amqp</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
| <small>apc</small> | | 🗸 | 🗸 | 🗸 | 🗸 | | | | | | | |
| <small>apcu</small> | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
@ -773,7 +772,7 @@ The Devilbox is a development stack, so it is made sure that a lot of PHP module
| <small>pcntl</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
| <small>pcre</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| <small>PDO</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| <small>pdo_dblib</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
| <small>pdo_dblib</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | |
| <small>PDO_Firebird</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
| <small>pdo_mysql</small> | ✔ | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
| <small>PDO_OCI</small> | | | | | | d | d | d | d | d | d | d |
@ -781,11 +780,11 @@ The Devilbox is a development stack, so it is made sure that a lot of PHP module
| <small>pdo_sqlite</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| <small>pdo_sqlsrv</small> | | | | | | d | d | d | d | | | |
| <small>pgsql</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
| <small>phalcon</small> | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
| <small>phalcon</small> | | d | d | d | d | d | d | d | d | d | | |
| <small>Phar</small> | 🗸 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| <small>posix</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| <small>pspell</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
| <small>psr</small> | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
| <small>psr</small> | | | d | d | d | d | d | d | d | d | d | d |
| <small>rdkafka</small> | | d | d | d | d | d | d | d | d | d | | |
| <small>readline</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| <small>recode</small> | 🗸 | ✔ | ✔ | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | | |
@ -815,7 +814,7 @@ The Devilbox is a development stack, so it is made sure that a lot of PHP module
| <small>vips</small> | | | | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
| <small>wddx</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | | |
| <small>xdebug</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
| <small>xlswriter</small> | | | | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
| <small>xlswriter</small> | | | | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | |
| <small>xml</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| <small>xmlreader</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| <small>xmlrpc</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |

View File

@ -95,7 +95,7 @@ services:
# PHP
# ------------------------------------------------------------
php:
image: devilbox/php-fpm:${PHP_SERVER}-work-0.122
image: devilbox/php-fpm:${PHP_SERVER}-work-0.125
hostname: php
##
@ -341,6 +341,7 @@ services:
# Mount devilbox user-defined cnf files in order
# to overwrite the MySQL server configuration
- ${DEVILBOX_PATH}/.devilbox/cfg/mysql.cnf:/etc/mysql/conf.d/devilbox.cnf:ro${MOUNT_OPTIONS}
- ${DEVILBOX_PATH}/cfg/${MYSQL_SERVER}:/etc/mysql/docker-default.d:ro${MOUNT_OPTIONS}
# Mount MySQL Data directory

View File

@ -65,4 +65,4 @@ autobuild:
-p "8000:8000" \
-v $(PWD)/..:/shared/httpd \
devilbox/python-sphinx:3.8-dev \
sphinx-autobuild -a -E -n -j auto -W -H 0.0.0.0 -p 8000 . _build/html
sphinx-autobuild -a -E -n -j auto -W --host 0.0.0.0 --port 8000 . _build/html

View File

@ -21,12 +21,6 @@
awesome-ci <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
</a>
.. |ext_lnk_tool_linuxbrew| raw:: html
<a target="_blank" href="https://linuxbrew.sh">
Linux brew <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
</a>
.. |ext_lnk_tool_codecept| raw:: html
<a target="_blank" href="https://codeception.com/">

View File

@ -163,7 +163,7 @@ html_static_path = ['_static']
def setup(app):
'''Include custom css file'''
app.add_stylesheet('css/devilbox.css')
app.add_css_file('css/devilbox.css')
# If true, “Created using Sphinx” is shown in the HTML footer. Default is True.

View File

@ -21,8 +21,6 @@ The PHP container is your workhorse and these are your tools:
+----------------------+---------------------------------------+
| various binaries | |ext_lnk_tool_awesome_ci| |
+----------------------+---------------------------------------+
| ``brew`` | |ext_lnk_tool_linuxbrew| |
+----------------------+---------------------------------------+
| ``codecept`` | |ext_lnk_tool_codecept| |
+----------------------+---------------------------------------+
| ``composer`` | |ext_lnk_tool_composer| |