There is also an awesome community project that utilizes ddev with Gitpod and makes things much easier. Be sure to check it out first from below! https://ddev.github.io/ddev-gitpod-launcher/ With it, you can run XDebug out of the box, change PHP versions on the fly, and much more!
Example Repositories
Repository | Description | Try it |
---|---|---|
symfony-demo | A PHP/Symfony reference application following best practices | |
magento2gitpod | Magento 2 optimized setup for Gitpod: Nginx, MySQL, PHP 7.2, PHP-FPM and more | |
koel | A personal music streaming server that works | |
drupal | Drupal 9 with MySQL, suitable for site building and contrib module development | |
phpmyadmin | A phpMyAdmin example with Node.js, a REST API and MySQL for data persistence |
Switching PHP versions
Gitpod installs PHP from Ondřej Surý’s PPA in here. The default version should be set to PHP8. But let’s say you want to switch to PHP7.4, follow along! At first, add a .gitpod.Dockerfile file on your repo with the following content in it:.gitpod.yml
configuration file, like so:
Debugging PHP in Gitpod

Run and Debug
on the left hand side and have fun debugging PHP! You can also create a launch.json
file.
Finally, here is a full example repository containing the complete Gitpod PHP debug configuration described above. You can try it by clicking here:
PECL Package Manager
Gitpod’s default workspace image also comes with the PECL package manager pre-installed. To install packages with it, you must usesudo pecl install <EXTENSION>
in your repository’s .gitpod.Dockerfile, e.g. like so:
<EXTENSION>
is the PHP extension you want to install, e.g. xdebug
.
Setting GitHub token to Composer
Some composer plugins like symfony/flex does direct API call against GitHub to fetch additional information. These unauthenticated requests will be rate-limited and may fail your task steps. To fix this behavior we can use the default credential-helper to obtain a GitHub Token and configure composer properlyFurther Reading
- Gitpodifying a new Laravel Application by Etin Obaseki