table{width:100%}table td,table th{border:1px solid #dedede}';
echo '
Testing Server
';
echo self::success('BASE_PATH: '.BASE_PATH.'');
echo self::success('PHP: '.phpversion().'');
$v = Deprecation::dump_settings()['version'];
if ($v) {
echo self::success('SilverStipe version: '.$v.'');
} else {
echo self::success('SilverStipe version unknown: '
.(file_exists(BASE_PATH.'/framework') ? '3.x.x' : '4.x.x')
.'');
}
echo self::success('Memory limit: '.ini_get('memory_limit').'');
if (is_writable(TEMP_FOLDER)) {
echo self::success(
'TMP (cache) dir '.TEMP_FOLDER.' dir is writable.'
.' Available space: '.self::formatBytes(disk_free_space(TEMP_FOLDER))
);
} else {
echo self::error('TMP (cache) dir '.TEMP_FOLDER.' dir is no writable!');
}
echo 'Testing Uploads
';
$maxUpload = ini_get('upload_max_filesize');
$maxPost = ini_get('post_max_size');
echo self::success('PHP max upload size: '.$maxUpload);
echo self::success('PHP max post size: '.$maxPost);
echo self::success('So calculated max upload size: '.self::formatBytes(min(
self::memstring2bytes($maxUpload),
self::memstring2bytes($maxPost)
)));
$defaultSizes = Config::inst()->get(Upload_Validator::class, 'default_max_file_size');
if ($defaultSizes) {
if (!is_array($defaultSizes)) {
echo self::error('default_max_file_size miss-configuration, plz fix');
var_dump($defaultSizes);
die();
}
echo 'Configured limits:
'
.'File | Size limit |
';
foreach ($defaultSizes as $k => $size) {
echo ''.$k.' | '.$size.' |
';
}
echo '
';
}
if (is_writable(ASSETS_DIR)) {
echo self::success(
'Assets dir '.ASSETS_DIR.' dir is writable.'
.' Available space: '.self::formatBytes(disk_free_space(ASSETS_DIR))
);
} else {
echo self::error('Assets dir '.ASSETS_DIR.' dir is no writable!');
}
if (function_exists('imagewebp')) {
echo self::success('WebP is available');
} else {
echo self::error('WebP is not available');
}
die();
}
public static function formatBytes($size, $precision = 2)
{
$base = log($size, 1024);
$suffixes = array('', 'K', 'M', 'G', 'T');
return round(pow(1024, $base - floor($base)), $precision) . $suffixes[(string)floor($base)];
}
public static function error($text)
{
return 'ERROR: '.$text.'
';
}
public static function success($text)
{
return 'SUCCESS: '.$text.'
';
}
public static function warning($text)
{
return 'WARNING: '.$text.'
';
}
public static function renderValidation($result)
{
echo '';
$msgs = $result->getMessages();
foreach ($msgs as $msg) {
echo self::error($msg['fieldName'].': '.$msg['message']);
}
echo '
';
}
public static function memstring2bytes($memString)
{
// Remove non-unit characters from the size
$unit = preg_replace('/[^bkmgtpezy]/i', '', $memString);
// Remove non-numeric characters from the size
$size = preg_replace('/[^0-9\.]/', '', $memString);
if ($unit) {
// Find the position of the unit in the ordered string which is the power
// of magnitude to multiply a kilobyte by
return round($size * pow(1024, stripos('bkmgtpezy', $unit[0])));
}
return round($size);
}
}