Loading...
Runtime PHP 8

Платформа PHP

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

Платформа PHP

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

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

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

Современные фреймворки ожидают определённую структуру: корневой каталог документов public/, доступный для записи каталог storage или var и управляемые Composer зависимости. Платформа отображается на это напрямую — вы задаёте корневой каталог как public/ и держите остальное дерево приватным. Расширение phpredis доступно в runtime, поэтому приложение, подключающееся к своему собственному Redis, работает без кастомной сборки; а если вам нужен управляемый экземпляр Redis, развёрнутый за вас, — это дополнение Container Apps.

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

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

Деплойте просто — и знайте, где живёт Git-пайплайн

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

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

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

Загрузите приложение через встроенный файловый менеджер — для фреймворковых приложений вы задаёте корневой каталог документов как public/, а остальное дерево держите приватным. Если вашей команде нужен Git push-to-deploy с шагами сборки, этот рабочий процесс — именно то, для чего существуют Container Apps с GitHub Deploy; платформа PHP намеренно оставляет деплой простым.

3

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

Управляемая база данных MySQL разворачивается вместе с вашим хостинг-аккаунтом. Её хост, имя, пользователь и пароль показаны в панели — вы сами вносите их в .env или конфигурацию своего приложения и в любой момент можете сбросить пароль из панели, не трогая сервер базы данных, потому что никакого сервера базы данных у вас нет.

4

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

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

5

Настройте edge-кэш и правила WAF

Определите, какие маршруты кэшируемы на edge, а какие всегда идут в PHP, и примените профиль WAF. Кэшируемые ответы отдаются с edge, не будя ваш runtime, а purge из панели или через API мгновенно очищает их после загрузки нового релиза.

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

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

Приложение на Laravel работает на управляемом runtime PHP 8 с управляемой базой данных MySQL и обслуживается за Auto SSL, edge-кэшем и WAF.

Legacy-портал на PHP

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

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

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

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

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

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

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

На платформе PHP — нет: она выполняет ваше приложение на каждый веб-запрос и не имеет менеджера воркеров или cron. Если приложение зависит от воркеров очередей или запланированных задач, запустите его как Container App: контейнеры — это долгоживущие процессы, и та платформа также предлагает управляемый Redis в качестве бэкенда очереди.

Как учётные данные базы данных попадают в моё приложение?

Учётные данные управляемой MySQL — хост, имя базы данных, пользователь, пароль — показаны в панели. Вы вносите их в свой .env или конфигурационный файл на платформе (вне каталога, отдаваемого веб-сервером), так что их никогда не нужно коммитить в Git, а сбросить пароль можно из панели без тикета в поддержку.

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

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

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

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

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

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