Представляю вторую версию нашей легковесной веб-обвязки, созданной специально для
оригинальной серверной PTS-платформы Lineage 2 High Five. Изначально проект развернут и отлажен на стеке
Windows Server 2025 + IIS + PHP 8.4 + MS SQL Server 2022, но архитектура позволяет легко запускать его и в других средах.
В первой версии у нас была лишь простая статичная форма регистрации. Версия 2.0 — это уже полноценный микро-движок, переписанный с нуля на основе
Single Page Application (SPA). Нам удалось полностью разделить визуальную верстку и тяжелую серверную логику, убрав всю кашу из кода.
Что изменилось по сравнению с Версией 1 (Главные отличия):
- Бесшовная AJAX-навигация (SPA)
Теперь при кликах по меню («Главная» / «Регистрация») страница сайта не перезагружается целиком. JavaScript в фоне запрашивает у сервера только центральный контент и мгновенно подменяет его.
- Непрерывный медиа-поток (Видео + Аудио)
Благодаря AJAX-движку, проморолик High Five на фоне и заглавная тема Call of Destiny (выставленная на комфортные 5% громкости для наушников) играют непрерывно, без заиканий, обрывов и сбросов на первый кадр при переходах по сайту.
- Полная модульность (Чистый корень)
Корень сайта полностью очищен от второстепенного кода. Все изолированные процессы вынесены в отдельные микро-модули в папку /modules/. Сбоит ТОП? Падает только виджет топа, а форма регистрации и сам сайт продолжают работать. Искать ошибки стало в разы проще.
- Защита MSSQL от нагрузок (Сессионный кэш)
Все тяжелые запросы к базам данных lin2db и lin2world (подсчет онлайна, выборка ТОП-10) теперь кэшируются на стороне веб-сервера в сессии пользователя на 60 секунд. Сколько бы люди ни обновляли страницу, база данных опрашивается строго раз в минуту.
- Каноничный ТОП-10 по уровню
Интегрирован «резиновый» виджет ТОП-10, который вычитывает оригинальные PTS-колонки Lev и Exp таблицы user_data (с учетом регистра), автоматически отсекает ГМов (builder = 0) и выводит интернациональные имена профессий с русскими сокращениями (Хавк, ТХ, БД, Сырок).
- Исправление критической уязвимости паролей
Добавлена жесткая Regex-валидация паролей на стороне PHP (/^[a-zA-Z0-9]{8,16}$/). Сайт намертво блокирует кириллицу и спецсимволы, которые ломают авторизацию в retail-клиенте игры, полностью страхуя от ошибок «Неверный пароль» при входе.
- Безопасность сессий
Сессии PHP полностью изолированы от системных каталогов Windows и хранятся внутри локальной папки сайта с разграничением прав для пользователя IUSR.
Кроссплатформенность и совместимость
Скрипт написан на «ванильном» PHP без использования тяжелых сторонних фреймворков и специфических системных надстроек, что делает его
максимально автономным:
- Операционные системы (Linux / Windows): Весь код изначально спроектирован с учетом абсолютных путей и строго в нижнем регистре (top.php, config.php, bgv.php и т.д.). Это гарантирует, что при переносе на чувствительный к регистру Linux (Debian / Ubuntu) сайт заведется с пол-оборота.
- Веб-серверы (Nginx / Apache): Логика роутинга реализована силами самого PHP внутри index.php, поэтому сайту не нужны сложные правила перезаписи ссылок. Он «из коробки» готов к работе на Nginx (в связке с PHP-FPM) или Apache. При миграции достаточно перенести MIME-типы под медиафайлы в конфиг вашего веб-сервера (или в файл .htaccess).
- Работа с MSSQL на Linux: Если вы решите перенести веб-часть на Linux, а саму базу данных оставить на Windows-машине с PTS — достаточно установить официальный пакет драйверов Microsoft ODBC Driver for SQL Server (php-sqlsrv) на вашу Linux-систему, и сайт продолжит общаться с базой без изменения кода.
Простейший мануал по настройке и запуску (на примере IIS)
Чтобы развернуть Версию 2.0 у себя на сервере, выполните 4 простых шага:
Шаг 1. Структура файлов
Убедитесь, что файлы расположены строго по своим «полкам» в корневом каталоге вашего веб-сервера (C:\inetpub\wwwroot\):
│ index.php // Главный диспетчер и каркас сайта
│ config.php // ЕДИНЫЙ файл с доступами к вашему MS SQL Server
│ web.config // Конфигурация IIS (детальные ошибки + MIME типы)
│
├───modules
│ bgm.php // Модуль фоновой музыки
│ bgv.php // Модуль видео-фона
│ main.php // Контент главной страницы (описание, рейты X1)
│ register.php // Класс шифрования PTS (4 таблицы ssn, user_auth и др.) + форма
│ srvstatus.php // Логика проверки портов (2106/7777) и PTS-онлайна
│ top.php // Логика и верстка ТОП-10 по уровню
│
└───sessions // Папка для безопасного хранения сессий PHP
Шаг 2. Медиа-файлы
- Фоновое видео в формате MP4 находится в папке /modules/ под именем l2bg.mp4. (Параметры для ламповой олдскульной атмосферы: разрешение 480p, вес около 9 МБ, без звука).
- Главня темя игры в формате MP3 в папке /modules/ под именем main_theme.mp3 (битрейт 128 kbps).
Шаг 3. Настройка прав для папки sessions (для IIS)
Поскольку PHP работает под управлением IIS, ему нужны права на запись файлов сессий:
- Кликните правой кнопкой мыши по папке sessions
Свойства
вкладка Безопасность.
- Нажмите Изменить
Добавить
введите имя IUSR
нажмите ОК.
- В списке разрешений для IUSR поставьте галочки напротив Чтение и Запись. Нажмите Применить.
(При использовании Linux/Nginx просто выдайте права на запись пользователю www-data через chown).
Шаг 4. Регистрация MIME-типов в IIS
Чтобы ваш IIS не блокировал раздачу видео и музыки, в корневом файле
web.config обязательно должна быть прописана секция <staticContent>:
<staticContent>
<remove fileExtension=".mp4" />
<remove fileExtension=".mp3" />
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
<mimeMap fileExtension=".mp3" mimeType="audio/mpeg" />
</staticContent>
После этого откройте сайт в браузере (желательно через режим инкогнито для чистоты первого кэша). Музыка запустится автоматически по первому клику в любом месте экрана, видео заиграет на фоне, а регистрация начнет безопасно писать аккаунты напрямую в базу данных!
Скрипты распространяются абсолютно бесплатно. Пользуйтесь, тестируйте на своих PTS-площадках!