<?php
/**
* Checks the integrity of the runtime environment for maintenance.
*
* This script performs basic checks on PHP version, extensions, and file system permissions.
*/
// PHP Version Check
if (version_compare(phpversion(), '7.4', '<')) {
error_log("PHP version is older than 7.4. Consider upgrading."); // Log to error log
echo "PHP Version < 7.4 - Upgrade recommended.\n";
exit(1); // Exit with an error code
}
// Required Extensions Check
$requiredExtensions = ['mysqli', 'gd', 'curl', 'mbstring', 'xml'];
foreach ($requiredExtensions as $extension) {
if (!extension_loaded($extension)) {
error_log("Extension '$extension' is missing. Please install it."); // Log to error log
echo "Missing extension '$extension' - Please install.\n";
exit(1); // Exit with an error code
}
}
// File System Permissions Check (Example - adjust paths as needed)
$allowedPermissions = 0755; //Read/write/execute for owner, read/execute for group/others
if (!is_dir(__DIR__)) {
error_log("Directory not found: " . __DIR__);
echo "Directory not found: " . __DIR__ . "\n";
exit(1);
}
$dir = __DIR__;
$permissions = fileperms($dir);
if ($permissions & $allowedPermissions) {
echo "Directory permissions OK: " . $permissions . "\n";
} else {
error_log("Directory permissions are not correct for " . $dir);
echo "Directory permissions are not correct for " . $dir . "\n";
exit(1); // Exit with an error code
}
//Check for writable files
$writable = writable(__DIR__ . '/maintenance_log.txt');
if (!$writable) {
error_log("Cannot write to maintenance log file.");
echo "Cannot write to maintenance log file.\n";
exit(1);
}
echo "Runtime environment integrity check completed successfully.\n";
exit(0); // Exit with a success code
?>
Add your comment