DDEV-Local: a local PHP development environment system

Last update: May 26, 2022

ddev

CircleCI project is maintained Gitpod Ready-to-Code

ddev logo

ddev is an open source tool that makes it simple to get local PHP development environments up and running in minutes. It's powerful and flexible as a result of its per-project environment configurations, which can be extended, version controlled, and shared. In short, ddev aims to allow development teams to use Docker in their workflow without the complexities of bespoke configuration.

Getting Started

  1. Check System Requirements: We support recent versions of macOS, Windows 10, and Linux distributions that will run Docker (ddev requires Docker and docker-compose). (more info here).
  2. Install ddev: Options include macOS homebrew (recommended), an install script, or manual installation.
  3. Read the Basics and Choose a CMS Quick Start Guide:

Having trouble? See our support options below. You might have trouble if another local development tool is already using port 80 or 443.

Partial Feature List

  • Quickly create multiple local web development environments based on code repositories.
  • Import database for a project you're working on.
  • Import upload files to match the project (e.g. Drupal's sites/default/files or WordPress's wp-content/uploads).
  • Pantheon integration - grab a Pantheon archive and work locally with the database and files.
  • Run commands within the docker environment using ddev exec.
  • View logs from the web and db containers.
  • Use ddev ssh to explore the linux environment inside the container.
  • List running projects with ddev list.
  • Snapshot databases with ddev snapshot.
  • Temporarily share your development website with other using ddev share.
  • Trusted HTTPS support

Just running ddev will show you all the commands.

Support

We love to hear from our users and help them be successful with ddev. Support options include:

  • ddev Documentation and faq
  • ddev StackOverflow for support and frequently asked questions. We respond quite quickly here and the results provide quite a library of user-curated solutions.
  • ddev issue queue for bugs and feature requests
  • The gitter drud/ddev channel (it's easy to log in many different ways)
  • The #ddev channels in Drupal Slack, TYPO3 Slack for interactive, immediate community support.
  • ddev-contrib repo provides a number of vetted user-contributed recipes for extending and using ddev. Your contributions are welcome.
  • awesome-ddev repo has loads of external resources, blog posts, recipes, screencasts, and the like. Your contributions are welcome.
  • Twitter with tag #ddev will get to us, but it's not as good for interactive support, but we'll answer anywhere.

Additional Information

  • Contributing See the "How can I contribute" question in the FAQ.
  • Version History: See DDEV's version history to browse through all the features that have been added.
  • Roadmap: Take a look at the milestones in the ddev issue queue to get an understanding of what's prioritized and what's next. We love your input! Make requests in the issue queue (if your request doesn't exist yet).

GitHub

https://github.com/drud/ddev
Comments
  • 1. Use GitHub Actions for linux tests and whatever else we can do, fixes #2604

    As discussed in/closes https://github.com/drud/ddev/issues/2604

    This has been quite a pain to set up, lots of trial and error. At least Docker + Golang are working on both environments now. Probably needs a lot more troubleshooting/fixes before it actually works. I'm going to let this rest for a few days, have limited time available currently. Feel free to push directly into my branch

    The GH Actions CI runs can be found at https://github.com/dennisameling/ddev/actions

    Is there any chance we can use Golang directly instead of using the Docker image for building? Having some permissions issues on MacOS with the mounted filesystem 😞

    This also doesn't run NFS tests yet, first trying to get the regular tests to work

    Reviewed by dennisameling at 2020-11-07 14:45
  • 2. DDEV ARM64 Docker images

    Related to https://github.com/drud/ddev/issues/2338 and https://github.com/drud/ddev/issues/2322

    This is a draft PR to track work on DDEV ARM64 Docker images and to share experiences.

    • [x] Build ddev-dbserver for ARM64
    • [x] Build ddev-router for ARM64 https://hub.docker.com/repository/docker/dennisameling/ddev-router
    • [x] Build ddev-ssh-agent for ARM64 https://hub.docker.com/repository/docker/dennisameling/ddev-ssh-agent
    • [x] Build ddev-webserver for ARM64 https://hub.docker.com/repository/docker/dennisameling/ddev-webserver
      • [x] Needs drud/ddev-php-base for ARM64 (https://github.com/drud/ddev-images/pull/16)
    • [x] ~Build test-ssh-server for ARM64~

    ddev-dbserver

    • While MariaDB has support for ARM64 in their Docker images since 10.0, based on Ubuntu Xenial, percona-xtrabackup-24 for ARM64 only works on Ubuntu Bionic (18.04) and higher: https://launchpad.net/ubuntu/bionic/arm64/percona-xtrabackup. Therefore MariaDB 10.1 is the minimum version I could build with in the current state
    • MySQL only has official ARM64 support since version 8.0: https://www.mysql.com/support/supportedplatforms/database.html - the official Docker MySQL image still doesn't have ARM64 support (work has been happening recently though): https://github.com/docker-library/mysql/issues/318

    ddev-webserver

    • I can't test this properly yet since drud/ddev-php-base is only available for amd64. @rfay I can't find the source code for these images, is it closed source?

    How to build

    • You'll need docker buildx as described here. Installation instructions can be found here: https://github.com/docker/buildx/#building. DDEV's CI probably needs to be updated for this.
    • Run make container as usual. I've only tested ddev-webserver and ddev-dbserver so far.

    Test images

    • For the images that I was able to build, I'm uploading test images for my Surface Pro X (Windows ARM64 with WSL2) to https://hub.docker.com/u/dennisameling.
    Reviewed by dennisameling at 2020-08-15 10:20
  • 3. Can't access more than 2 ddev sites at the same time (after updating to v1.16.0, MacOS)

    Describe the bug After updating to the latest version 1.16.0 on macOS I find that I can't browse to any site for any ddev project I start after the first started project.

    To Reproduce Steps to reproduce the behavior:

    ddev start site1 open browser with this site: https://site1.ddev.site. (all good)

    then start new a project: ddev start site2

    browse to site2: https://site2.ddev.site. I get this error:

    503: No ddev back-end site available. This is the ddev-router container: There is no back-end webserver at the URL you specified. You may want to use "ddev start" to start the site.

    Expected behavior I expect the new site to open in the browser

    Screenshots If applicable, add screenshots to help explain your problem. image

    Version and configuration information (please complete the following information):

    • Host computer OS and Version: macOS Catalina 10.15.7
    • Docker Desktop version: 2.5.0.1 (49550)
    • ddev version information (use ddev version)

    DDEV-Local version v1.16.0 commit COMMIT should be overridden db drud/ddev-dbserver-mariadb-10.2:v1.16.0 dba phpmyadmin:5 ddev-ssh-agent drud/ddev-ssh-agent:v1.16.0 docker 19.03.13 docker-compose 1.27.4 os darwin router drud/ddev-router:v1.16.0 web drud/ddev-webserver:v1.16.0

    Reviewed by lecabori at 2020-11-18 23:57
  • 4. Support for PHP 5.3?

    I know PHP 5.3 is not supported and probably never will, but what would be the easiest way to achieve this?

    Sometimes I need to run ancient systems in order to analyse an migrate them - e. g. an ancient version of typo3 that will not run on systems with PHP > 5.3.

    Reviewed by a8w4 at 2019-07-18 14:24
  • 5. Explore alternatives to Docker Desktop for the engine behind ddev

    Docker Desktop has stability problems and people are always asking about options.

    Explore what the alternatives might be.

    Article on Lima: https://medium.com/nttlabs/containerd-and-lima-39e0b64d2a59

    /cc @shaal

    Reviewed by rfay at 2021-09-01 17:05
  • 6. Subdomain, Local DNS support: Don't require hosts file manipulation

    Summarizing the acceptance criteria in this thread:

    • [ ] Replace naming convention to *.ddev.site.
    • [x] *.ddev.site records pointing to 127.0.0.1.
    • [ ] Test and fallback to /etc/host when unable to lookup public DNS records.
    Reviewed by rickmanelius at 2017-07-19 20:27
  • 7. ddev should support zsh autocomplete

    What happened (or feature request):

    • Feature request.

    What you expected to happen:

    • We support bash autocomplete https://github.com/drud/ddev/issues/125.
    • We're waiting on Cobra to support zsh https://github.com/spf13/cobra/issues/107 before we proceed on this.

    Related source links or issues:

    • https://github.com/drud/ddev/issues/125.
    Reviewed by rickmanelius at 2017-06-15 12:48
  • 8. Regression: ddev v1.5.0 lost the docker "cached" mount feature, slowing considerably (macOS only)

    Everything is really slow on my Mac. TYPO3 Frontend and Backend take at least 10 seconds to load. You cannot really work with it. The same project on a Windows Machine is super fast.

    MacBook Pro (Retina 13 Zoll, Anfang 2013) 2,6 GHz Intel Core i5 8 GB 1600 MHz DDR3 SSD Drive 256 GB / 50 GB free Mac OS Mojave.

    Question: How can I debug this?

    Here is my config file:

    APIVersion: v1.4.1
    name: myproject
    type: typo3
    docroot: public
    php_version: "7.2"
    webserver_type: nginx-fpm
    router_http_port: "80"
    router_https_port: "443"
    xdebug_enabled: false
    additional_hostnames: []
    additional_fqdns: []
    provider: default
    # This config.yaml was created with ddev version v1.4.1
    # webimage: drud/ddev-webserver:v1.4.0
    # dbimage: drud/ddev-dbserver:v1.4.0
    # dbaimage: drud/phpmyadmin:v1.4.0
    # However we do not recommend explicitly wiring these images into the
    # config.yaml as they may break future versions of ddev.
    # You can update this config.yaml using 'ddev config'.
    
    # Key features of ddev's config.yaml:
    
    # name: <projectname> # Name of the project, automatically provides
    #   http://projectname.ddev.local and https://projectname.ddev.local
    
    # type: <projecttype>  # drupal6/7/8, backdrop, typo3, wordpress, php
    
    # docroot: <relative_path> # Relative path to the directory containing index.php.
    
    # php_version: "7.1"  # PHP version to use, "5.6", "7.0", "7.1", "7.2"
    
    # You can explicitly specify the webimage, dbimage, dbaimage lines but this
    # is not recommended, as the images are often closely tied to ddev's' behavior,
    # so this can break upgrades.
    
    # webimage: <docker_image>  # nginx/php docker image.
    # dbimage: <docker_image>  # mariadb docker image.
    # dbaimage: <docker_image>
    
    # router_http_port: <port>  # Port to be used for http (defaults to port 80)
    # router_https_port: <port> # Port for https (defaults to 443)
    
    # xdebug_enabled: false  # Set to true to enable xdebug and "ddev start" or "ddev restart"
    
    # webserver_type: nginx-fpm  # Can be set to apache-fpm or apache-cgi as well
    
    additional_hostnames:
      - myproject2
    # would provide http and https URLs for "somename.ddev.local"
    # and "someothername.ddev.local".
    
    # additional_fqdns:
    #  - example.com
    #  - sub1.example.com
    # would provide http and https URLs for "example.com" and "sub1.example.com"
    # Please take care with this because it can cause great confusion.
    
    # upload_dir: custom/upload/dir
    # would set the destination path for ddev import-files to custom/upload/dir.
    
    # working_dir:
    #   web: /var/www/html
    #   db: /home
    # would set the default working directory for the web and db services.
    # These values specify the destination directory for ddev ssh and the
    # directory in which commands passed into ddev exec are run.
    
    # omit_containers: ["dba", "ddev-ssh-agent"]
    # would omit the dba (phpMyAdmin) and ddev-ssh-agent containers. Currently
    # only those two containers can be omitted here.
    
    # provider: default # Currently either "default" or "pantheon"
    #
    # Many ddev commands can be extended to run tasks after the ddev command is
    # executed.
    # See https://ddev.readthedocs.io/en/stable/users/extending-commands/ for more
    # information on the commands that can be extended and the tasks you can define
    # for them. Example:
    
    
    Reviewed by phifa at 2018-12-21 22:48
  • 9. Create settings file when configuring project, fixes #692

    The Problem/Issue/Bug:

    See issue #692

    How this PR Solves The Problem:

    After writing the project config, also write a settings files via app.CreateSettingsFile()

    Manual Testing Instructions:

    Automated Testing Overview:

    Related Issue Link(s):

    #692

    Release/Deployment notes:

    • No obvious break changes come to mind.

    Remaining Tasks

    • [x] Error Messages: As discussed in the following review, there are syntax errors when attempting to output the message beginning with “Could not write settings file” for Drupal 6, 7, 8, Backdrop, and TYPO3.
    • [ ] WordPress Local Settings:
      • [ ] We need to replicate the pattern used for Drupal by defaulting to wp-config.php if it doesn’t exist and falling back to generating wp-config-local.php if #ddev-generated is not found in wp-config.php.
      • [x] We need to fix the 500 error for WP by correcting the require_once() syntax described here .
      • [ ] We need to append an inclusion of wp-config-local.php within the wp-config.php template similar to how D8 does it.
    • [x] Backdrop: We need to ensure the error message for Backdrop doesn’t state Drupal.
    • [ ] TYPO3:
      • [x] Convert Error to Warning: It's not an error to not have LocalConfiguration.php (but we should util.Warning() it.
      • [ ] If AdditionalConfiguration.php does not exist, create the typo3conf directory if it doesn't exist and add our AdditionalConfiguration.php to it.
      • [ ] If typo3conf/LocalConfiguration.php didn't already exist, util.Warning() them that they have to do an install manually.
    • [ ] Documentation: Any end-user documentation necessary to instruct users on this new workflow (@rickmanelius can address).
    • [ ] Config => Start: File an issue to address this use case where an end-user may need the settings file generated at ddev start (@rickmanelius)
    Reviewed by mglaman at 2018-02-28 11:20
  • 10. Pantheon Provider plugin

    What happened (or feature request):

    As per #216 we need pantheon integration. This PR introduces the integration.

    At this point, it is feature complete enough to take it for a test drive.

    There are three new commands which will be needed:

    • ddev config-pantheon [token] sets global configuration for talking to the pantheon API. Please see https://pantheon.io/docs/machine-tokens/ for documentation on creating a machine token.
    • ddev config pantheon extends standard ddev config to account for pantheon specific data.
    • ddev import imports from a provider. It prints an error if no external provider has been configured.

    There are also two new files which get added to the .ddev folder:

    • import.yaml - This contains pantheon provider-specific data. The goal is that all providers would use this same import.YAML (although with different fields).
    • provider.env - This is an environment file included by default in docker-compose. It includes provider specific environment variables. In the case of pantheon, Pressflow allows for various configuration options using environment variables, and those get written to provider.env.

    How to reproduce it (as minimally and precisely as possible):

    1. Deploy a new site to pantheon. Either Drupal or WordPress will do.
    2. After installation, switch the site to "git" mode and create a backup of the site.
    3. Git clone the repository.
    4. Run ddev config pantheon from the git root directory. Follow configuration prompts.
    5. Run ddev import

    Related source links or issues:

    #216 is the parent issue.

    Reviewed by beeradb at 2017-06-21 16:08
  • 11. Add option to not display result of `ddev exec`

    Is your feature request related to a problem? Please describe. I am working on adding [support for DDEV on GrumPHP (https://github.com/phpro/grumphp/pull/972/files) At the moment ddev exec outputs the command that failed to execute, either in full or in json with ddev exec -j.

    Full Output of a failing commit image JSON Output of a failing commit image

    Describe the solution you'd like I'd like a ddev exec option to not output anything, GrumPHP will be red or green anyway and that's all the verbosity that is required. Something like ddev exec --no-output COMMAND

    Describe alternatives you've considered Run git commands from inside the container, but it is not really an option because one would have to copy over ssh keys, git config (easy) and gpg keys (I don't know how to do this yet).

    Additional context Grum seems to be widely adopted. If we manage to get https://github.com/phpro/grumphp/pull/972 in a good state it would mean out-of-the-box support for DDEV. PR over there is working at the moment, though I'd 'love to improve it to run both inside and outside of ddev containers.

    Reviewed by bserem at 2022-01-13 08:33
  • 12. Make sure that errors and warnings are written to stderr

    The Problem/Issue/Bug:

    Warnings and errors are not written to stderr consistently.

    Apart from a general unpredictability, warnings can disturb automatically evaluated output.

    How this PR Solves The Problem:

    To make the output more predictable all warnings and errors, I was able to find, are now written to stderr.

    Manual Testing Instructions:

    Executing any ddev commands on the command line should still show exactly the same result.

    To test if warnings are written to stderr you can run the command outputting the error / warning to show stdout only by adding 2>/dev/null. For example ddev describe 2>/dev/null should now show a clean output.

    Automated Testing Overview:

    N/A

    Related Issue Link(s):

    This will help to improve stability when using the DDEV Integration plugin.

    Release/Deployment notes:

    Reviewed by nico-loeber at 2022-05-23 17:12
  • 13. ddev-router should only output one upstream per container port

    The Problem/Issue/Bug:

    @deviantintegral pointed out in Discord that ddev-router is creating two upstream hosts for every port, resulting in inappropriate round-robin behavior of the reverse-proxy nginx inside ddev-router. https://discord.com/channels/664580571770388500/976181828341866526

    More discussion in the PR that probably introduced this behavior inadvertently:

    • https://github.com/drud/ddev/pull/3403#issuecomment-1132892462

    Upstreams in ddev router (shown by ddev debug router-nginx-config) show both of the IP addresses (for the two networks that the container belongs to), resulting in inappropriate round-robin behavior, as if there were actually two different containers out there:

            upstream d7.ddev.site-80 {
            keepalive 100;
                # Container=ddev-d7-web 172.21.0.5:80
                server ddev-d7-web:80;
                # Container=ddev-d7-web 172.19.0.8:80
                server ddev-d7-web:80;
            }
    

    Instead, with this PR, the upstream definitions show only the ddev_default network IP address:

            upstream d7.ddev.site-80 {
            keepalive 100;
                # Container=ddev-d7-web 172.19.0.8:80
                server ddev-d7-web:80;
            }
    

    How this PR Solves The Problem:

    Only evaluate the network named ddev_default

    Manual Testing Instructions:

    ddev poweroff && ddev start Review ddev debug router-nginx-config

    Automated Testing Overview:

    I think this is OK as long as it passes existing tests.

    Reviewed by rfay at 2022-05-22 18:15
  • 14. Web container depends on db container, fixes #3702

    The Problem/Issue/Bug:

    • #3702

    Web container should depend on db container readiness unless omit_containers

    How this PR Solves The Problem:

    This adds a depends_on for the web container if no omit db

    Manual Testing Instructions:

    Start a ddev in a new project, look in the .ddev-docker-compose-full.yamlfile

    Automated Testing Overview:

    No tests added

    Related Issue Link(s):

    #3702

    Release/Deployment notes:

    N/A

    Reviewed by mikebarkas at 2022-05-20 20:13
  • 15. Add PATH_INFO CGI variable to nginx configuration

    Is there an existing issue for this?

    • [X] I have searched the existing issues

    Run a Diagnostic and Paste Link Here

    No response

    Current Behavior

    When using SimpleSAMLphp inside a ddev project with nginx, it crashes because it cannot find the $_SERVER['PATH_INFO'] variable, which is expected to be set. This is documented at https://simplesamlphp.org/docs/1.17/simplesamlphp-install#configuring-nginx

    Expected Behavior

    The PATH_INFO variable should be passed from nginx to PHP.

    This should just be a case of adding the following line to the .php location block:

    fastcgi_param PATH_INFO $fastcgi_path_info;
    

    I don't think adding this will harm any other projects using DDEV.

    Steps To Reproduce

    No response

    Anything else?

    No response

    Reviewed by longwave at 2022-05-20 11:32
  • 16. Extend available profilers with SPX profiler

    Is there an existing issue for this?

    • [X] I have searched the existing issues

    Is your feature request related to a problem? Please describe

    Currently there are options to profile the web application with XHprof, XDebug and Blackfire (possibly New Relic with some tutorials seen here in issues). Would it be possible to add SPX profiler, which is something between XHprof and XDebug? Installing it locally is easy, but I can't get it to work through Dockerfile. Main advantage (for me) compared to XHprof is easier to understand GUI, timeline and highlighting function in it.

    https://github.com/NoiseByNorthwest/php-spx

    Describe the solution you'd like

    Have the spx.so precompiled and ready to use, be able to run ddev spx on and open the dashboard on project.ddev.site/spx

    Describe alternatives you've considered

    No response

    Additional context

    No response

    Reviewed by morvy at 2022-05-19 11:06
  • 17. Colima/Lima 9p mounting support

    Is there an existing issue for this?

    • [X] I have searched the existing issues

    Run a Diagnostic and Paste Link Here

    No response

    Current Behavior

    Colima has released support for Lima with 9p mounting instead of sshfs. This should be a win for reliability of in-container mounts. However, 9p doesn't support symlinks on the host... and it certainly doesn't work yet with ddev.

    • Postgres doesn't work:
    postgres: could not access the server configuration file "/etc/postgresql/postgresql.conf": No such file or directory
    
    • MariaDB import-db doesn't work:
    $ ddev import-db --src=.tarballs/db.sql.gz
    pv: /mnt/ddev_config/.importdb3908252741/*.*sql: No such file or directory
    Failed to import database db for d7: failed to import database: exit status 10
    stdout:
    stderr:
    

    Expected Behavior

    Would like it to work

    Steps To Reproduce

    No response

    Anything else?

    No response

    Reviewed by rfay at 2022-05-16 01:12
Full PHP development environment for Docker.
Full PHP development environment for Docker.

Full PHP development environment based on Docker. Use Docker First - Learn About It Later! Join Us Awesome People Laradock is an MIT-licensed open sou

May 23, 2022
Blazing fast macOS PHP development environment
Blazing fast macOS PHP development environment

Introduction Valet+ is a development environment for macOS. No Vagrant, no Docker, no /etc/hosts file. Go here for the valet+ documentation. Credits T

May 24, 2022
Valet WSL is an advanced development environment for Windows Subsystem for Linux
Valet WSL is an advanced development environment for Windows Subsystem for Linux

Introduction Valet WSL is an advanced development environment for Windows Subsystem for Linux. No Vagrant, no hosts file manual management. You can ev

Mar 24, 2022
A modern Docker LAMP stack and MEAN stack for local development
A modern Docker LAMP stack and MEAN stack for local development

The Devilbox Usage | Architecture | Community | Features | Intranet | Screenshots | Contributing | Logos | License Support for valid https out of the

May 26, 2022
Oxygen Builder's better workflow and environment

Oxygen Builder's better workflow and environment Built with ❤️ Official Website | Documentation | Change Log Supporting Artifact is an open source pro

Mar 27, 2022
Shopware 6 app boilerplate + Symfony backend + Dockware docker dev environment 💙

Shopware 6 app boilerplate with Symfony backend This boilerplate template can be used to get up and running with a docker-based dev setup for Shopware

Nov 14, 2021
This is a dockerized environment for testing and developing things on the fatfree-core.
This is a dockerized environment for testing and developing things on the fatfree-core.

F3 development bench This is a dockerized environment for testing and developing things on the fatfree-core. It uses Docker to spin up multiple contai

Mar 29, 2022
Vagrant is a tool for building and distributing development environments.

Vagrant Website: https://www.vagrantup.com/ Source: https://github.com/hashicorp/vagrant HashiCorp Discuss: https://discuss.hashicorp.com/c/vagrant/24

May 20, 2022
A development tool for all your projects that is fast, easy, powerful and liberating
A development tool for all your projects that is fast, easy, powerful and liberating

Lando A Liberating Dev Tool For All Your Projects The local development and DevOps tool trusted by professional developers across the galaxy. Free you

May 25, 2022
🎲Neard is a portable WAMP software stack involving useful binaries, tools and applications for your web development.
🎲Neard is a portable WAMP software stack involving useful binaries, tools and applications for your web development.

About Neard is a portable WAMP software stack involving useful binaries, tools and applications for your web development. It also offers several versi

May 11, 2022
Docker Containers for simple Laravel development.
Docker Containers for simple Laravel development.

Docker containers of Laravel development. Docker Containers for simple Laravel development. Prerequisites This package only works for Linux users righ

May 19, 2022
Docker-based workflow management system for Laravel

DevOption Workflows Workflows is a Docker-based workflow management system for Laravel applications. Installation You can install the package via comp

Jan 5, 2022
Brew PHP switcher is a simple shell script to switch your apache and CLI quickly between major versions of PHP
Brew PHP switcher is a simple shell script to switch your apache and CLI quickly between major versions of PHP

Brew PHP switcher is a simple shell script to switch your apache and CLI quickly between major versions of PHP. If you support multiple products/projects that are built using either brand new or old legacy PHP functionality. For users of Homebrew (or brew for short) currently only.

May 23, 2022
Phansible - generate Vagrant + Ansible dev environments for PHP

Phansible Phansible is a simple generator for Vagrant projects, targeting PHP development environments, using Ansible as Provisioner. It was inspired

May 14, 2022
Monitor for any changes in your php application and automatically restart it (suitable for async apps).
Monitor for any changes in your php application and automatically restart it (suitable for async apps).

PHP-watcher PHP-watcher helps develop long-running PHP applications by automatically restarting them when file changes in the directory are detected.

May 13, 2022
Laravel 5 with Dockerized Gulp, PHP-FPM, MySQL and nginx using docker-compose

docker-laravel Laravel 5 with Dockerized PHP-FPM, MySQL and nginx using docker-compose Usage Get Composer docker-compose run --rm phpnginx curl -O htt

Feb 8, 2022
Docker with PHP 7.4 fpm, Nginx, Composer, PhpUnit and MaridaDB

Clean Docker with PHP Docker with PHP 7.4 fpm, Nginx, Composer, PhpUnit and MariaDB Starting app docker-compose up -d Main page

Apr 26, 2022
Runs a PHP-based startpage in Docker
Runs a PHP-based startpage in Docker

docker-php-startpage Runs a PHP-based startpage in Docker Source code: GitHub Docker container: Docker Hub Image base: PHP Init system: N/A Applicatio

May 15, 2022
Lamp Docker skeleton PHP + Nginx + Mysql + Redis

Stop installing the entire development stack on your local machine. This project will allow you to quickly start working with php. To install, you need to install docker locally.

May 2, 2022