1. <?php
  2. /**
  3. * Checks the integrity of the runtime environment for maintenance.
  4. *
  5. * This script performs basic checks on PHP version, extensions, and file system permissions.
  6. */
  7. // PHP Version Check
  8. if (version_compare(phpversion(), '7.4', '<')) {
  9. error_log("PHP version is older than 7.4. Consider upgrading."); // Log to error log
  10. echo "PHP Version < 7.4 - Upgrade recommended.\n";
  11. exit(1); // Exit with an error code
  12. }
  13. // Required Extensions Check
  14. $requiredExtensions = ['mysqli', 'gd', 'curl', 'mbstring', 'xml'];
  15. foreach ($requiredExtensions as $extension) {
  16. if (!extension_loaded($extension)) {
  17. error_log("Extension '$extension' is missing. Please install it."); // Log to error log
  18. echo "Missing extension '$extension' - Please install.\n";
  19. exit(1); // Exit with an error code
  20. }
  21. }
  22. // File System Permissions Check (Example - adjust paths as needed)
  23. $allowedPermissions = 0755; //Read/write/execute for owner, read/execute for group/others
  24. if (!is_dir(__DIR__)) {
  25. error_log("Directory not found: " . __DIR__);
  26. echo "Directory not found: " . __DIR__ . "\n";
  27. exit(1);
  28. }
  29. $dir = __DIR__;
  30. $permissions = fileperms($dir);
  31. if ($permissions & $allowedPermissions) {
  32. echo "Directory permissions OK: " . $permissions . "\n";
  33. } else {
  34. error_log("Directory permissions are not correct for " . $dir);
  35. echo "Directory permissions are not correct for " . $dir . "\n";
  36. exit(1); // Exit with an error code
  37. }
  38. //Check for writable files
  39. $writable = writable(__DIR__ . '/maintenance_log.txt');
  40. if (!$writable) {
  41. error_log("Cannot write to maintenance log file.");
  42. echo "Cannot write to maintenance log file.\n";
  43. exit(1);
  44. }
  45. echo "Runtime environment integrity check completed successfully.\n";
  46. exit(0); // Exit with a success code
  47. ?>

Add your comment