Кафедра ИСиТ УО ВГТУ
  • Специальности
    • Экономика электронного бизнеса
    • Информационные системы
    • Information Control Systems
  • Каталог
  • Сайт кафедры
  • Сервисы
    • GitLab
    • JupyterHub
    • Soft
  1. ЭЭБ
  2. СУВК
  3. Практика
  4. Лаб. работа “Развертывание среды и установка CMS”
  • ЭЭБ
    • СУВК
      • Слайды
      • Теория
      • Практика
        • Лаб. работа “Анализ и выбор CMS”
        • Лаб. работа “Развертывание среды и установка CMS”
    • ВТиП
      • Теория
        • Введение в веб технологии
        • Протокол HTTP
        • HTML
        • CSS
        • CSS фреймворки
        • JavaScript
        • jQuery
        • JSON
        • Архитектура и технологии создания веб-приложений
        • React
        • Маршрутизация в React
        • Создание серверных приложений с использованием Express.js
        • REST интерфейс и аутентификация Веб-приложений
        • Современные практики DevOps: от разработки до развертывания
        • Веб-безопасность: защита современных веб-приложений
      • Практика
        • Лаб. работа “Основы HTML и CSS”
        • Лаб. работа “Основы JavaScript”
        • Лаб. работа “Создание веб-приложений с использованием фреймворка Express.js”
        • Лаб. работа “Работа с базами данных в Express.js”
    • СТ
      • Теория
        • Введение в компьютерные сети
        • Топологии сетей
        • Кодирование и мультиплексирование
        • Стеки протоколов
        • Адресация в компьютерных сетях
        • Система доменных имен (DNS)
        • Программирование с использованием сокетов
        • Протокол HTTP
        • Введение в PHP
        • Работа с базами данных в PHP
        • Объектно-ориентированные возможности PHP
      • Практика
        • Программное обеспечение
        • Регистрация в JupyterHub
        • Лаб. работа “Почтовые протоколы”
        • Лаб. работа “Протокол FTP”
        • Лаб. работа “Протокол HTTP”
        • Лаб. работа “Программирование сетевых приложений с использованием сокетов”
        • Лаб. работа “Основы PHP”
        • Лаб работа “Массивы в PHP”

Содержание

  • Лабораторная работа №2
    • Развертывание среды и установка CMS на бесплатном хостинге Segfault
    • Цель работы
    • Задачи
    • Ключевые навыки
    • Теоретическая часть
      • Что такое Segfault?
      • Почему SQLite вместо MySQL?
      • Официальный плагин sqlite-database-integration
      • Архитектура решения
    • Практическая часть
      • Шаг 1. Подключение к Segfault
      • Шаг 2. Проверка системы и установка PHP
      • Шаг 3. Создание директории проекта
      • Шаг 4. Скачивание WordPress
      • Шаг 5. Установка официального плагина SQLite Database Integration
      • Шаг 6. Настройка WordPress для работы с SQLite
      • Шаг 7. Запуск встроенного PHP-сервера
      • Шаг 8. Установка WordPress через браузер
      • Шаг 9. Проверка работоспособности
      • Шаг 10. Работа с зашифрованным хранилищем
    • Дополнительные задания
      • Задание 1. Резервное копирование базы данных
      • Задание 2. Установка темы
      • Задание 3. Настройка постоянных ссылок (ЧПУ)
    • Управление сервером
      • Остановка PHP-сервера
      • Перезапуск сервера
      • Просмотр логов сервера
      • Выход из SSH (сервер продолжит работать)
    • Требования к отчёту
    • Критерии оценки
    • Контрольные вопросы для защиты
    • Возможные проблемы и решения
      • Проблема: Потерян секретный ключ для подключения
      • Проблема: Не удаётся подключиться по SSH
      • Проблема: Команда apt не работает
      • Проблема: PHP-сервер не запускается
      • Проблема: WordPress не видит базу данных
      • Проблема: Данные не сохраняются между сессиями
      • Проблема: Сайт недоступен из интернета
    • Рекомендуемые источники
      • Официальная документация
      • Segfault
    • Приложение А. Полный список команд
    • Приложение Б. Пример структуры директорий
  1. ЭЭБ
  2. СУВК
  3. Практика
  4. Лаб. работа “Развертывание среды и установка CMS”

Лаб. работа “Развертывание среды и установка CMS”

Системы управления веб-контентом
Практика
Автор

Бизюк Андрей

Дата публикации

15 февраля 2026 г.

Лабораторная работа №2

Развертывание среды и установка CMS на бесплатном хостинге Segfault

Цель работы

Получить практический навык установки CMS на удалённый сервер с использованием бесплатного хостинга Segfault, работы с встроенным PHP-сервером и базой данных SQLite.

Задачи

  • Подключиться к серверу Segfault через SSH
  • Установить PHP и необходимые модули
  • Скачать и настроить WordPress для работы с SQLite
  • Запустить встроенный PHP-сервер
  • Выполнить установку WordPress
  • Войти в административную панель
  • Создать резервную копию базы данных

Ключевые навыки

  • Работа с удалённым сервером через SSH
  • Управление файлами в Linux (командная строка)
  • Установка и настройка PHP-приложений
  • Работа с базой данных SQLite
  • Использование зашифрованного хранилища
  • Запуск веб-сервера вручную

Теоретическая часть

Что такое Segfault?

Segfault — бесплатный сервис от The Hacker’s Choice (THC), предоставляющий временные root-серверы на базе Kali Linux.

Основные особенности:

  • Бесплатный доступ: ssh root@segfault.net (пароль: segfault)
  • Kali Linux с предустановленными инструментами
  • Зашифрованное хранилище /sec и /home
  • Возможность установки любого ПО
  • Публичный IP-адрес с портом
  • Поддержка TOR и onion-адресов

Ограничения бесплатной версии:

  • Ограниченные ресурсы (CPU, RAM ~256MB, диск)
  • Сервер может быть выключен при нехватке ресурсов
  • Данные могут быть уничтожены при длительном неиспользовании
  • Используйте /sec для важных данных (шифрование)

Почему SQLite вместо MySQL?

SQLite — встраиваемая база данных, хранящаяся в одном файле.

Преимущества для обучения:

  • Не требует отдельного сервера
  • Занимает меньше памяти (~5MB vs ~100MB MySQL)
  • Проще в управлении (один файл)
  • Достаточно для небольших сайтов

Недостатки:

  • Не подходит для высокой нагрузки
  • Ограниченная масштабируемость
  • Нет пользователей и прав доступа как в MySQL

Официальный плагин sqlite-database-integration

В этой работе используется официальный плагин от WordPress Core Team:

  • Назначение: Тестирование SQLite для будущего включения в ядро WordPress
  • Авторы: WordPress Core Team (aristath, janjakes, zieladam и др.)
  • Популярность: 3000+ активных установок
  • Версия: Последняя стабильная (автоматически)

Как работает:

Плагин заменяет стандартный слой базы данных WordPress (wpdb) на SQLite-реализацию. При этом: - WordPress продолжает использовать стандартный API (wpdb) - Все MySQL-запросы автоматически конвертируются в SQLite-синтаксис - Файл базы данных создаётся автоматически в wp-content/database/.ht.sqlite - Не требуется отдельный сервер базы данных

Преимущества официального плагина:

  • Полная совместимость с WordPress API
  • Поддержка WordPress Core Team
  • Регулярные обновления
  • Высокая стабильность

Архитектура решения

Архитектура WordPress + SQLite на Segfault

Архитектура WordPress + SQLite на Segfault

Компоненты системы:

  1. Браузер клиента — отправляет HTTP-запросы на публичный IP и порт Segfault
  2. Segfault Server — бесплатный виртуальный сервер на Kali Linux
  3. Встроенный PHP-сервер — обрабатывает HTTP-запросы без Apache/Nginx
  4. WordPress — CMS с официальным плагином sqlite-database-integration
  5. SQLite — база данных в файле .ht.sqlite (через плагин)
  6. Зашифрованное хранилище /sec — сохраняет данные между сессиями

Практическая часть

Шаг 1. Подключение к Segfault

1.1. Откройте терминал на вашем компьютере

1.2. Подключитесь к серверу:

ssh root@segfault.net

1.3. Введите пароль:

segfault

1.4. После подключения вы увидите приветственное сообщение с важной информацией:

Welcome to Segfault.
Your server is ready...

SSH               : ssh -o "SetEnv SECRET=???????????????????" root@adm.segfault.net

1.5. Сохраните секретный ключ для повторного подключения:

Важно: Запомните или скопируйте полную команду SSH с параметром SECRET.

Пример:

ssh -o "SetEnv SECRET=???????????????????" root@adm.segfault.net

Без этого ключа вы не сможете:

  • Повторно подключиться к своему серверу
  • Получить доступ к сохраненным файлам в /sec
  • Восстановить зашифрованные данные

Совет: Сохраните эту команду в надежном месте (менеджер паролей, заметки).

1.6. Получите открытый порт для доступа к сайту:

curl sf/port

В выводе будет строка:

👾 Your reverse Port is 83.143.242.45 39815 [83.143.242.45:39815]

Запомните: IP-адрес и порт (в примере: 83.143.242.45:39815)

Примечание: Если подключение не работает, попробуйте порт 443:

ssh -p 443 root@segfault.net

Шаг 2. Проверка системы и установка PHP

2.1. Проверьте версию системы:

cat /etc/os-release

Ожидаемый вывод: Kali GNU/Linux Rolling (на базе Debian)

2.2. Обновите список пакетов:

apt update

2.3. Установите PHP и необходимые модули:

apt install -y php php-sqlite3 php-gd php-curl php-xml php-mbstring php-zip wget unzip

2.4. Проверьте установку PHP:

php --version

Ожидаемый вывод: PHP 8.x.x

2.5. Проверьте наличие модуля SQLite:

php -m | grep sqlite

Должно отобразиться: pdo_sqlite, sqlite3

2.6. Проверьте открытый порт (если забыли):

Если вы не записали порт на шаге 1.6, получите его снова:

curl sf/port

Важно: PHP-сервер должен слушать именно на этом порту, иначе сайт не будет доступен извне.


Шаг 3. Создание директории проекта

3.1. Перейдите в зашифрованное хранилище:

cd /sec

Важно: Используйте /sec вместо обычных директорий, так как оно зашифровано и данные сохраняются между сессиями.

3.2. Создайте директорию для WordPress:

mkdir wordpress-site
cd wordpress-site

Шаг 4. Скачивание WordPress

4.1. Скачайте последнюю версию WordPress:

wget https://wordpress.org/latest.tar.gz

4.2. Распакуйте архив:

tar -xzf latest.tar.gz

4.3. Переместите файлы WordPress в текущую директорию:

mv wordpress/* .
mv wordpress/.* . 2>/dev/null || true
rmdir wordpress

4.4. Удалите архив:

rm latest.tar.gz

4.5. Проверьте содержимое:

ls -la

Должны быть файлы: index.php, wp-config-sample.php, wp-admin/, wp-content/, wp-includes/


Шаг 5. Установка официального плагина SQLite Database Integration

5.1. Скачайте официальный плагин от WordPress Core Team:

cd /sec/wordpress-site/wp-content/plugins
wget https://downloads.wordpress.org/plugin/sqlite-database-integration.zip

Примечание: Это официальный плагин от WordPress Core Team для тестирования SQLite в ядре WordPress. Он автоматически перехватывает подключение к базе данных.

5.2. Распакуйте плагин:

unzip sqlite-database-integration.zip
rm sqlite-database-integration.zip

5.3. Скопируйте db.php для активации SQLite:

cp sqlite-database-integration/db.copy ../db.php

Важно: Файл db.php в директории wp-content/ активирует плагин на уровне ядра WordPress, перехватывая все запросы к базе данных.

5.4. Перейдите обратно в корневую директорию сайта:

cd /sec/wordpress-site

Шаг 6. Настройка WordPress для работы с SQLite

6.1. Создайте файл конфигурации из примера:

cp wp-config-sample.php wp-config.php

6.2. Откройте файл для редактирования:

nano wp-config.php

6.3. Настройте параметры базы данных (строки 20-35):

Оставьте стандартные настройки или замените значения:

define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wordpress' );
define( 'DB_PASSWORD', 'wordpress_password' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8' );
define( 'DB_COLLATE', '' );

6.4. Добавьте константу для выбора движка базы данных (после настроек DB_**):

define( 'DB_ENGINE', 'sqlite' );

Важно:

  • Константа DB_ENGINE указывает WordPress использовать SQLite вместо MySQL
  • Файл wp-content/db.php (скопированный на шаге 5.3) активирует плагин на уровне ядра
  • Файл базы данных будет создан автоматически в wp-content/database/.ht.sqlite

6.5. Добавьте ключи безопасности (генерируются автоматически при установке, можно оставить как есть или заменить):

Найдите строки:

define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
...

Можно сгенерировать случайные ключи командой:

curl -s https://api.wordpress.org/secret-key/1.1/salt/

И вставить их вместо стандартных значений.

6.6. Сохраните файл (Ctrl+O, Enter, Ctrl+X)


Шаг 7. Запуск встроенного PHP-сервера

7.1. Убедитесь, что вы в директории сайта:

cd /sec/wordpress-site
pwd

7.2. Получите открытый порт (если забыли):

curl sf/port

7.3. Запустите PHP-сервер в фоновом режиме на открытом порту:

nohup php -S 0.0.0.0:ВАШ_ПОРТ > /tmp/server.log 2>&1 &

Важно: Замените ВАШ_ПОРТ на номер порта, полученный на шаге 2.6 (например: 39815).

Пример:

nohup php -S 0.0.0.0:39815 > /tmp/server.log 2>&1 &

7.4. Проверьте, что сервер запущен:

ps aux | grep "php -S"

Ожидаемый вывод: должна быть строка с php -S 0.0.0.0:ВАШ_ПОРТ

7.5. Проверьте логи сервера:

cat /tmp/server.log

Должно отобразиться: Listening on http://0.0.0.0:ВАШ_ПОРТ


Шаг 8. Установка WordPress через браузер

8.1. Получите ваш публичный адрес и порт:

На сервере выполните:

curl sf/port

В выводе будет строка:

👾 Your reverse Port is 83.143.242.45 39815 [83.143.242.45:39815]

Запомните: IP-адрес и порт (в примере: 83.143.242.45:39815)

8.2. Откройте браузер и перейдите по адресу:

http://ВАШ-IP:ВАШ-ПОРТ/wp-admin/setup-config.php

Пример: http://83.143.242.45:39815/wp-admin/setup-config.php

8.3. Выберите язык (русский) и нажмите “Продолжить”

8.4. Заполните форму установки:

Поле Значение
Название сайта Мой первый сайт на WordPress
Имя пользователя admin
Пароль (придумайте надёжный пароль, минимум 12 символов)
Ваш email ваш@email.com
Поисковая видимость ☐ (снимите галочку для обучения)

8.5. Нажмите “Установить WordPress”

8.6. После успешной установки нажмите “Войти”

8.7. Введите логин и пароль, созданные на шаге 8.4


Шаг 9. Проверка работоспособности

9.1. Проверьте доступность сайта:

  • Откройте: http://ВАШ-IP:ВАШ-ПОРТ/
  • Должна появиться стандартная тема WordPress с приветственной записью

9.2. Проверьте административную панель:

  • Откройте: http://ВАШ-IP:ВАШ-ПОРТ/wp-admin
  • Зайдите под учётной записью администратора

9.3. Создайте тестовую запись:

  1. В админ-панели перейдите: Записи → Добавить новую
  2. Заголовок: “Моя первая запись на Segfault”
  3. Текст: “Этот сайт работает на WordPress + SQLite на бесплатном сервере Segfault!”
  4. Нажмите “Опубликовать”

9.4. Проверьте запись на сайте:

  • Перейдите на главную страницу сайта
  • Запись должна отображаться

Шаг 10. Работа с зашифрованным хранилищем

10.1. Проверьте содержимое /sec:

ls -la /sec/wordpress-site/

10.2. Проверьте файл базы данных SQLite:

Официальный плагин создаёт базу данных в директории wp-content/database/:

ls -lh /sec/wordpress-site/wp-content/database/

Должен быть файл: .ht.sqlite (скрытый файл)

10.3. Проверьте размер базы данных:

du -h /sec/wordpress-site/wp-content/database/.ht.sqlite

Примечание: Файл .ht.sqlite создаётся автоматически при первом запуске WordPress с установленным плагином. Название файла начинается с точки, что делает его скрытым в Unix-системах.

10.4. Важно: Данные в /sec сохраняются между сессиями благодаря шифрованию. При выходе из SSH ключи шифрования стираются, но данные остаются зашифрованными и будут доступны при следующем входе.


Дополнительные задания

Задание 1. Резервное копирование базы данных

Создайте резервную копию базы SQLite (официальный плагин создаёт файл .ht.sqlite):

cd /sec/wordpress-site/wp-content/database
cp .ht.sqlite wordpress-backup-$(date +%Y%m%d).sqlite

Скачайте бэкап на локальный компьютер (в другом терминале):

scp root@segfault.net:/sec/wordpress-site/wp-content/database/wordpress-backup-*.sqlite .

Задание 2. Установка темы

  1. В админ-панели перейдите: Внешний вид → Темы
  2. Нажмите “Добавить новую”
  3. Выберите тему (например, “Twenty Twenty-Four”)
  4. Нажмите “Установить” → “Активировать”
  5. Проверьте изменение внешнего вида сайта

Задание 3. Настройка постоянных ссылок (ЧПУ)

  1. В админ-панели: Настройки → Постоянные ссылки
  2. Выберите “Название записи”
  3. Сохраните изменения
  4. Проверьте, что URL записей стали читаемыми

Примечание: Для работы ЧПУ встроенный PHP-сервер не требует дополнительной настройки .htaccess.


Управление сервером

Остановка PHP-сервера

# Найдите PID процесса
ps aux | grep "php -S"

# Остановите процесс (замените XXXX на PID)
kill XXXX

Перезапуск сервера

cd /sec/wordpress-site
nohup php -S 0.0.0.0:8080 > /tmp/server.log 2>&1 &

Просмотр логов сервера

tail -f /tmp/server.log

Выход из SSH (сервер продолжит работать)

exit

Или нажмите Ctrl+D

Важно: PHP-сервер продолжит работать в фоновом режиме после выхода благодаря nohup.


Требования к отчёту

Отчёт должен содержать:

  1. Титульный лист с названием работы, ФИО студента, группы, датой
  2. Введение — цель и задачи работы (1 страница)
  3. Ход работы — пошаговое описание выполнения со скриншотами:
    • Подключение к Segfault через SSH
    • Установка PHP и модулей
    • Содержимое директории /sec/wordpress-site
    • Запуск PHP-сервера
    • Установка WordPress (скриншоты веб-интерфейса)
    • Административная панель
    • Созданная тестовая запись
    • Файл базы данных SQLite
  4. Архитектура решения — схема или описание компонентов
  5. Вывод — какие навыки получены, преимущества и недостатки использования SQLite и Segfault (1 страница)
  6. Список используемых источников (минимум 3 источника)

Объём отчёта: 6-10 страниц

Формат: PDF или DOCX


Критерии оценки

Критерий Баллы Описание
Успешное подключение к Segfault 10 SSH-соединение установлено
Установка PHP и модулей 15 Все необходимые пакеты установлены
Корректная установка WordPress 25 WordPress установлен и работает
Настройка SQLite 15 База данных SQLite функционирует
Проверка функциональности 15 Создана запись, проверена админка
Работа с /sec и резервное копирование 10 Использовано зашифрованное хранилище
Оформление отчёта 10 Соблюдена структура, есть скриншоты
Дополнительные задания +20 За каждое дополнительное задание

Максимальный балл: 100 (+20 бонус)

Шкала оценок:

  • 90-100: отлично
  • 75-89: хорошо
  • 60-74: удовлетворительно
  • менее 60: неудовлетворительно

Контрольные вопросы для защиты

  1. Что такое Segfault и какие у него преимущества/недостатки?
  2. Почему используется SQLite вместо MySQL?
  3. Какие преимущества даёт встроенный PHP-сервер?
  4. Зачем использовать зашифрованное хранилище /sec?
  5. Как выполнить резервное копирование базы данных SQLite?
  6. Что такое nohup и зачем он используется?
  7. Как проверить, что PHP-сервер запущен?
  8. Какие ограничения имеет бесплатный Segfault?
  9. Чем SQLite отличается от MySQL?
  10. Как сохранить данные между сессиями работы с Segfault?
  11. Как работает официальный плагин sqlite-database-integration и чем он отличается от неофициальных решений?

Возможные проблемы и решения

Проблема: Потерян секретный ключ для подключения

Решение:

  • Если вы не сохранили секретный ключ при первом входе, создайте новый сервер:

    ssh root@segfault.net
  • Новый сервер будет создан с новым ключом

  • Важно: Данные в /sec предыдущего сервера будут потеряны без возможности восстановления

  • Совет: Всегда сохраняйте команду с SECRET сразу при первом входе

Проблема: Не удаётся подключиться по SSH

Решение:

  • Используйте полную команду с SECRET:

    ssh -o "SetEnv SECRET=ВАШ_КЛЮЧ" root@adm.segfault.net
  • Попробуйте порт 443:

    ssh -o "SetEnv SECRET=ВАШ_КЛЮЧ" -p 443 root@adm.segfault.net
  • Подождите несколько минут и попробуйте снова (возможен лимит подключений)

  • Проверьте подключение к интернету

Проблема: Команда apt не работает

Решение:

apt update
apt install -y имя_пакета

Проблема: PHP-сервер не запускается

Решение:

  • Проверьте, что используете правильный порт (полученный через curl sf/port):

    curl sf/port
    # Используйте порт из строки "Your reverse Port is..."
  • Проверьте, не занят ли порт:

    netstat -tlnp | grep ВАШ_ПОРТ
  • Остановите предыдущий процесс PHP:

    ps aux | grep "php -S"
    kill <PID>
  • Запустите снова с правильным портом:

    nohup php -S 0.0.0.0:ВАШ_ПОРТ > /tmp/server.log 2>&1 &

Проблема: WordPress не видит базу данных

Решение:

  • Проверьте, что файл wp-content/db.php существует:

    ls -la /sec/wordpress-site/wp-content/db.php
  • Если файла нет, скопируйте его:

    cp /sec/wordpress-site/wp-content/plugins/sqlite-database-integration/db.copy /sec/wordpress-site/wp-content/db.php
  • Проверьте файл wp-config.php, должен быть добавлен:

    define( 'DB_ENGINE', 'sqlite' );
  • Проверьте права доступа:

    chmod 755 /sec/wordpress-site/wp-content
    chmod 755 /sec/wordpress-site/wp-content/database 2>/dev/null || true

Проблема: Данные не сохраняются между сессиями

Решение:

  • Убедитесь, что вы используете правильный SECRET ключ при подключении:

    ssh -o "SetEnv SECRET=ВАШ_КЛЮЧ" root@adm.segfault.net
  • Проверьте, что работаете в директории /sec:

    pwd  # должно быть /sec/wordpress-site или поддиректория
  • Проверьте, что данные записываются:

    ls -la /sec/wordpress-site/
  • Не храните данные в /tmp или /var/tmp — они удаляются при выходе

  • Проверьте, что не превышен лимит дискового пространства:

    df -h /sec

Проблема: Сайт недоступен из интернета

Решение:

  • Проверьте, что сервер слушает на 0.0.0.0, а не 127.0.0.1:

    netstat -tlnp | grep php
    # Должно быть: 0.0.0.0:ВАШ_ПОРТ
  • Проверьте правильный порт:

    curl sf/port
    # Используйте именно этот порт для PHP-сервера
  • Проверьте IP-адрес:

    curl ipinfo.io/ip
    netstat -tlnp | grep php
  • Убедитесь, что порт открыт на файрволе Segfault (обычно открыт автоматически)


Рекомендуемые источники

Официальная документация

  • WordPress: https://wordpress.org/support/
  • WordPress SQLite Integration: https://wordpress.org/plugins/sqlite-database-integration/
  • PHP Built-in Web Server: https://www.php.net/manual/en/features.commandline.webserver.php
  • SQLite Documentation: https://www.sqlite.org/docs.html

Segfault

  • Segfault Main Page: https://www.thc.org/segfault/
  • Segfault FAQ: https://www.thc.org/segfault/faq/

Приложение А. Полный список команд

# Подключение (используйте ваш SECRET ключ из первого входа)
ssh -o "SetEnv SECRET=ВАШ_СЕКРЕТНЫЙ_КЛЮЧ" root@adm.segfault.net
# Пароль: segfault

# Получение открытого порта
curl sf/port
# Запомните: IP-адрес и номер порта из строки "Your reverse Port is..."

# Установка PHP
cd /sec
apt update
apt install -y php php-sqlite3 php-gd php-curl php-xml php-mbstring php-zip wget unzip

# Создание директории
mkdir wordpress-site && cd wordpress-site

# Скачивание WordPress
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
mv wordpress/* . && rmdir wordpress
rm latest.tar.gz

# Установка официального плагина SQLite (от WordPress Core Team)
cd wp-content/plugins
wget https://downloads.wordpress.org/plugin/sqlite-database-integration.zip
unzip sqlite-database-integration.zip
rm sqlite-database-integration.zip

# Копирование db.php для активации SQLite (обязательно!)
cp sqlite-database-integration/db.copy ../db.php
cd /sec/wordpress-site

# Настройка WordPress (использовать стандартные настройки БД + DB_ENGINE)
cp wp-config-sample.php wp-config.php
nano wp-config.php
# Добавьте: define( 'DB_ENGINE', 'sqlite' );
# Файл базы данных будет создан в wp-content/database/.ht.sqlite

# Запуск сервера (замените ВАШ_ПОРТ на порт из curl sf/port)
nohup php -S 0.0.0.0:ВАШ_ПОРТ > /tmp/server.log 2>&1 &

# Проверка
ps aux | grep "php -S"
curl http://localhost:ВАШ_ПОРТ

# Резервное копирование (официальный плагин создаёт файл .ht.sqlite)
cd /sec/wordpress-site/wp-content/database
cp .ht.sqlite wordpress-backup-$(date +%Y%m%d).sqlite

# Повторное подключение (используйте сохранённый SECRET ключ)
ssh -o "SetEnv SECRET=ВАШ_СЕКРЕТНЫЙ_КЛЮЧ" root@adm.segfault.net

Приложение Б. Пример структуры директорий

/sec/wordpress-site/
├── index.php
├── wp-config.php
├── wp-admin/
├── wp-content/
│   ├── db.php                      # ← Активатор SQLite (скопирован из плагина)
│   ├── database/
│   │   └── .ht.sqlite              # ← SQLite база данных (официальный плагин)
│   ├── plugins/
│   │   └── sqlite-database-integration/  # ← Официальный плагин от WordPress Core
│   ├── themes/
│   └── uploads/
├── wp-includes/
└── ...
Наверх
Лаб. работа “Анализ и выбор CMS”
ВТиП