<?php
// Server Requirements Check for M-AUTO
echo "<h1>M-AUTO Server Requirements Check</h1>";
echo "<style>
.check-item { margin: 10px 0; padding: 10px; border-radius: 5px; }
.success { background-color: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
.warning { background-color: #fff3cd; color: #856404; border: 1px solid #ffeaa7; }
.error { background-color: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }
.info { background-color: #d1ecf1; color: #0c5460; border: 1px solid #bee5eb; }
</style>";
// PHP Version Check
echo "<h2>PHP Configuration</h2>";
$php_version = phpversion();
$min_php_version = '7.4';
if (version_compare($php_version, $min_php_version, '>=')) {
echo "<div class='check-item success'>✓ PHP Version: $php_version (Required: $min_php_version+)</div>";
} else {
echo "<div class='check-item error'>✗ PHP Version: $php_version (Required: $min_php_version+)</div>";
}
// Required Extensions
$required_extensions = [
'mysqli' => 'MySQL Database Support',
'mbstring' => 'Multibyte String Support (for Arabic)',
'gd' => 'Image Processing',
'curl' => 'HTTP Requests',
'json' => 'JSON Support',
'session' => 'Session Support',
'fileinfo' => 'File Information',
'zip' => 'ZIP Archive Support'
];
echo "<h3>Required PHP Extensions</h3>";
foreach ($required_extensions as $ext => $desc) {
if (extension_loaded($ext)) {
echo "<div class='check-item success'>✓ $desc ($ext)</div>";
} else {
echo "<div class='check-item error'>✗ $desc ($ext) - MISSING</div>";
}
}
// PHP Settings
echo "<h3>PHP Settings</h3>";
$settings = [
'upload_max_filesize' => ['current' => ini_get('upload_max_filesize'), 'recommended' => '10M'],
'post_max_size' => ['current' => ini_get('post_max_size'), 'recommended' => '10M'],
'max_execution_time' => ['current' => ini_get('max_execution_time'), 'recommended' => '300'],
'memory_limit' => ['current' => ini_get('memory_limit'), 'recommended' => '256M'],
'max_input_vars' => ['current' => ini_get('max_input_vars'), 'recommended' => '3000']
];
foreach ($settings as $setting => $values) {
$class = 'info';
$status = 'ℹ';
echo "<div class='check-item $class'>$status $setting: {$values['current']} (Recommended: {$values['recommended']})</div>";
}
// Directory Permissions
echo "<h2>Directory Permissions</h2>";
$directories = [
'uploads' => 'File Uploads',
'assets/images' => 'Image Assets',
'includes' => 'Include Files'
];
foreach ($directories as $dir => $desc) {
if (is_dir($dir)) {
if (is_writable($dir)) {
echo "<div class='check-item success'>✓ $desc ($dir) - Writable</div>";
} else {
echo "<div class='check-item warning'>⚠ $desc ($dir) - Not Writable</div>";
}
} else {
echo "<div class='check-item warning'>⚠ $desc ($dir) - Directory doesn't exist</div>";
}
}
// Database Connection Test
echo "<h2>Database Connection</h2>";
try {
include 'includes/db.php';
if ($conn && !$conn->connect_error) {
echo "<div class='check-item success'>✓ Database Connection - OK</div>";
// Check database charset
$charset_result = $conn->query("SELECT @@character_set_database as charset");
if ($charset_result) {
$charset = $charset_result->fetch_assoc()['charset'];
if ($charset === 'utf8mb4') {
echo "<div class='check-item success'>✓ Database Charset: $charset (Arabic Support)</div>";
} else {
echo "<div class='check-item warning'>⚠ Database Charset: $charset (Recommended: utf8mb4)</div>";
}
}
// Check tables
$tables_result = $conn->query("SHOW TABLES");
$table_count = $tables_result->num_rows;
echo "<div class='check-item info'>ℹ Database Tables: $table_count found</div>";
} else {
echo "<div class='check-item error'>✗ Database Connection Failed</div>";
}
} catch (Exception $e) {
echo "<div class='check-item error'>✗ Database Connection Error: " . $e->getMessage() . "</div>";
}
// Server Information
echo "<h2>Server Information</h2>";
echo "<div class='check-item info'>ℹ Server Software: " . $_SERVER['SERVER_SOFTWARE'] . "</div>";
echo "<div class='check-item info'>ℹ Document Root: " . $_SERVER['DOCUMENT_ROOT'] . "</div>";
echo "<div class='check-item info'>ℹ Current Directory: " . __DIR__ . "</div>";
echo "<div class='check-item info'>ℹ PHP SAPI: " . php_sapi_name() . "</div>";
echo "<h2>Recommendations for Production</h2>";
echo "<div class='check-item warning'>⚠ Remove this file (server_check.php) after deployment</div>";
echo "<div class='check-item warning'>⚠ Update database credentials in includes/config.php</div>";
echo "<div class='check-item warning'>⚠ Enable HTTPS and update .htaccess</div>";
echo "<div class='check-item warning'>⚠ Set up regular database backups</div>";
echo "<div class='check-item warning'>⚠ Configure error logging</div>";
echo "<p><strong>Generated on:</strong> " . date('Y-m-d H:i:s') . "</p>";
?>