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) { return <<setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { error_log("DB Error: " . $e->getMessage()); die("Ошибка подключения к базе данных"); } // Добавляем константы для новых путей define('CONTROLLERS_PATH', __DIR__ . '/../public/controllers/'); define('VIEWS_PATH', __DIR__ . '/../public/views/'); define('LAYOUTS_PATH', VIEWS_PATH . 'layouts/'); // Автозагрузка контроллеров spl_autoload_register(function ($class_name) { $controller_file = CONTROLLERS_PATH . $class_name . '.php'; if (file_exists($controller_file)) { require_once $controller_file; } }); EOT; } ?> Установка Web Writer

Установка Web Writer

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

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

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

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

Назад

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

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