The PHP preset provides a full PHP development environment with nginx, PHP-FPM 8.3, and Composer pre-installed.
What’s Included
| Component | Version | Details |
|---|
| nginx | Latest (Ubuntu 24.04) | Web server, proxies to PHP-FPM |
| PHP-FPM | 8.3 | FastCGI process manager |
| Composer | Latest | PHP dependency manager |
| SSH | OpenSSH | Access via dedicated port |
Common PHP extensions are pre-installed (mbstring, xml, curl, mysql, pgsql, zip, etc.).
Directory Structure
/home/instapod/app/
├── public/
│ └── index.php # Web-accessible entry point
├── composer.json # (your project)
└── vendor/ # (after composer install)
- App Root:
/home/instapod/app
- Public Root:
/home/instapod/app/public
nginx is configured to serve from /home/instapod/app/public. Place your entry point (index.php) there. Application code, configs, and vendor directory go in the parent /home/instapod/app.
Deploying Your App
Upload Files
instapod files sync my-php-app --local ./my-laravel-project
Install Dependencies
instapod exec my-php-app -- composer install --no-dev
Reload Services
After deploying or updating your code:
instapod pods reload my-php-app
This restarts both nginx and PHP-FPM.
Adding a Database
PHP apps commonly need a database. Install one with:
# MySQL
instapod services add my-php-app --service mysql --wait
instapod services creds my-php-app --service mysql
# PostgreSQL
instapod services add my-php-app --service postgresql --wait
Database services require the Developer or Professional plan.
Use Cases
- Laravel applications
- Custom PHP APIs
- Content management systems
- PHP microservices