minimal_test.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. // Minimal test to isolate exact hanging point
  3. error_reporting(E_ALL);
  4. ini_set('display_errors', 1);
  5. ini_set('max_execution_time', 30);
  6. ini_set('memory_limit', '256M');
  7. echo "<h1>Minimal WordPress Connection Test</h1>";
  8. echo "<p>PHP Memory: " . ini_get('memory_limit') . "</p>";
  9. echo "<p>Max Execution: " . ini_get('max_execution_time') . "s</p>";
  10. echo "<p>Current Time: " . date('H:i:s') . "</p>";
  11. if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  12. echo "<h2>Testing Step by Step...</h2>";
  13. try {
  14. echo "<p>Step 1: Creating DSN...</p>";
  15. $host = trim($_POST['wp_host'] ?? 'localhost');
  16. $database = trim($_POST['wp_database'] ?? 'wordpress');
  17. $username = trim($_POST['wp_username'] ?? 'root');
  18. $password = $_POST['wp_password'] ?? '';
  19. echo "<p>Host: $host</p>";
  20. echo "<p>Database: $database</p>";
  21. $dsn = "mysql:host=$host;dbname=$database;charset=utf8mb4";
  22. echo "<p>DSN: $dsn</p>";
  23. echo "<p>Step 2: Creating PDO object...</p>";
  24. $pdo = new PDO($dsn, $username, $password, [
  25. PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
  26. PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
  27. PDO::ATTR_TIMEOUT => 5,
  28. PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4"
  29. ]);
  30. echo "<p style='color: green;'>✓ PDO created successfully</p>";
  31. echo "<p>Step 3: Testing simple query...</p>";
  32. $result = $pdo->query("SELECT 1 as test");
  33. echo "<p style='color: green;'>✓ Simple query successful</p>";
  34. echo "<p>Step 4: Testing WordPress table check...</p>";
  35. $tables = $pdo->query("SHOW TABLES LIKE 'wp_%'");
  36. echo "<p>Found " . $tables->rowCount() . " WordPress tables</p>";
  37. echo "<p>Step 5: Testing COUNT query...</p>";
  38. $count = $pdo->query("SELECT COUNT(*) FROM wp_posts")->fetchColumn();
  39. echo "<p style='color: green;'>✓ Posts count: $count</p>";
  40. echo "<p style='color: green; font-weight: bold;'>ALL TESTS PASSED!</p>";
  41. } catch (Exception $e) {
  42. echo "<p style='color: red;'>ERROR: " . htmlspecialchars($e->getMessage()) . "</p>";
  43. echo "<p>File: " . $e->getFile() . "</p>";
  44. echo "<p>Line: " . $e->getLine() . "</p>";
  45. }
  46. } else {
  47. ?>
  48. <h2>Test WordPress Connection</h2>
  49. <form method="post">
  50. <p><label>Host: <input type="text" name="wp_host" value="localhost" required></label></p>
  51. <p><label>Database: <input type="text" name="wp_database" value="wordpress" required></label></p>
  52. <p><label>Username: <input type="text" name="wp_username" value="root" required></label></p>
  53. <p><label>Password: <input type="password" name="wp_password"></label></p>
  54. <p><input type="submit" value="Test Connection"></p>
  55. </form>
  56. <?php
  57. }
  58. ?>