Skip to content

Commit

Permalink
Add a way to skip checking if extensions work (mlocati#915)
Browse files Browse the repository at this point in the history
  • Loading branch information
mlocati authored Apr 22, 2024
1 parent fabb509 commit 7413b1f
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 8 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -410,6 +410,7 @@ Here's the list of all the supported environment variables:
| | `IPE_DEBUG=1` | By setting this environment variable, the script will print all the commands it executes (it will be very verbose, useful only for debug purposes) |
| | `IPE_PROCESSOR_COUNT` | By default all available processors. Set this environment variable to override the number of processors detected by the script (used for parallel compilation) |
| | `IPE_DONT_ENABLE=1` | By default the script will install and enable the extensions.<br />If you want to only install them (without enabling them) you can set this environment variable.<br />To enable the extensions at a later time you can execute the command `docker-php-ext-enable-<extension>` (for example: `docker-php-ext-enable-xdebug`).<br />**Beware**: installing some PHP extensions requires that other PHP extensions are already enabled, so use this feature wisely. |
| | `IPE_SKIP_CHECK=1` | By default the script will check if the extensions can be enabled: if you want to skip this check, you can use this flag.<br />**Beware**: extensions may be enabled even if they break PHP: use this function wisely. |
| | `IPE_KEEP_SYSPKG_CACHE=1` | By default the script will clear the apt/apk/pear cache in order to save disk space. You can disable it by setting this environment variable |
| lzf | `IPE_LZF_BETTERCOMPRESSION=1` | By default `install-php-extensions` compiles the `lzf` extension to prefer speed over size; you can use this environment variable to compile it preferring size over speed |
| event | `IPE_EVENT_NAMESPACE=`... | By default, the `event` classes are defined in the root namespace. You can use this environment variable to specify a custom namespace |
Expand Down
26 changes: 18 additions & 8 deletions install-php-extensions
Original file line number Diff line number Diff line change
Expand Up @@ -2640,13 +2640,18 @@ EOF
esac
;;
esac
php -r 'return;' >/dev/null 2>/dev/null || true
installBundledModule_errAfter="$(php -r 'return;' 2>&1 || true)"
if test "$installBundledModule_errAfter" != "$installBundledModule_errBefore"; then
printf 'PHP has problems after installing the "%s" extension:\n%s\n' "$1" "$installBundledModule_errAfter" >&2
rm "$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" || true
return 1
fi
case "${IPE_SKIP_CHECK:-}" in
1 | y* | Y*) ;;
*)
php -r 'return;' >/dev/null 2>/dev/null || true
installBundledModule_errAfter="$(php -r 'return;' 2>&1 || true)"
if test "$installBundledModule_errAfter" != "$installBundledModule_errBefore"; then
printf 'PHP has problems after installing the "%s" extension:\n%s\n' "$1" "$installBundledModule_errAfter" >&2
rm "$PHP_INI_DIR/conf.d/docker-php-ext-$1.ini" || true
return 1
fi
;;
esac
}

# Fetch a tar.gz file, extract it and returns the path of the extracted folder.
Expand Down Expand Up @@ -4229,7 +4234,12 @@ installRemoteModule() {
fi
postProcessModule "$installRemoteModule_module"
if test $installRemoteModule_manuallyInstalled -lt 2; then
checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra"
case "${IPE_SKIP_CHECK:-}" in
1 | y* | Y*) ;;
*)
checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra"
;;
esac
enablePhpExtension "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra"
fi
}
Expand Down

0 comments on commit 7413b1f

Please sign in to comment.