Почему управляемый 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 перед кодовой базой, которая больше не получает патчей безопасности, так что публичная поверхность атаки сокращается ещё до того, как код полностью очищен.
Как развернуть, шаг за шагом
Создайте PHP-приложение и выберите runtime
В панели откройте Platform, выберите PHP и укажите версию PHP 8 и план. Runtime поставляется с распространёнными расширениями, которые ожидают PHP-приложения — PDO, mbstring, GD, OpenSSL и расширение Redis, — так что вам не нужно заводить тикеты на включение расширения.
Загрузите код на платформу
Загрузите приложение через встроенный файловый менеджер — для фреймворковых приложений вы задаёте корневой каталог документов как public/, а остальное дерево держите приватным. Если вашей команде нужен Git push-to-deploy с шагами сборки, этот рабочий процесс — именно то, для чего существуют Container Apps с GitHub Deploy; платформа PHP намеренно оставляет деплой простым.
Подключите управляемую базу данных MySQL
Управляемая база данных MySQL разворачивается вместе с вашим хостинг-аккаунтом. Её хост, имя, пользователь и пароль показаны в панели — вы сами вносите их в .env или конфигурацию своего приложения и в любой момент можете сбросить пароль из панели, не трогая сервер базы данных, потому что никакого сервера базы данных у вас нет.
Направьте домен и выпустите Auto SSL
Подключите свой домен или поддомен name.cdn.com.tr, и Auto SSL выпустит и продлит сертификат для apex и www. Теперь трафик сначала достигает edge cdn.com.tr, где происходит терминация SSL перед проксированием запросов в ваш runtime PHP.
Настройте edge-кэш и правила WAF
Определите, какие маршруты кэшируемы на edge, а какие всегда идут в PHP, и примените профиль WAF. Кэшируемые ответы отдаются с edge, не будя ваш runtime, а purge из панели или через API мгновенно очищает их после загрузки нового релиза.
Примеры сценариев
Приложение на Laravel работает на управляемом runtime PHP 8 с управляемой базой данных MySQL и обслуживается за Auto SSL, edge-кэшем и WAF.
Старый портал на самописной CMS переносится на PHP 8 с управляемой базой данных, ставится за WAF и модернизируется маршрут за маршрутом без простоя.
Самописный 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. Это делает деплои быстрыми и без состояния, а также означает, что передеплой или событие масштабирования никогда не рискует загруженными файлами.