Allow to call setup.php outside to test PHP version and extensions #1209

This commit is contained in:
the-djmaze 2023-08-28 14:43:53 +02:00
parent 120873c7d6
commit 44c4514622

View file

@ -1,59 +1,59 @@
<?php <?php
if (defined('APP_VERSION')) { if (PHP_VERSION_ID < 70400) {
if (PHP_VERSION_ID < 70400) { echo '<p style="color: red">';
echo '<p style="color: red">'; echo '[301] Your PHP version ('.PHP_VERSION.') is lower than the minimal required 7.4.0!';
echo '[301] Your PHP version ('.PHP_VERSION.') is lower than the minimal required 7.4.0!'; echo '</p>';
echo '</p>'; exit(301);
exit(301); }
}
$aOptional = array( $aOptional = array(
'cURL' => extension_loaded('curl'), 'cURL' => extension_loaded('curl'),
'exif' => extension_loaded('exif'), 'exif' => extension_loaded('exif'),
'finfo' => class_exists('finfo'), 'finfo' => class_exists('finfo'),
'gd' => extension_loaded('gd'), 'gd' => extension_loaded('gd'),
'gnupg' => extension_loaded('gnupg'), 'gnupg' => extension_loaded('gnupg'),
'gmagick' => extension_loaded('gmagick'), 'gmagick' => extension_loaded('gmagick'),
'imagick' => extension_loaded('imagick'), 'imagick' => extension_loaded('imagick'),
'iconv' => function_exists('iconv'), 'iconv' => function_exists('iconv'),
'intl' => function_exists('idn_to_ascii'), 'intl' => function_exists('idn_to_ascii'),
'ldap' => extension_loaded('ldap'), 'ldap' => extension_loaded('ldap'),
'OpenSSL' => extension_loaded('openssl'), 'OpenSSL' => extension_loaded('openssl'),
'mysql' => extension_loaded('pdo_mysql'), 'mysql' => extension_loaded('pdo_mysql'),
'pgsql' => extension_loaded('pdo_pgsql'), 'pgsql' => extension_loaded('pdo_pgsql'),
'redis' => extension_loaded('redis'), 'redis' => extension_loaded('redis'),
'Sodium' => extension_loaded('sodium'), 'Sodium' => extension_loaded('sodium'),
'sqlite' => extension_loaded('pdo_sqlite'), 'sqlite' => extension_loaded('pdo_sqlite'),
'tidy' => extension_loaded('tidy'), 'tidy' => extension_loaded('tidy'),
'uuid' => extension_loaded('uuid'), 'uuid' => extension_loaded('uuid'),
'xxtea' => extension_loaded('xxtea'), 'xxtea' => extension_loaded('xxtea'),
'zip' => extension_loaded('zip') 'zip' => extension_loaded('zip')
); );
$aRequirements = array( $aRequirements = array(
'mbstring' => extension_loaded('mbstring'), 'mbstring' => extension_loaded('mbstring'),
'Zlib' => extension_loaded('zlib'), 'Zlib' => extension_loaded('zlib'),
// enabled by default: // enabled by default:
'json' => function_exists('json_decode'), 'json' => function_exists('json_decode'),
'libxml' => function_exists('libxml_use_internal_errors'), 'libxml' => function_exists('libxml_use_internal_errors'),
'dom' => class_exists('DOMDocument') 'dom' => class_exists('DOMDocument')
// https://github.com/the-djmaze/snappymail/issues/392 // https://github.com/the-djmaze/snappymail/issues/392
// 'phar' => class_exists('PharData') // 'phar' => class_exists('PharData')
); );
if (in_array(false, $aRequirements)) { if (in_array(false, $aRequirements)) {
echo '<p>[302] The following PHP extensions are not available in your PHP configuration!</p>'; echo '<p>[302] The following PHP extensions are not available in your PHP configuration!</p>';
echo '<ul>'; echo '<ul>';
foreach ($aRequirements as $sKey => $bValue) { foreach ($aRequirements as $sKey => $bValue) {
if (!$bValue) { if (!$bValue) {
echo '<li>'.$sKey.'</li>'; echo '<li>'.$sKey.'</li>';
}
} }
echo '</ul>';
exit(302);
} }
echo '</ul>';
exit(302);
}
if (defined('APP_VERSION')) {
$sCheckName = 'delete_if_you_see_it_after_install'; $sCheckName = 'delete_if_you_see_it_after_install';
$sCheckFolder = APP_DATA_FOLDER_PATH.$sCheckName; $sCheckFolder = APP_DATA_FOLDER_PATH.$sCheckName;
$sCheckFilePath = APP_DATA_FOLDER_PATH.$sCheckName.'/'.$sCheckName.'.file'; $sCheckFilePath = APP_DATA_FOLDER_PATH.$sCheckName.'/'.$sCheckName.'.file';