Loading...
Runtime PHP 8

Платформа PHP

Управляемый runtime для приложений на PHP 8 — Laravel, Symfony или собственноручно написанного legacy-кода — со встроенной управляемой базой данных MySQL, Redis, файловым менеджером и деплоем через Git/GitHub. Домен, Auto SSL, edge-кэш и WAF обрабатываются тем же аккаунтом, так что вы выпускаете код приложения вместо того, чтобы обслуживать сервер.

Платформа PHP

Почему управляемый runtime PHP лучше голого VPS

На голом VPS вы владеете всем стеком: обновлениями ОС, пулом PHP-FPM, конфигурацией веб-сервера, продлением TLS, правилами файрвола и демоном базы данных. Расхождение в любом из них ломает сайт, и большая часть этой работы не имеет ничего общего с вашим приложением. Управляемая платформа PHP даёт вам поддерживаемый runtime PHP 8 с уже присутствующими обычными расширениями, так что ваша ответственность сужается до кода, его зависимостей и его конфигурации — тех частей, которые действительно ваши.

Дружелюбность к фреймворкам Laravel и Symfony

Современные фреймворки ожидают определённую структуру: корневой каталог документов public/, доступный для записи каталог storage или var, управляемые Composer зависимости и место для запуска миграций базы данных при деплое. Платформа отображается на это напрямую — вы задаёте корневой каталог как public/, держите остальное дерево приватным и подключаете команды composer install и artisan/console-миграции в шаги деплоя. Redis доступен для кэша, очередей и сессий — именно то, что нужно воркеру очереди Laravel или пулу кэша Symfony.

Управляемые MySQL и Redis без роли DBA

Развёртывание MySQL и Redis самостоятельно означает настройку, резервное копирование, управление пользователями и поддержание патчей. Здесь оба доступны как управляемые дополнения: вы их разворачиваете, а их хост, порт, пользователь и пароль внедряются в окружение приложения, а не вставляются в файл конфигурации. Это держит секреты вне истории Git, позволяет ротировать пароль базы данных без передеплоя кода и означает, что хранилище данных обслуживается отдельно от runtime вашего приложения.

Деплой так, как уже работает ваша команда

Не каждый PHP-проект уже в Git, и это нормально. Небольшой сайт или legacy-приложение можно загрузить через файловый менеджер и получить в работе за минуты. Команда с репозиторием подключает Git или GitHub и получает push-to-deploy с определёнными шагами сборки — composer install, сборка фронтенда, миграции, — так что релизы повторяемы, а не перетаскивание файлов по SFTP, в котором кто-то забывает файл. Статус деплоя и время последнего деплоя видны в панели.

Edge-кэш и WAF перед динамическим PHP

PHP-приложения тратят реальный CPU на рендеринг страниц, поэтому отдача кэшируемых ответов с edge напрямую защищает ваш runtime от нагрузки. Вы решаете, какие маршруты безопасно кэшировать — публичный каталог или статья, — а какие всегда выполняются, вроде залогиненной панели или POST-эндпоинта. WAF находится на edge перед приложением, фильтруя трафик инъекций и сканеров до того, как он достигнет PHP, а Auto SSL поддерживает действующий HTTPS без cron продления.

Контролируемый путь модернизации legacy PHP

Старые приложения, написанные для PHP 5 или на неподдерживаемой CMS, рискованно трогать, но они не могут вечно оставаться на runtime, срок поддержки которого истёк. Платформа даёт вам место перенести код, переместить его базу данных в управляемую MySQL с правильной кодировкой и запустить его на PHP 8, где можно найти и исправить устаревшие конструкции. Вы проверяете на временном URL и ставите WAF перед кодовой базой, которая больше не получает патчей безопасности, так что публичная поверхность атаки сокращается ещё до того, как код полностью очищен.

Как развернуть, шаг за шагом

1

Создайте PHP-приложение и выберите runtime

В панели откройте Platform, выберите PHP и укажите версию PHP 8 и план. Runtime поставляется с распространёнными расширениями, которые ожидают PHP-приложения — PDO, mbstring, GD, OpenSSL и расширение Redis, — так что вам не нужно заводить тикеты на включение расширения.

2

Загрузите код на платформу

Используйте встроенный файловый менеджер для быстрой загрузки или подключите репозиторий Git/GitHub, чтобы push деплоил приложение. Для фреймворковых приложений вы задаёте корневой каталог документов как public/ и один раз определяете шаги сборки и миграций.

3

Подключите управляемую базу данных и Redis

Разверните управляемую базу данных MySQL и, если приложению нужны кэширование, очереди или сессии, — управляемый экземпляр Redis. Значения подключения внедряются в runtime как переменные окружения, так что учётные данные остаются вне вашего закоммиченного .env и могут ротироваться из панели.

4

Направьте домен и выпустите Auto SSL

Подключите свой домен или поддомен name.cdn.com.tr, и Auto SSL выпустит и продлит сертификат для apex и www. Теперь трафик сначала достигает edge cdn.com.tr, где происходит терминация SSL перед проксированием запросов в ваш runtime PHP.

5

Настройте кэш, WAF и шаги деплоя

Определите, какие маршруты кэшируемы на edge, а какие всегда идут в PHP, примените профиль WAF и зафиксируйте пайплайн деплоя — например composer install, сборку ресурсов и миграции базы данных, — так что каждый релиз выполняет одни и те же шаги и завершается автоматическим purge.

Примеры сценариев

Приложение на Laravel

Приложение на Laravel деплоится из GitHub с composer install и миграциями, использует управляемую MySQL и очередь Redis и работает за Auto SSL и WAF.

Legacy-портал на PHP

Старый портал на самописной CMS переносится на PHP 8 с управляемой базой данных, ставится за WAF и модернизируется маршрут за маршрутом без простоя.

Кастомный бэкенд API

Самописный API на PHP работает на управляемом runtime с Redis для состояния лимитов запросов и сессий, публикуется на домене с терминацией SSL на edge.

Часто задаваемые вопросы

Какие расширения PHP доступны в runtime?

Runtime PHP 8 поставляется с расширениями, от которых зависят типичные приложения — драйверы PDO и MySQL, mbstring, GD для работы с изображениями, OpenSSL, cURL и расширение Redis для кэша, сессий и очередей. Поскольку набор расширений стандартный, Laravel, Symfony и большинство пакетов Composer устанавливаются без кастомной сборки.

Могу ли я запускать воркер очереди Laravel или запланированные задачи?

Да. Redis доступен как бэкенд очереди, а платформа запускает ваше приложение на постоянном runtime, а не в песочнице на каждый запрос, так что фоновая обработка и запланированные задания вписываются в модель. Вы определяете команды как часть конфигурации приложения, а не редактируете системный crontab на сервере, который вам иначе пришлось бы администрировать.

Как учётные данные базы данных попадают в мой .env без коммита секретов?

Реквизиты подключения к управляемой базе данных и Redis внедряются в окружение runtime. Ваш фреймворк читает их из окружения так же, как уже читает значения .env, так что вы никогда не коммитите хост, пользователя или пароль в Git, а ротация пароля в панели не требует изменения кода.

Моё приложение рассчитано на PHP 7 — заработает ли оно на PHP 8?

Большая часть поддерживаемого кода работает на PHP 8 с небольшими корректировками, но PHP 8 убрал некоторое устаревшее поведение. Правильный подход — перенести код на платформу, запустить его на временном URL и исправить найденные устаревшие конструкции перед переключением домена — управляемый runtime даёт вам безопасное место сделать именно это.

Нужно ли задавать корневой каталог документов как public/?

Да. Для Laravel, Symfony и подобных фреймворков вы направляете корень веб-сервера на каталог public/, так что остальное дерево приложения — включая .env, vendor и storage — остаётся вне пути, доступного веб-серверу. Legacy-приложения, отдающиеся из своего корневого каталога, тоже поддерживаются; вы задаёте корень соответствующим образом.

Как обрабатывать загрузки файлов, которые должны пережить передеплой?

У приложения есть постоянный том для пользовательских данных, а для медиатяжёлых приложений вы можете вынести загрузки в объектное хранилище и отдавать их через CDN вместо runtime. Это делает деплои быстрыми и без состояния, а также означает, что передеплой или событие масштабирования никогда не рискует загруженными файлами.