mirror of
https://github.com/cytopia/devilbox.git
synced 2025-06-24 18:25:17 +00:00
Compare commits
63 Commits
Author | SHA1 | Date | |
---|---|---|---|
fca58c22c6 | |||
830549a905 | |||
015d66052e | |||
82a1d7c881 | |||
7d346463c7 | |||
ae780388dc | |||
422af8e916 | |||
3d3f716121 | |||
928d5a2475 | |||
9b37e3a307 | |||
682eaf82ee | |||
38b96b7a08 | |||
94bf3c9dcf | |||
9272bfec92 | |||
d57e72bc75 | |||
bbc6a661ed | |||
2ea5ff59e0 | |||
ba6fd1e554 | |||
fe67bdf6bb | |||
4a9c0b6d9f | |||
855d98d895 | |||
01b0ecdf20 | |||
fe9e6264d9 | |||
55bb37c53b | |||
a6894b7793 | |||
0daa62cc02 | |||
38942fa168 | |||
a0246b7a0e | |||
b17f4600f4 | |||
5f465abd61 | |||
61246b5151 | |||
ca90af0fb0 | |||
7bd6b34698 | |||
2677422250 | |||
200000cb5b | |||
8560267fdc | |||
8c13144d3e | |||
2f8fc59dd9 | |||
d9fb88058f | |||
4c15e191a0 | |||
249b132e58 | |||
6e34d3b263 | |||
68bd88d304 | |||
bfb4769e85 | |||
23a6aed10d | |||
0dfd63d7f9 | |||
3804a3b6f3 | |||
9cfc69e5bb | |||
56555e87a5 | |||
5e90a3a35d | |||
54e17f5ec5 | |||
b5d19264de | |||
f6bbdc72fd | |||
2f9ba2e30a | |||
fa0c8f5632 | |||
64330b5b12 | |||
872340e14b | |||
5eb2ee8ca0 | |||
aff86a6b15 | |||
af98125279 | |||
7f294735e7 | |||
a07b3442f1 | |||
01fb99ec1a |
@ -13,8 +13,8 @@ error_reporting(-1);
|
||||
putenv('RES_OPTIONS=retrans:1 retry:1 timeout:1 attempts:1');
|
||||
|
||||
|
||||
$DEVILBOX_VERSION = 'v1.9.1';
|
||||
$DEVILBOX_DATE = '2021-05-19';
|
||||
$DEVILBOX_VERSION = 'v1.10.3';
|
||||
$DEVILBOX_DATE = '2022-02-04';
|
||||
$DEVILBOX_API_PAGE = 'devilbox-api/status.json';
|
||||
|
||||
//
|
||||
@ -127,15 +127,27 @@ function loadClass($class) {
|
||||
break;
|
||||
|
||||
case 'Redis':
|
||||
|
||||
// Check if redis is using a password
|
||||
$REDIS_ROOT_PASSWORD = '';
|
||||
|
||||
$_REDIS_ARGS = loadClass('Helper')->getEnv('REDIS_ARGS');
|
||||
$_REDIS_PASS = preg_split("/--requirepass\s+/", $_REDIS_ARGS);
|
||||
if (is_array($_REDIS_PASS) && count($_REDIS_PASS)) {
|
||||
// In case the option is specified multiple times, use the last effective one.
|
||||
$_REDIS_PASS = $_REDIS_PASS[count($_REDIS_PASS)-1];
|
||||
|
||||
/*
|
||||
* This pattern will match optional quoted string, 'my password' or "my password"
|
||||
* or if there aren't any quotes, it will match up until the next space.
|
||||
*/
|
||||
$_REDIS_PASS = array();
|
||||
preg_match_all('/--requirepass\s+("|\')?(?(1)(.*)|([^\s]*))(?(1)\1|)/', $_REDIS_ARGS, $_REDIS_PASS, PREG_SET_ORDER);
|
||||
|
||||
if (! empty($_REDIS_PASS)) {
|
||||
/*
|
||||
* In case the option is specified multiple times, use the last effective one.
|
||||
*
|
||||
* preg_match_all returns a multi-dimensional array, the first level array is in order of which was matched first,
|
||||
* and the password string is either matched in group 2 or group 3 which is always the end of the sub-array.
|
||||
*/
|
||||
$_REDIS_PASS = end(end($_REDIS_PASS));
|
||||
|
||||
if (strlen($_REDIS_PASS) > 0) {
|
||||
$REDIS_ROOT_PASSWORD = $_REDIS_PASS;
|
||||
}
|
||||
|
22
.devilbox/www/htdocs/assets/js/html-email.js
Normal file
22
.devilbox/www/htdocs/assets/js/html-email.js
Normal file
@ -0,0 +1,22 @@
|
||||
class HtmlEmail extends HTMLElement {
|
||||
constructor() {
|
||||
super();
|
||||
this.attachShadow({ mode: 'open' });
|
||||
|
||||
let emailContent;
|
||||
const templateId = this.dataset.templateId;
|
||||
try {
|
||||
emailContent = document.getElementById(templateId).innerHTML;
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
return;
|
||||
}
|
||||
|
||||
const container = document.createElement('div');
|
||||
container.innerHTML = emailContent;
|
||||
|
||||
this.shadowRoot.appendChild(container);
|
||||
}
|
||||
}
|
||||
|
||||
customElements.define('html-email', HtmlEmail);
|
@ -24,6 +24,17 @@ require $VEN_DIR . DIRECTORY_SEPARATOR . 'Mail' . DIRECTORY_SEPARATOR .'mimeDeco
|
||||
require $LIB_DIR . DIRECTORY_SEPARATOR . 'Mail.php';
|
||||
require $LIB_DIR . DIRECTORY_SEPARATOR . 'Sort.php';
|
||||
|
||||
|
||||
if (isset($_GET['delete']) && is_numeric($_GET['delete'])) {
|
||||
$message = $_GET['delete'];
|
||||
$MyMbox = new \devilbox\Mail('/var/mail/devilbox');
|
||||
$MyMbox->delete($message);
|
||||
header('Location: /mail.php');
|
||||
exit();
|
||||
}
|
||||
|
||||
|
||||
|
||||
//
|
||||
// Setup Sort/Order
|
||||
//
|
||||
@ -152,6 +163,7 @@ $messages = $MyMbox->get($sortOrderArr);
|
||||
<th>From <?php echo $orderFrom;?></th>
|
||||
<th>To <?php echo $orderTo;?></th>
|
||||
<th>Subject <?php echo $orderSubj;?></th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@ -159,6 +171,17 @@ $messages = $MyMbox->get($sortOrderArr);
|
||||
<?php
|
||||
$message = htmlentities($data['raw']);
|
||||
$structure = $data['decoded'];
|
||||
$body = null;
|
||||
|
||||
if (isset($structure->body)) {
|
||||
$body = $structure->body;
|
||||
}
|
||||
elseif(isset($structure->parts[1]->body)) {
|
||||
$body = $structure->parts[1]->body;
|
||||
}
|
||||
elseif(isset($structure->parts[0]->body)) {
|
||||
$body = $structure->parts[0]->body;
|
||||
}
|
||||
?>
|
||||
<tr id="<?php echo $data['num'];?>" class="subject">
|
||||
<td><?php echo $data['num'];?></td>
|
||||
@ -169,21 +192,19 @@ $messages = $MyMbox->get($sortOrderArr);
|
||||
<td><?php echo htmlentities($structure->headers['from']);?></td>
|
||||
<td><?php echo htmlentities($structure->headers['x-original-to']);?></td>
|
||||
<td><?php echo htmlentities($structure->headers['subject']);?></td>
|
||||
<td><a href="/mail.php?delete=<?php echo $data['num']-1;?>" title="Delete Email"><i class="fa fa-trash"></i></a></td>
|
||||
</tr>
|
||||
<tr></tr>
|
||||
<tr id="mail-<?php echo $data['num'];?>" style="display:none">
|
||||
<td></td>
|
||||
<td colspan="4">
|
||||
<?php if (isset($structure->body)): ?>
|
||||
<?php echo htmlentities($structure->body) ?>
|
||||
<?php elseif(isset($structure->parts[1]->body)): ?>
|
||||
<?php echo htmlentities($structure->parts[1]->body) ?>
|
||||
<?php elseif(isset($structure->parts[0]->body)): ?>
|
||||
<?php echo htmlentities($structure->parts[0]->body) ?>
|
||||
<td colspan="5">
|
||||
<?php if ($body !== null): ?>
|
||||
<template id="mail-body-<?=$data['num']?>"><?=$body?></template>
|
||||
<html-email data-template-id="mail-body-<?=$data['num']?>"></html-email>
|
||||
<?php else: ?>
|
||||
<?php echo '<div class="alert alert-warning" role="alert">
|
||||
<div class="alert alert-warning" role="alert">
|
||||
No valid body found
|
||||
</div>' ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<hr>
|
||||
<p><a class="btn btn-primary" data-toggle="collapse" href="#email-<?php echo $data['num'];?>" aria-expanded="false" aria-controls="email-<?php echo $data['num'];?>">Raw source</a></p>
|
||||
@ -205,15 +226,13 @@ $messages = $MyMbox->get($sortOrderArr);
|
||||
<?php echo loadClass('Html')->getFooter(); ?>
|
||||
<script>
|
||||
$(function() {
|
||||
$('.subject').each(function() {
|
||||
$(this).click(function() {
|
||||
var id = ($(this).attr('id'));
|
||||
$('#mail-'+id).toggle();
|
||||
|
||||
})
|
||||
$('.subject').click(function() {
|
||||
var id = ($(this).attr('id'));
|
||||
$('#mail-'+id).toggle();
|
||||
})
|
||||
// Handler for .ready() called.
|
||||
});
|
||||
</script>
|
||||
<script src="/assets/js/html-email.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -58,6 +58,18 @@ class Mail
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Deletes an emails
|
||||
*
|
||||
* Note: messages start with 0.
|
||||
*
|
||||
* @param int $message The number of the message to remove, or array of message ids to remove
|
||||
*/
|
||||
public function delete($message) {
|
||||
$this->_Mbox->remove($message);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Retrieve emails.
|
||||
*
|
||||
|
15
.github/workflows/ci-smoke-linux.yml
vendored
15
.github/workflows/ci-smoke-linux.yml
vendored
@ -44,6 +44,7 @@ jobs:
|
||||
- "7.4"
|
||||
- "8.0"
|
||||
- "8.1"
|
||||
- "8.2"
|
||||
httpd:
|
||||
- "apache-2.2"
|
||||
- "apache-2.4"
|
||||
@ -199,8 +200,20 @@ jobs:
|
||||
- name: "Test Container"
|
||||
shell: bash
|
||||
run: |
|
||||
retry() {
|
||||
for n in $(seq 5); do
|
||||
echo "[${n}/5] ${*}";
|
||||
if eval "${*}"; then
|
||||
echo "[SUCC] ${n}/5";
|
||||
return 0;
|
||||
fi;
|
||||
sleep 5;
|
||||
echo "[FAIL] ${n}/5";
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
cd .tests/
|
||||
make test-smoke-container
|
||||
retry make test-smoke-container
|
||||
if: success() || failure()
|
||||
|
||||
# ------------------------------------------------------------
|
||||
|
15
.github/workflows/test-config.yml
vendored
15
.github/workflows/test-config.yml
vendored
@ -44,6 +44,7 @@ jobs:
|
||||
- "7.4"
|
||||
- "8.0"
|
||||
- "8.1"
|
||||
- "8.2"
|
||||
httpd:
|
||||
- "apache-2.2"
|
||||
- "apache-2.4"
|
||||
@ -213,8 +214,20 @@ jobs:
|
||||
- name: "Test Container"
|
||||
shell: bash
|
||||
run: |
|
||||
retry() {
|
||||
for n in $(seq 5); do
|
||||
echo "[${n}/5] ${*}";
|
||||
if eval "${*}"; then
|
||||
echo "[SUCC] ${n}/t";
|
||||
return 0;
|
||||
fi;
|
||||
sleep 5;
|
||||
echo "[FAIL] ${n}/5";
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
cd .tests/
|
||||
make test-smoke-container
|
||||
retry make test-smoke-container
|
||||
if: success() || failure()
|
||||
|
||||
# ------------------------------------------------------------
|
||||
|
16
.github/workflows/test-versions.yml
vendored
16
.github/workflows/test-versions.yml
vendored
@ -44,6 +44,8 @@ jobs:
|
||||
- "MYSQL_SERVER=mariadb-10.3"
|
||||
- "MYSQL_SERVER=mariadb-10.4"
|
||||
- "MYSQL_SERVER=mariadb-10.5"
|
||||
- "MYSQL_SERVER=mariadb-10.6"
|
||||
- "MYSQL_SERVER=mariadb-10.7"
|
||||
- "MYSQL_SERVER=percona-5.5"
|
||||
- "MYSQL_SERVER=percona-5.6"
|
||||
- "MYSQL_SERVER=percona-5.7"
|
||||
@ -287,8 +289,20 @@ jobs:
|
||||
- name: "Test Container"
|
||||
shell: bash
|
||||
run: |
|
||||
retry() {
|
||||
for n in $(seq 5); do
|
||||
echo "[${n}/5] ${*}";
|
||||
if eval "${*}"; then
|
||||
echo "[SUCC] ${n}/t";
|
||||
return 0;
|
||||
fi;
|
||||
sleep 5;
|
||||
echo "[FAIL] ${n}/5";
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
cd .tests/
|
||||
make test-smoke-container
|
||||
retry make test-smoke-container
|
||||
if: success() || failure()
|
||||
|
||||
# ------------------------------------------------------------
|
||||
|
7
.gitignore
vendored
7
.gitignore
vendored
@ -44,6 +44,7 @@
|
||||
/log/php-fpm-7.4/*
|
||||
/log/php-fpm-8.0/*
|
||||
/log/php-fpm-8.1/*
|
||||
/log/php-fpm-8.2/*
|
||||
!/log/.keepme
|
||||
!/log/*/.keepme
|
||||
|
||||
@ -71,6 +72,8 @@
|
||||
/cfg/mariadb-10.3/*.cnf
|
||||
/cfg/mariadb-10.4/*.cnf
|
||||
/cfg/mariadb-10.5/*.cnf
|
||||
/cfg/mariadb-10.6/*.cnf
|
||||
/cfg/mariadb-10.7/*.cnf
|
||||
/cfg/percona-5.5/*.cnf
|
||||
/cfg/percona-5.6/*.cnf
|
||||
/cfg/percona-5.7/*.cnf
|
||||
@ -89,6 +92,7 @@
|
||||
/cfg/php-ini-7.4/*.ini
|
||||
/cfg/php-ini-8.0/*.ini
|
||||
/cfg/php-ini-8.1/*.ini
|
||||
/cfg/php-ini-8.2/*.ini
|
||||
|
||||
# Ignore custom PHP-FPM configs
|
||||
/cfg/php-fpm-5.2/php-fpm.xml
|
||||
@ -103,6 +107,7 @@
|
||||
/cfg/php-fpm-7.4/*.conf
|
||||
/cfg/php-fpm-8.0/*.conf
|
||||
/cfg/php-fpm-8.1/*.conf
|
||||
/cfg/php-fpm-8.2/*.conf
|
||||
|
||||
# Ignore custom PHP-FPM startup scripts
|
||||
/autostart/*.sh
|
||||
@ -118,6 +123,7 @@
|
||||
/cfg/php-startup-7.4/*.sh
|
||||
/cfg/php-startup-8.0/*.sh
|
||||
/cfg/php-startup-8.1/*.sh
|
||||
/cfg/php-startup-8.2/*.sh
|
||||
|
||||
# Ignorecustom Varnish configs
|
||||
/cfg/varnish-4/*.vcl
|
||||
@ -137,6 +143,7 @@
|
||||
/mod/php-fpm-7.4/*.so
|
||||
/mod/php-fpm-8.0/*.so
|
||||
/mod/php-fpm-8.1/*.so
|
||||
/mod/php-fpm-8.2/*.so
|
||||
|
||||
# Ignore supervisord configs
|
||||
/supervisor/*.conf
|
||||
|
@ -8,7 +8,7 @@ endif
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
update-readme:
|
||||
cat "../README.md" \
|
||||
| perl -00 -pe "s#<!-- modules -->.*<!-- /modules -->#<!-- modules -->\n$$(./scripts/get-modules.sh)\n<!-- /modules -->#s" \
|
||||
| perl -0 -pe "s#<!-- modules -->.*<!-- /modules -->#<!-- modules -->\n$$(./scripts/get-modules.sh)\n<!-- /modules -->#s" \
|
||||
> "../README.md.tmp"
|
||||
yes | mv -f "../README.md.tmp" "../README.md"
|
||||
|
||||
|
@ -169,6 +169,18 @@ if ! PHP81_BASE="$( run "\
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! PHP82_BASE="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '82-base' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 8.2"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
###
|
||||
### Get PHP mods modules (5 rounds)
|
||||
###
|
||||
@ -317,10 +329,22 @@ if ! PHP81_MODS="$( run "\
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! PHP82_MODS="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '82-mods' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 8.2"
|
||||
exit 1
|
||||
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}, ${PHP80_MODS}, ${PHP81_MODS}" | sed 's/,/\n/g' | sed -e 's/^\s*//g' -e 's/\s*$//g' | sort -uf )"
|
||||
MODS="$( echo "${PHP52_MODS}, ${PHP53_MODS}, ${PHP54_MODS}, ${PHP55_MODS}, ${PHP56_MODS}, ${PHP70_MODS}, ${PHP71_MODS}, ${PHP72_MODS}, ${PHP73_MODS}, ${PHP74_MODS}, ${PHP80_MODS}, ${PHP81_MODS}, ${PHP82_MODS}" | sed 's/,/\n/g' | sed -e 's/^\s*//g' -e 's/\s*$//g' | sort -uf )"
|
||||
|
||||
|
||||
###
|
||||
@ -333,11 +357,11 @@ E="🗸" # Enabled mods modules (can be disabled)
|
||||
D="d" # Disabled modules (can be enabled)
|
||||
U=" " # Unavailable
|
||||
|
||||
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 "| 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> | <sup>PHP 8.2</sup> |"
|
||||
echo "|-------------------------------|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|"
|
||||
echo "${MODS}" | while read -r line; do
|
||||
# Print current module
|
||||
printf "| %-30s%s" "<small>${line}</small>" "|"
|
||||
printf "| %-30s%s" "<sup>${line}</sup>" "|"
|
||||
|
||||
# ---------- PHP 5.2 ----------#
|
||||
if echo ",${PHP52_MODS}," | sed 's/,\s/,/g' | grep -Eq ",${line},"; then
|
||||
@ -519,5 +543,20 @@ echo "${MODS}" | while read -r line; do
|
||||
printf " %s |" "${U}" # Not available
|
||||
fi
|
||||
|
||||
# ---------- PHP 8.2 ----------#
|
||||
if echo ",${PHP82_MODS}," | sed 's/,\s/,/g' | grep -Eq ",${line},"; then
|
||||
if echo "${DISABLED}" | grep -Eq ",${line},"; then
|
||||
printf " %s |" "${D}" # Currently disabled
|
||||
else
|
||||
if echo ",${PHP82_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
|
||||
|
@ -13,12 +13,22 @@ DVLBOX_PATH="$( cd "${SCRIPT_PATH}/../.." && pwd -P )"
|
||||
. "${SCRIPT_PATH}/../scripts/.lib.sh"
|
||||
|
||||
RETRIES=10
|
||||
DISABLED_VERSIONS=("5.2" "5.3" "5.4" "5.5" "8.0" "8.1")
|
||||
DISABLED_VERSIONS=("5.2" "5.3" "5.4" "5.5" "8.0" "8.1" "8.2")
|
||||
|
||||
PHP_VERSION="$( get_php_version "${DVLBOX_PATH}" )"
|
||||
|
||||
###
|
||||
### What CakePHP Version?
|
||||
###
|
||||
CAKE_PHP_VERSION=3.8
|
||||
#if [ "${PHP_VERSION}" = "8.0" ] || [ "${PHP_VERSION}" = "8.1" ]; then
|
||||
# CAKE_PHP_VERSION=
|
||||
#fi
|
||||
|
||||
|
||||
echo
|
||||
echo "# --------------------------------------------------------------------------------------------------"
|
||||
echo "# [Framework] CakePHP 3.8.0"
|
||||
echo "# [Framework] CakePHP ${CAKE_PHP_VERSION}"
|
||||
echo "# --------------------------------------------------------------------------------------------------"
|
||||
echo
|
||||
|
||||
@ -27,13 +37,13 @@ echo
|
||||
# Pre-check
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
PHP_VERSION="$( get_php_version "${DVLBOX_PATH}" )"
|
||||
if [[ ${DISABLED_VERSIONS[*]} =~ ${PHP_VERSION} ]]; then
|
||||
printf "[SKIP] Skipping all checks for PHP %s\\n" "${PHP_VERSION}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# ENTRYPOINT
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
@ -50,7 +60,7 @@ create_vhost_dir "${VHOST}"
|
||||
|
||||
|
||||
# Setup CakePHP project
|
||||
run "docker-compose exec --user devilbox -T php bash -c 'cd /shared/httpd/${VHOST}; composer create-project --no-interaction --prefer-dist cakephp/app cakephp 3.8'" "${RETRIES}" "${DVLBOX_PATH}"
|
||||
run "docker-compose exec --user devilbox -T php bash -c 'cd /shared/httpd/${VHOST}; composer create-project --no-interaction --prefer-dist cakephp/app cakephp ${CAKE_PHP_VERSION}'" "${RETRIES}" "${DVLBOX_PATH}"
|
||||
run "docker-compose exec --user devilbox -T php bash -c 'cd /shared/httpd/${VHOST}; ln -sf cakephp/webroot htdocs'" "${RETRIES}" "${DVLBOX_PATH}"
|
||||
run "docker-compose exec --user devilbox -T php mysql -u root -h mysql --password=\"${MYSQL_ROOT_PASSWORD}\" -e \"DROP DATABASE IF EXISTS my_cake; CREATE DATABASE my_cake;\"" "${RETRIES}" "${DVLBOX_PATH}"
|
||||
|
||||
|
@ -13,7 +13,7 @@ DVLBOX_PATH="$( cd "${SCRIPT_PATH}/../.." && pwd -P )"
|
||||
. "${SCRIPT_PATH}/../scripts/.lib.sh"
|
||||
|
||||
RETRIES=10
|
||||
DISABLED_VERSIONS=("5.3" "5.4" "5.5" "5.6" "8.0" "8.1")
|
||||
DISABLED_VERSIONS=("5.3" "5.4" "5.5" "5.6" "8.0" "8.1" "8.2")
|
||||
DISABLED_MYSQL_VERSIONS=("mysql-8.0" "percona-8.0")
|
||||
|
||||
|
||||
|
@ -13,7 +13,7 @@ DVLBOX_PATH="$( cd "${SCRIPT_PATH}/../.." && pwd -P )"
|
||||
. "${SCRIPT_PATH}/../scripts/.lib.sh"
|
||||
|
||||
RETRIES=20
|
||||
DISABLED_VERSIONS=("8.0" "8.1")
|
||||
DISABLED_VERSIONS=("8.0" "8.1" "8.2")
|
||||
|
||||
|
||||
echo
|
||||
|
89
CHANGELOG.md
89
CHANGELOG.md
@ -6,6 +6,95 @@ Make sure to have a look at [UPDATING.md](https://github.com/cytopia/devilbox/bl
|
||||
## Unreleased
|
||||
|
||||
|
||||
## Release v1.10.3 (2022-02-04)
|
||||
|
||||
#### Added
|
||||
- Added PHP 8.2
|
||||
|
||||
#### Changed
|
||||
- Updated PHP-FPM images [#225](https://github.com/devilbox/docker-php-fpm/pull/225)
|
||||
- Updated PHP-FPM images [#226](https://github.com/devilbox/docker-php-fpm/pull/226)
|
||||
|
||||
|
||||
## Release v1.10.2 (2022-02-02)
|
||||
|
||||
#### Fixed
|
||||
- Fixed `nvm` PATH priority [#846](https://github.com/cytopia/devilbox/issues/846)
|
||||
|
||||
#### Added
|
||||
- Added extension `sqlsrv` to php 8.1
|
||||
- Added extension `pdo_sqlsrv` to php 8.1
|
||||
|
||||
#### Changed
|
||||
- Changed postfix hostname to `localhost` instead of GitHub runners long name
|
||||
- Updated PHP-FPM images [#224](https://github.com/devilbox/docker-php-fpm/pull/224)
|
||||
|
||||
|
||||
## Release v1.10.1 (2022-01-30)
|
||||
|
||||
#### Fixed
|
||||
- Fixed evaluation of `MASS_VHOST_SSL_GEN` env var [#830](https://github.com/cytopia/devilbox/issues/830)
|
||||
|
||||
#### Added
|
||||
- Added feature to delete emails from within control center [#754](https://github.com/cytopia/devilbox/issues/754)
|
||||
|
||||
#### Changed
|
||||
- Updated Nginx Stable [#35](https://github.com/devilbox/docker-nginx-stable/pull/35)
|
||||
- Updated Nginx Mainline [#37](https://github.com/devilbox/docker-nginx-mainline/pull/38)
|
||||
- Updated Apache 2.2 [#32](https://github.com/devilbox/docker-apache-2.2/pull/32)
|
||||
- Updated Apache 2.4 [#34](https://github.com/devilbox/docker-apache-2.4/pull/34)
|
||||
|
||||
|
||||
## Release v1.10.0 (2022-01-28)
|
||||
|
||||
#### Fixed
|
||||
- Fixed mail.php to correctly show UTF chars in Body [#850](https://github.com/cytopia/devilbox/issues/850)
|
||||
- Fixed desc in env-example [#807](https://github.com/cytopia/devilbox/issues/807)
|
||||
|
||||
#### Added
|
||||
- Added binary `sqlite3` to all PHP images [#856](https://github.com/cytopia/devilbox/issues/856)
|
||||
- Added binary `laravel` to PHP 8.0 and PHP 8.1 [#823](https://github.com/cytopia/devilbox/issues/823)
|
||||
- Added AVIF support in GD for PHP 8.1 [#834](https://github.com/cytopia/devilbox/issues/834)
|
||||
- Added extension `amqp` to PHP 8.0 and PHP 8.1 [#826](https://github.com/cytopia/devilbox/issues/826)
|
||||
- Added extension `uploadprogress` to PHP 8.0 and PHP 8.1 [#158](https://github.com/devilbox/docker-php-fpm/pull/158)
|
||||
- Added extension `imagick` to PHP 8.0 and PHP 8.1
|
||||
- Added extension `rdkafka` to PHP 8.0 and PHP 8.1
|
||||
- Added extension `xlswriter` to PHP 8.1
|
||||
- Added extension `pdo_dblib` to PHP 8.1
|
||||
- Added extension `uuid` to all PHP versions (except 5.2)
|
||||
- Added MySQL image: MariaDB 10.6
|
||||
- Added MySQL image: MariaDB 10.7
|
||||
|
||||
#### Changed
|
||||
- Updated `php-cs-fixer` to latest version [#219](https://github.com/devilbox/docker-php-fpm/pull/219)
|
||||
- Updated Nginx Stable [#33](https://github.com/devilbox/docker-nginx-stable/pull/33)
|
||||
- Updated Nginx Stable [#34](https://github.com/devilbox/docker-nginx-stable/pull/34)
|
||||
- Updated Nginx Mainline [#36](https://github.com/devilbox/docker-nginx-mainline/pull/36)
|
||||
- Updated Nginx Mainline [#37](https://github.com/devilbox/docker-nginx-mainline/pull/37)
|
||||
- Updated Apache 2.2 [#30](https://github.com/devilbox/docker-apache-2.2/pull/30)
|
||||
- Updated Apache 2.2 [#31](https://github.com/devilbox/docker-apache-2.2/pull/31)
|
||||
- Updated Apache 2.4 [#32](https://github.com/devilbox/docker-apache-2.4/pull/32)
|
||||
- Updated Apache 2.4 [#33](https://github.com/devilbox/docker-apache-2.4/pull/33)
|
||||
|
||||
|
||||
## Release v1.9.3 (2022-01-24)
|
||||
|
||||
#### Fixed
|
||||
- Updated PHP Docker Images: [#221](https://github.com/devilbox/docker-php-fpm/pull/221)
|
||||
- Updated PHP Docker Images: [#222](https://github.com/devilbox/docker-php-fpm/pull/222)
|
||||
- Update MySQL Docker Images: [#10](https://github.com/devilbox/docker-mysql/pull/10)
|
||||
- Fixed documentation build issues
|
||||
- Fixed intranet PHP code to work with legacy versions
|
||||
|
||||
|
||||
## Release v1.9.2 (2021-06-04)
|
||||
|
||||
#### Added
|
||||
- Added Homebrew for all PHP images
|
||||
- Added `pdo_sqlsrv` PHP extension for 7.4 and 8.0
|
||||
- Xdebug 3.0 documentation
|
||||
|
||||
|
||||
## Release v1.9.1 (2021-05-19)
|
||||
|
||||
#### Added
|
||||
|
237
README.md
237
README.md
@ -313,7 +313,7 @@ Every single attachable container comes with many different versions. In order t
|
||||
<td></td>
|
||||
<td><a target="_blank" title="PHP 7.2" href="https://github.com/devilbox/docker-php-fpm">7.2</a></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td><a target="_blank" title="MariaDB 10.6" href="https://github.com/devilbox/docker-mysql">10.6</a></td>
|
||||
<td></td>
|
||||
<td>...</td>
|
||||
<td></td>
|
||||
@ -325,7 +325,7 @@ Every single attachable container comes with many different versions. In order t
|
||||
<td></td>
|
||||
<td><a target="_blank" title="PHP 7.3" href="https://github.com/devilbox/docker-php-fpm">7.3</a></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td><a target="_blank" title="MariaDB 10.7" href="https://github.com/devilbox/docker-mysql">10.7</a></td>
|
||||
<td></td>
|
||||
<td><a target="_blank" title="PgSQL 12.3" href="https://github.com/docker-library/postgres">12.3</a></td>
|
||||
<td></td>
|
||||
@ -347,7 +347,7 @@ Every single attachable container comes with many different versions. In order t
|
||||
<tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td><a target="_blank" title="PHP 8.0" href="https://github.com/devilbox/docker-php-fpm">8.0</a><sup>[2]</sup></td>
|
||||
<td><a target="_blank" title="PHP 8.0" href="https://github.com/devilbox/docker-php-fpm">8.0</a></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
@ -359,7 +359,7 @@ Every single attachable container comes with many different versions. In order t
|
||||
<tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td><a target="_blank" title="PHP 8.1" href="https://github.com/devilbox/docker-php-fpm">8.1</a><sup>[2]</sup></td>
|
||||
<td><a target="_blank" title="PHP 8.1" href="https://github.com/devilbox/docker-php-fpm">8.1</a></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
@ -368,12 +368,24 @@ Every single attachable container comes with many different versions. In order t
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td><a target="_blank" title="PHP 8.2" href="https://github.com/devilbox/docker-php-fpm">8.2</a></a><sup>[2]</sup></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<small><strong><sup>[1]</sup></strong> <strong>PHP 5.2</strong> 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.</small>
|
||||
|
||||
<small><strong><sup>[2]</sup></strong> <strong>PHP 8.0 / PHP 8.1</strong> 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.</small>
|
||||
<small><strong><sup>[2]</sup></strong> <strong>PHP 8.2</strong> is an upcoming unreleased versions of PHP, which is directly built out of their [official git branches](https://github.com/php/php-src/) every night to assure you will leverage their latest features.</small>
|
||||
|
||||
> **Documentation:**
|
||||
> [Change container versions](https://devilbox.readthedocs.io/en/latest/getting-started/change-container-versions.html)
|
||||
@ -630,8 +642,8 @@ The following tools will assist you on creating new projects easily as well as h
|
||||
<td><code>linkcheck</code> is a command line tool that searches for URLs in files (optionally limited by extension) and validates their HTTP status code.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>:wrench: <a href="https://linuxbrew.sh/">linuxbrew</a></td>
|
||||
<td><code>brew</code> is a MacOS Homenbrew clone for Linux.</td>
|
||||
<td>:wrench: <a href="https://brew.sh/">homebrew</a></td>
|
||||
<td><code>brew</code> is a MacOS Homenbrew for Linux.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>:wrench: <a href="https://github.com/DavidAnson/markdownlint">markdownlint</a></td>
|
||||
@ -719,111 +731,112 @@ 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 | <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> | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>bcmath</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>blackfire</small> | | | | | d | d | d | d | d | d | d | |
|
||||
| <small>bz2</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>calendar</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>Core</small> | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>ctype</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>curl</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>date</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>dba</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>dom</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>enchant</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>ereg</small> | | ✔ | ✔ | ✔ | ✔ | | | | | | | |
|
||||
| <small>exif</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>FFI</small> | | | | | | | | | | 🗸 | ✔ | ✔ |
|
||||
| <small>fileinfo</small> | 🗸 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>filter</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>ftp</small> | 🗸 | 🗸 | 🗸 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>gd</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>gettext</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>gmp</small> | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>hash</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>iconv</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>igbinary</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>imagick</small> | | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
|
||||
| <small>imap</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>interbase</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | | |
|
||||
| <small>intl</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>ioncube</small> | d | d | d | d | d | d | d | d | d | d | | |
|
||||
| <small>json</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>ldap</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>libxml</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>mbstring</small> | ✔ | 🗸 | 🗸 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>mcrypt</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>memcache</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>memcached</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>mhash</small> | | | | | ✔ | | | | | | | |
|
||||
| <small>mongo</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | | | | | | |
|
||||
| <small>mongodb</small> | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>msgpack</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>mysql</small> | ✔ | ✔ | 🗸 | 🗸 | 🗸 | | | | | | | |
|
||||
| <small>mysqli</small> | ✔ | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>mysqlnd</small> | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>OAuth</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>oci8</small> | | d | d | d | d | d | d | d | d | d | d | d |
|
||||
| <small>openssl</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>pcntl</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>pcre</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>PDO</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>pdo_dblib</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | |
|
||||
| <small>PDO_Firebird</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>pdo_mysql</small> | ✔ | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>PDO_OCI</small> | | | | | | d | d | d | d | d | d | d |
|
||||
| <small>pdo_pgsql</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>pdo_sqlite</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>pdo_sqlsrv</small> | | | | | | d | d | d | d | | | |
|
||||
| <small>pgsql</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> | | | 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> | 🗸 | ✔ | ✔ | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | | |
|
||||
| <small>redis</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>Reflection</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>session</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>shmop</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>SimpleXML</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>snmp</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>soap</small> | ✔ | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>sockets</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>sodium</small> | | | | | | | | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>solr</small> | | | | | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>SPL</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>SQLite</small> | ✔ | ✔ | | | | | | | | | | |
|
||||
| <small>sqlite3</small> | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>sqlsrv</small> | | | | | | d | d | d | d | d | | |
|
||||
| <small>ssh2</small> | | | | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
|
||||
| <small>standard</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>swoole</small> | | d | d | d | d | d | d | d | d | d | | |
|
||||
| <small>sysvmsg</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>sysvsem</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>sysvshm</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>tidy</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>tokenizer</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>uploadprogress</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
|
||||
| <small>vips</small> | | | | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
|
||||
| <small>wddx</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | | |
|
||||
| <small>xdebug</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>xlswriter</small> | | | | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | |
|
||||
| <small>xml</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>xmlreader</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>xmlrpc</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
|
||||
| <small>xmlwriter</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <small>xsl</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>yaml</small> | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>Zend OPcache</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>zip</small> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <small>zlib</small> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| 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> | <sup>PHP 8.2</sup> |
|
||||
|-------------------------------|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|
|
||||
| <sup>amqp</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>apc</sup> | | 🗸 | 🗸 | 🗸 | 🗸 | | | | | | | | |
|
||||
| <sup>apcu</sup> | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>bcmath</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>blackfire</sup> | | | | | d | d | d | d | d | d | d | | |
|
||||
| <sup>bz2</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>calendar</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>Core</sup> | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>ctype</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>curl</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>date</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>dba</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>dom</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>enchant</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>ereg</sup> | | ✔ | ✔ | ✔ | ✔ | | | | | | | | |
|
||||
| <sup>exif</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>FFI</sup> | | | | | | | | | | 🗸 | ✔ | ✔ | ✔ |
|
||||
| <sup>fileinfo</sup> | 🗸 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>filter</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>ftp</sup> | 🗸 | 🗸 | 🗸 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>gd</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>gettext</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>gmp</sup> | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>hash</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>iconv</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>igbinary</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>imagick</sup> | | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>imap</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>interbase</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | | | |
|
||||
| <sup>intl</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>ioncube</sup> | d | d | d | d | d | d | d | d | d | d | | | |
|
||||
| <sup>json</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>ldap</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>libxml</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>mbstring</sup> | ✔ | 🗸 | 🗸 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>mcrypt</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
|
||||
| <sup>memcache</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>memcached</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>mhash</sup> | | | | | ✔ | | | | | | | | |
|
||||
| <sup>mongo</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | | | | | | | |
|
||||
| <sup>mongodb</sup> | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>msgpack</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>mysql</sup> | ✔ | ✔ | 🗸 | 🗸 | 🗸 | | | | | | | | |
|
||||
| <sup>mysqli</sup> | ✔ | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>mysqlnd</sup> | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>OAuth</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>oci8</sup> | | d | d | d | d | d | d | d | d | d | d | d | d |
|
||||
| <sup>openssl</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>pcntl</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>pcre</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>PDO</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>pdo_dblib</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>PDO_Firebird</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>pdo_mysql</sup> | ✔ | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>PDO_OCI</sup> | | | | | | d | d | d | d | d | d | d | d |
|
||||
| <sup>pdo_pgsql</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>pdo_sqlite</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>pdo_sqlsrv</sup> | | | | | | d | d | d | d | d | d | d | d |
|
||||
| <sup>pgsql</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>phalcon</sup> | | d | d | d | d | d | d | d | d | d | | | |
|
||||
| <sup>Phar</sup> | 🗸 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>posix</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>pspell</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>psr</sup> | | | d | d | d | d | d | d | d | d | d | d | d |
|
||||
| <sup>rdkafka</sup> | | d | d | d | d | d | d | d | d | d | d | d | d |
|
||||
| <sup>readline</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>recode</sup> | 🗸 | ✔ | ✔ | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | | | |
|
||||
| <sup>redis</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>Reflection</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>session</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>shmop</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>SimpleXML</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>snmp</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>soap</sup> | ✔ | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>sockets</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>sodium</sup> | | | | | | | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>solr</sup> | | | | | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | |
|
||||
| <sup>SPL</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>SQLite</sup> | ✔ | ✔ | | | | | | | | | | | |
|
||||
| <sup>sqlite3</sup> | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>sqlsrv</sup> | | | | | | d | d | d | d | d | d | d | d |
|
||||
| <sup>ssh2</sup> | | | | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | | |
|
||||
| <sup>standard</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>swoole</sup> | | d | d | d | d | d | d | d | d | d | d | | |
|
||||
| <sup>sysvmsg</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>sysvsem</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>sysvshm</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>tidy</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>tokenizer</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>uploadprogress</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>uuid</sup> | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>vips</sup> | | | | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | | |
|
||||
| <sup>wddx</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | | | |
|
||||
| <sup>xdebug</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>xlswriter</sup> | | | | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>xml</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>xmlreader</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>xmlrpc</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | | |
|
||||
| <sup>xmlwriter</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>xsl</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>yaml</sup> | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>Zend OPcache</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>zip</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>zlib</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
<!-- /modules -->
|
||||
|
||||
> * Core enabled (cannot be disabled): **✔**
|
||||
|
0
cfg/mariadb-10.6/.keepme
Normal file
0
cfg/mariadb-10.6/.keepme
Normal file
5
cfg/mariadb-10.6/devilbox-custom.cnf-example
Normal file
5
cfg/mariadb-10.6/devilbox-custom.cnf-example
Normal file
@ -0,0 +1,5 @@
|
||||
[mysqld]
|
||||
;key_buffer_size=16M
|
||||
|
||||
[mysqldump]
|
||||
;quick
|
0
cfg/mariadb-10.7/.keepme
Normal file
0
cfg/mariadb-10.7/.keepme
Normal file
5
cfg/mariadb-10.7/devilbox-custom.cnf-example
Normal file
5
cfg/mariadb-10.7/devilbox-custom.cnf-example
Normal file
@ -0,0 +1,5 @@
|
||||
[mysqld]
|
||||
;key_buffer_size=16M
|
||||
|
||||
[mysqldump]
|
||||
;quick
|
0
cfg/php-fpm-8.2/.keepme
Normal file
0
cfg/php-fpm-8.2/.keepme
Normal file
54
cfg/php-fpm-8.2/README.md
Normal file
54
cfg/php-fpm-8.2/README.md
Normal file
@ -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.
|
80
cfg/php-fpm-8.2/devilbox-fpm.conf-default
Normal file
80
cfg/php-fpm-8.2/devilbox-fpm.conf-default
Normal file
@ -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:
|
46
cfg/php-fpm-8.2/devilbox-fpm.conf-pm_dynamic
Normal file
46
cfg/php-fpm-8.2/devilbox-fpm.conf-pm_dynamic
Normal file
@ -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:
|
39
cfg/php-fpm-8.2/devilbox-fpm.conf-pm_ondemand
Normal file
39
cfg/php-fpm-8.2/devilbox-fpm.conf-pm_ondemand
Normal file
@ -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:
|
0
cfg/php-ini-8.2/.keepme
Normal file
0
cfg/php-ini-8.2/.keepme
Normal file
26
cfg/php-ini-8.2/README.md
Normal file
26
cfg/php-ini-8.2/README.md
Normal file
@ -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.
|
63
cfg/php-ini-8.2/devilbox-php.ini-default
Normal file
63
cfg/php-ini-8.2/devilbox-php.ini-default
Normal file
@ -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:
|
35
cfg/php-ini-8.2/devilbox-php.ini-xdebug
Normal file
35
cfg/php-ini-8.2/devilbox-php.ini-xdebug
Normal file
@ -0,0 +1,35 @@
|
||||
; ############################################################
|
||||
; # 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
|
||||
; https://3.xdebug.org/docs/upgrade_guide
|
||||
; 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.mode = debug
|
||||
xdebug.start_with_request = yes
|
||||
xdebug.remote_handler = dbgp
|
||||
xdebug.remote_port = 9000
|
||||
xdebug.idekey = PHPSTORM
|
||||
xdebug.remote_log = /var/log/php/xdebug.log
|
||||
|
||||
; vim: set ft=dosini:
|
0
cfg/php-startup-8.2/.keepme
Normal file
0
cfg/php-startup-8.2/.keepme
Normal file
6
cfg/php-startup-8.2/01-update-apt-index.sh-example
Executable file
6
cfg/php-startup-8.2/01-update-apt-index.sh-example
Executable file
@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Simple example showing how to update the packet index
|
||||
#
|
||||
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -q
|
29
cfg/php-startup-8.2/README.md
Normal file
29
cfg/php-startup-8.2/README.md
Normal file
@ -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.
|
@ -95,7 +95,7 @@ services:
|
||||
# PHP
|
||||
# ------------------------------------------------------------
|
||||
php:
|
||||
image: devilbox/php-fpm:${PHP_SERVER}-work-0.125
|
||||
image: devilbox/php-fpm:${PHP_SERVER}-work-0.134
|
||||
hostname: php
|
||||
|
||||
##
|
||||
@ -221,7 +221,7 @@ services:
|
||||
# Web Server
|
||||
# ------------------------------------------------------------
|
||||
httpd:
|
||||
image: devilbox/${HTTPD_SERVER}:0.36
|
||||
image: devilbox/${HTTPD_SERVER}:0.39
|
||||
hostname: httpd
|
||||
|
||||
environment:
|
||||
@ -320,7 +320,7 @@ services:
|
||||
# MySQL Database
|
||||
# ------------------------------------------------------------
|
||||
mysql:
|
||||
image: devilbox/mysql:${MYSQL_SERVER}-0.7
|
||||
image: devilbox/mysql:${MYSQL_SERVER}-0.8
|
||||
hostname: mysql
|
||||
|
||||
environment:
|
||||
@ -501,6 +501,8 @@ volumes:
|
||||
devilbox-mariadb-10.3:
|
||||
devilbox-mariadb-10.4:
|
||||
devilbox-mariadb-10.5:
|
||||
devilbox-mariadb-10.6:
|
||||
devilbox-mariadb-10.7:
|
||||
devilbox-percona-5.5:
|
||||
devilbox-percona-5.6:
|
||||
devilbox-percona-5.7:
|
||||
|
@ -28,7 +28,7 @@ linkcheck2:
|
||||
--rm \
|
||||
$$(tty -s && echo "-it" || echo) \
|
||||
-v $(PWD):/data \
|
||||
cytopia/linkcheck -l -k -r 60 -t 30 -e rst -c '200,204' _includes/
|
||||
cytopia/linkcheck -l -k -r 60 -t 30 -e rst -c '200,204,403' _includes/
|
||||
|
||||
linkcheck:
|
||||
docker run \
|
||||
|
@ -6,13 +6,13 @@
|
||||
|
||||
.. |ext_lnk_doc_bind_ttl| raw:: html
|
||||
|
||||
<a target="_blank" href="http://www.zytrax.com/books/dns/apa/ttl.html">
|
||||
<a target="_blank" href="https://bind9.readthedocs.io/en/latest/reference.html?highlight=ttl#the-ttl-directive">
|
||||
BIND TTL <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
|
||||
</a>
|
||||
|
||||
.. |ext_lnk_doc_bind_soa| raw:: html
|
||||
|
||||
<a target="_blank" href="http://www.zytrax.com/books/dns/ch8/soa.html">
|
||||
<a target="_blank" href="https://bind9.readthedocs.io/en/latest/introduction.html?highlight=soa#secondary-servers">
|
||||
BIND SOA <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
|
||||
</a>
|
||||
|
||||
|
@ -72,13 +72,13 @@
|
||||
|
||||
.. |ext_lnk_example_phalcon_documentation| raw:: html
|
||||
|
||||
<a target="_blank" href="https://docs.phalconphp.com/latest/en/devtools-usage">
|
||||
<a target="_blank" href="https://docs.phalcon.io/4.0/en/environments-devilbox">
|
||||
Official Phalcon Documentation <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
|
||||
</a>
|
||||
|
||||
.. |ext_lnk_example_photon_cms| raw:: html
|
||||
|
||||
<a target="_blank" href="https://photoncms.com/resources/installing">
|
||||
<a target="_blank" href="https://docs.photoncms.com/">
|
||||
Official Photon CMS Documentation <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
|
||||
</a>
|
||||
|
||||
|
@ -21,6 +21,12 @@
|
||||
awesome-ci <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
|
||||
</a>
|
||||
|
||||
.. |ext_lnk_tool_homebrew| raw:: html
|
||||
|
||||
<a target="_blank" href="https://brew.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/">
|
||||
@ -203,7 +209,7 @@
|
||||
|
||||
.. |ext_lnk_tool_photon| raw:: html
|
||||
|
||||
<a target="_blank" href="https://photoncms.com/resources/installing">
|
||||
<a target="_blank" href="https://docs.photoncms.com/">
|
||||
Photon CMS cli <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
|
||||
</a>
|
||||
|
||||
|
@ -128,7 +128,7 @@ Now save the file and you can start the Devilbox again.
|
||||
# Navigate to the Devilbox directory
|
||||
host> cd path/to/devilbox
|
||||
|
||||
# Stop all container
|
||||
# Start all container
|
||||
host> docker-compose up php httpd bind
|
||||
|
||||
.. seealso:: :ref:`start_the_devilbox`
|
||||
@ -193,7 +193,7 @@ Now save the file and you can start the Devilbox again.
|
||||
# Navigate to the Devilbox directory
|
||||
host> cd path/to/devilbox
|
||||
|
||||
# Stop all container
|
||||
# Start all container
|
||||
host> docker-compose up php httpd bind
|
||||
|
||||
.. seealso:: :ref:`start_the_devilbox`
|
||||
|
@ -148,7 +148,7 @@ Ensure to read the links below to understand why this problem exists and how the
|
||||
The Docker documentation will also give you alternative caching options to consider.
|
||||
|
||||
.. seealso::
|
||||
* https://github.com/cytopia/devilbox/issues/105#issuecomment-426229921
|
||||
* https://github.com/cytopia/devilbox/issues/105
|
||||
* https://forums.docker.com/t/file-access-in-mounted-volumes-extremely-slow-cpu-bound/8076/281
|
||||
* https://docs.docker.com/docker-for-mac/osxfs/
|
||||
* :ref:`env_mount_options`
|
||||
|
@ -47,7 +47,7 @@ When using Docker for Windows you can use ``127.0.0.1`` for the IP address.
|
||||
127.0.0.1 project-1.loc
|
||||
127.0.0.1 www.project-1.loc
|
||||
|
||||
3. Safe the file and verify the DNS entries with the ``ping`` command
|
||||
3. Save the file and verify the DNS entries with the ``ping`` command
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
|
@ -121,6 +121,23 @@ Copy/paste all of the following lines into the above created ``xdebug.ini`` file
|
||||
; Optional: Set to true to always auto-start xdebug
|
||||
xdebug.remote_autostart=false
|
||||
|
||||
`Xdebug 3.0 changes <https://xdebug.org/docs/upgrade_guide>`_:
|
||||
.. code-block:: ini
|
||||
:caption: xdebug.ini
|
||||
|
||||
; Defaults
|
||||
xdebug.mode=debug
|
||||
xdegub.client_port=9000
|
||||
|
||||
; The Linux Way
|
||||
xdebug.discover_client_host=1
|
||||
|
||||
; idekey value is specific to Atom
|
||||
xdebug.session=xdebug.atom
|
||||
|
||||
; Optional: Set to true to always auto-start xdebug
|
||||
xdebug.start_with_request=Yes
|
||||
|
||||
.. note:: Host os and editor specific settings are highlighted in yellow and are worth googling to get a better understanding of the tools you use and to be more efficient at troubleshooting.
|
||||
|
||||
|
||||
|
@ -53,7 +53,7 @@ Then you need to ensure that :ref:`env_host_port_bind` is set to ``53``.
|
||||
host> vi .env
|
||||
HOST_PORT_BIND=53
|
||||
|
||||
Before starting up the Devilbox, ensure that port ``53`` is not already used on ``127.0.0.1``.
|
||||
Before starting up the Devilbox, ensure that port ``53`` is not already used.
|
||||
|
||||
.. code-block:: bash
|
||||
:emphasize-lines: 2
|
||||
|
@ -21,6 +21,8 @@ The PHP container is your workhorse and these are your tools:
|
||||
+----------------------+---------------------------------------+
|
||||
| various binaries | |ext_lnk_tool_awesome_ci| |
|
||||
+----------------------+---------------------------------------+
|
||||
| ``brew`` | |ext_lnk_tool_homebrew| |
|
||||
+----------------------+---------------------------------------+
|
||||
| ``codecept`` | |ext_lnk_tool_codecept| |
|
||||
+----------------------+---------------------------------------+
|
||||
| ``composer`` | |ext_lnk_tool_composer| |
|
||||
|
@ -135,7 +135,7 @@ have to get support from the docker/for-mac GitHub repository or forum.
|
||||
|
||||
.. seealso::
|
||||
* https://github.com/cytopia/devilbox/issues/539
|
||||
* https://github.com/docker/for-mac/issues/371#issuecomment-242047368
|
||||
* https://github.com/docker/for-mac/issues/371
|
||||
* https://forums.docker.com/t/no-space-left-on-device-error/10894
|
||||
|
||||
|
||||
|
@ -86,7 +86,7 @@ LOCAL_LISTEN_ADDR=
|
||||
### with mass-virtual-hosting.
|
||||
### It is also required for the internal DNS server to be setup.
|
||||
###
|
||||
### Note: Only ALPHA ([a-zA-Z]+) characters are supported.
|
||||
### Note: In addition to period or dot character ('.'), only ALPHA ([a-zA-Z]+) characters are supported.
|
||||
###
|
||||
### Example:
|
||||
### TLD_SUFFIX=loc
|
||||
@ -267,6 +267,7 @@ DEVILBOX_VENDOR_PHPPGADMIN_AUTOLOGIN=1
|
||||
PHP_SERVER=7.4
|
||||
#PHP_SERVER=8.0
|
||||
#PHP_SERVER=8.1
|
||||
#PHP_SERVER=8.2
|
||||
|
||||
|
||||
###
|
||||
@ -292,6 +293,8 @@ HTTPD_SERVER=nginx-stable
|
||||
#MYSQL_SERVER=mariadb-10.3
|
||||
#MYSQL_SERVER=mariadb-10.4
|
||||
MYSQL_SERVER=mariadb-10.5
|
||||
#MYSQL_SERVER=mariadb-10.6
|
||||
#MYSQL_SERVER=mariadb-10.7
|
||||
#MYSQL_SERVER=percona-5.5
|
||||
#MYSQL_SERVER=percona-5.6
|
||||
#MYSQL_SERVER=percona-5.7
|
||||
|
0
log/mariadb-10.0/.keepme
Normal file
0
log/mariadb-10.0/.keepme
Normal file
0
log/mariadb-10.1/.keepme
Normal file
0
log/mariadb-10.1/.keepme
Normal file
0
log/mariadb-10.2/.keepme
Normal file
0
log/mariadb-10.2/.keepme
Normal file
0
log/mariadb-10.4/.keepme
Normal file
0
log/mariadb-10.4/.keepme
Normal file
0
log/mariadb-10.5/.keepme
Normal file
0
log/mariadb-10.5/.keepme
Normal file
0
log/mariadb-10.6/.keepme
Normal file
0
log/mariadb-10.6/.keepme
Normal file
0
log/mariadb-10.7/.keepme
Normal file
0
log/mariadb-10.7/.keepme
Normal file
0
log/mariadb-5.5/.keepme
Normal file
0
log/mariadb-5.5/.keepme
Normal file
0
log/php-fpm-8.2/.keepme
Normal file
0
log/php-fpm-8.2/.keepme
Normal file
0
mod/php-fpm-8.2/.keepme
Normal file
0
mod/php-fpm-8.2/.keepme
Normal file
Reference in New Issue
Block a user