setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Пытаемся создать базу данных если не существует $pdo->exec("CREATE DATABASE IF NOT EXISTS `$db_name` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci"); $pdo->exec("USE `$db_name`"); // Сохраняем данные в сессии для следующего шага session_start(); $_SESSION['install_data'] = [ 'db_host' => $db_host, 'db_name' => $db_name, 'db_user' => $db_user, 'db_pass' => $db_pass ]; header('Location: install.php?step=2'); exit; } catch (PDOException $e) { $error = "Ошибка подключения к базе данных: " . $e->getMessage(); } } elseif ($step === '2') { // Шаг 2: Создание администратора session_start(); if (!isset($_SESSION['install_data'])) { header('Location: install.php?step=1'); exit; } $admin_username = $_POST['admin_username'] ?? ''; $admin_password = $_POST['admin_password'] ?? ''; $admin_email = $_POST['admin_email'] ?? ''; $admin_display_name = $_POST['admin_display_name'] ?? $admin_username; if (empty($admin_username) || empty($admin_password)) { $error = 'Имя пользователя и пароль администратора обязательны'; } else { try { $db = $_SESSION['install_data']; $pdo = new PDO("mysql:host={$db['db_host']};dbname={$db['db_name']}", $db['db_user'], $db['db_pass']); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Создаем таблицы $pdo->exec($database_sql); // Создаем администратора $password_hash = password_hash($admin_password, PASSWORD_DEFAULT); $stmt = $pdo->prepare(" INSERT INTO users (username, display_name, password_hash, email, is_active, created_at) VALUES (?, ?, ?, ?, 1, NOW()) "); $stmt->execute([$admin_username, $admin_display_name, $password_hash, $admin_email]); // Создаем config.php $config_content = generate_config($db); if (file_put_contents('config/config.php', $config_content)) { // Создаем папки для загрузок if (!file_exists('uploads/covers')) { mkdir('uploads/covers', 0755, true); } if (!file_exists('uploads/avatars')) { mkdir('uploads/avatars', 0755, true); } $success = 'Установка завершена успешно!'; session_destroy(); } else { $error = 'Не удалось создать файл config.php. Проверьте права доступа к папке config/'; } } catch (PDOException $e) { $error = "Ошибка при установке: " . $e->getMessage(); } } } } function generate_config($db) { $site_url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]"; $base_path = str_replace('/install.php', '', $_SERVER['PHP_SELF']); $site_url .= $base_path; return <<setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException \$e) { error_log("DB Error: " . \$e->getMessage()); die("Ошибка подключения к базе данных"); } // Автозагрузка моделей spl_autoload_register(function (\$class_name) { \$model_file = __DIR__ . '/../models/' . \$class_name . '.php'; if (file_exists(\$model_file)) { require_once \$model_file; } }); ?> EOT; } ?> Установка Web Writer

Установка Web Writer

1. База данных
2. Администратор
3. Завершение

Настройки базы данных

Создание администратора

Создайте учетную запись администратора для управления приложением.

Назад

Перед установкой убедитесь, что:

  • Сервер MySQL запущен и доступен
  • У вас есть данные для подключения к БД (хост, пользователь, пароль)
  • Папка config/ доступна для записи
  • Папка uploads/ доступна для записи