Your IP : 216.73.217.79


Current Path : /var/www/cesa.co.za/crons/
Upload File :
Current File : /var/www/cesa.co.za/crons/wp-diagnostic.php

<?php

// Start output buffering
ob_start();

// Basic error reporting
ini_set('display_errors', 1);
error_reporting(E_ALL);

echo "=== WordPress Diagnostic Test ===\n";
echo "PHP Version: " . phpversion() . "\n";
echo "Current directory: " . getcwd() . "\n";

// Set document root
if (!isset($_SERVER['DOCUMENT_ROOT']) || strlen($_SERVER['DOCUMENT_ROOT']) <= 0) {
    $_SERVER['DOCUMENT_ROOT'] = str_replace('/crons', '', getcwd());
}

echo "Document root: " . $_SERVER['DOCUMENT_ROOT'] . "\n";

// Check wp-config.php first
$wp_config_path = $_SERVER['DOCUMENT_ROOT'] . '/wp-config.php';
if (file_exists($wp_config_path)) {
    echo "✓ wp-config.php found\n";

    // Read wp-config.php to extract database settings
    $wp_config_content = file_get_contents($wp_config_path);

    // Extract database settings using regex
    preg_match("/define\(\s*'DB_HOST',\s*'([^']+)'\s*\)/", $wp_config_content, $db_host_match);
    preg_match("/define\(\s*'DB_USER',\s*'([^']+)'\s*\)/", $wp_config_content, $db_user_match);
    preg_match("/define\(\s*'DB_NAME',\s*'([^']+)'\s*\)/", $wp_config_content, $db_name_match);
    preg_match("/define\(\s*'DB_PASSWORD',\s*'([^']*)'\s*\)/", $wp_config_content, $db_password_match);

    if ($db_host_match && $db_user_match && $db_name_match) {
        $db_host = $db_host_match[1];
        $db_user = $db_user_match[1];
        $db_name = $db_name_match[1];
        $db_password = $db_password_match[1] ?? '';

        echo "✓ Database settings extracted from wp-config.php:\n";
        echo "  Host: $db_host\n";
        echo "  User: $db_user\n";
        echo "  Database: $db_name\n";
        echo "  Password: " . (strlen($db_password) > 0 ? "***" : "empty") . "\n";

        // Test database connection directly
        echo "\n=== Testing Database Connection ===\n";
        try {
            $pdo = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, $db_password);
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            echo "✓ Database connection successful\n";

            // Test a simple query
            $stmt = $pdo->query("SELECT COUNT(*) as count FROM wp_posts");
            $result = $stmt->fetch(PDO::FETCH_ASSOC);
            echo "✓ Database query successful - Found " . $result['count'] . " posts\n";
        } catch (PDOException $e) {
            echo "✗ Database connection failed: " . $e->getMessage() . "\n";
        }
    } else {
        echo "✗ Could not extract database settings from wp-config.php\n";
    }
} else {
    echo "✗ wp-config.php not found\n";
    exit(1);
}

// Check for common WordPress issues
echo "\n=== Checking WordPress Files ===\n";

$wp_files = [
    'wp-load.php',
    'wp-settings.php',
    'wp-config.php',
    'wp-includes/wp-db.php',
    'wp-includes/load.php'
];

foreach ($wp_files as $file) {
    $full_path = $_SERVER['DOCUMENT_ROOT'] . '/' . $file;
    if (file_exists($full_path)) {
        echo "✓ $file found\n";
    } else {
        echo "✗ $file missing\n";
    }
}

// Check file permissions
echo "\n=== Checking File Permissions ===\n";
$wp_load_path = $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php';
if (file_exists($wp_load_path)) {
    $perms = fileperms($wp_load_path);
    echo "wp-load.php permissions: " . substr(sprintf('%o', $perms), -4) . "\n";

    if (is_readable($wp_load_path)) {
        echo "✓ wp-load.php is readable\n";
    } else {
        echo "✗ wp-load.php is not readable\n";
    }
}

// Try to load WordPress with a timeout
echo "\n=== Attempting WordPress Load with Timeout ===\n";

// Set a short timeout
set_time_limit(10);

// Try to load WordPress with error suppression
try {
    // Suppress warnings to see if there are specific errors
    $old_error_reporting = error_reporting();
    error_reporting(E_ERROR | E_PARSE);

    echo "Loading wp-load.php...\n";
    require_once($wp_load_path);

    // Restore error reporting
    error_reporting($old_error_reporting);

    echo "✓ WordPress loaded successfully\n";

    // Test basic functions
    if (function_exists('get_post_meta')) {
        echo "✓ get_post_meta function available\n";
    } else {
        echo "✗ get_post_meta function not available\n";
    }
} catch (Exception $e) {
    echo "✗ Exception loading WordPress: " . $e->getMessage() . "\n";
} catch (Error $e) {
    echo "✗ Fatal error loading WordPress: " . $e->getMessage() . "\n";
}

echo "\n=== Diagnostic completed ===\n";

// Flush output buffer
ob_end_flush();