Deploy and scale PHP applications in minutes on Upsun
Run PHP applications with the controls you need: dependency builds, runtime settings, and performance tuning without stitching together infrastructure and deployment scripts. Go from push to production faster, with security built in.

Standardize PHP builds and configuration across environments

Repeatable builds, predictable releases
On Upsun, your configuration lives in Git. That means your runtime, build steps, web routing, and service wiring are version-controlled and repeatable. Specify your PHP version (8.2-8.5), enable extensions, and define your services in a single .upsun/config.yaml file.
Composer builds, your way
Upsun uses Composer 2.x by default and applies a standard production build during deployment. Use lock files for reproducible installs, configure authenticated private repositories, and customize the build through hooks when you need more control.
Learn more about authenticated ComposerConfiguration that matches your stack
PHP delivery breaks when environments drift: extensions differ, settings change, and “quick fixes” pile up. Standardize the runtime and settings your application needs so the same baseline applies to every environment.
Tune PHP for productionBuilt for the PHP ecosystem
Use production-ready PHP patterns: dependency builds, environment-specific configuration, background work, caching, and database migrations. Upsun supports common PHP architectures across frameworks, CMSs, and custom apps.
View all PHP framework guidesBlackfire included

Built-in profiling, monitoring, and alerting for PHP applications
Upsun includes native integration with Blackfire.io, purpose-built for PHP performance. Use continuous profiling to see which functions consume CPU and memory over time, and validate performance across environments, not just in one-off tests.
Monitor
Track application performance signals and container resource usage across environments. Use monitoring/APM to identify slow endpoints, heavy code paths, and inefficient queries. Issues are visible before they become user-facing.
Learn moreInvestigate
Reproduce issues safely in an isolated environment, then profile to trace bottlenecks down to specific PHP functions and SQL queries. Validate fixes without touching the live site.
Learn moreEnforce
Turn performance into a standard. Add performance tests and budgets to CI to catch regressions before production. Keep optimizations intact as the codebase evolves.
Learn moreShip features faster with Git-based delivery

Work with the tools you already use
Skip building internal deployment pipelines. Push changes, and Upsun handles builds, environment creation, and deployments. Use the CLI, web console, or connect Upsun to your existing CI workflow. GitHub, GitLab, and Bitbucket integrations are supported.
Git-based deployment
Git is the trigger for builds and deployments. Push code or configuration changes, and Upsun builds your application, provisions required services, and routes traffic. Each branch can run in an isolated environment with its own URL.
Map environments to Git branchesCommand line and local development
Manage projects from the terminal: create environments, stream logs, SSH into containers, and run commands on a live environment for debugging and verification. Workflows are available in the console and CLI.
Manage environments using CLIFlexible resource management
Control CPU, memory, and disk allocation per container. Start with sensible defaults, then tune allocations as you learn real usage patterns. Scale resources up or down without rebuilding your delivery process.
Allocates resourcesRun PHP your way: PHP-FPM or FrankenPHP
Choose the execution model that fits your application.

PHP-FPM by default
Apply PHP settings per environment and tune OPcache based on how your application behaves under load. When needed, move beyond defaults into deliberate tuning (including preloading) without rewriting your platform setup.
FrankenPHP for performance tuning
FrankenPHP embeds PHP directly into the server and supports worker-based execution models that can reduce per-request overhead. It’s a strong option when you understand the lifecycle tradeoffs and want to push throughput or simplify the server model.
Learn more about FrankenPHP on UpsunTurn extensions on (or off) explicitly
PHP stacks depend on specific extensions. Upsun supports enabling and disabling extensions as part of configuration, so you avoid “works locally” mismatches between environments.
Manage PHP extensionsRun background work alongside your app
Deploy queue workers, scheduled tasks, and cron jobs in the same project as your web application. Run Laravel Horizon, Symfony Messenger consumers, or Drush cron alongside your PHP app with dedicated worker containers that scale independently.
Configure background workersEnterprise-grade security and governance

Security controls that scale with your team
PHP applications often face a broad attack surface. Upsun helps you apply consistent security guardrails across environments, teams can move fast without relying on ad-hoc scripts and one-off configurations.
Environment-level protection by default
Apply platform-level controls consistently across environments to reduce common exploit paths and keep standards stable as your footprint grows.
View security featuresRole-based access control
Control who can deploy, change configuration, and access environments. Improve traceability with clear ownership and visibility into operational actions.
Learn about access managementTest security patches in isolation
Validate changes in isolated environments before promotion so security fixes and dependency updates can be tested without impacting production until you’re ready.
Learn environment inheritance