The user selected packages are saved into composer.json so that everyone else working on the project have the same packages installed. Configuration files and templates are prepared for first use. The installer command is removed from composer.json after setup succeeded, and all installer related files are removed.
Composer commands time out after 300 seconds (5 minutes). On Linux-based systems, the php -S command that composer serve spawns continues running as a background process, but on other systems halts when the timeout occurs.
If you want the server to live longer, you can use the COMPOSER_PROCESS_TIMEOUT environment variable when executing composer serve to extend the timeout. As an example, the following will extend it to a full day:
$ COMPOSER_PROCESS_TIMEOUT=86400 composer serve
Troubleshooting
If the installer fails during the composer create-project phase, please go through the following list before opening a new issue. Most issues we have seen so far can be solved by self-update and clear-cache.
Be sure to work with the latest version of composer by running composer self-update.
Try clearing Composer's cache by running composer clear-cache.
If neither of the above help, you might face more serious issues:
This section applies only if you cloned this repo with git clone, not when you installed expressive with composer create-project ....
If you want to run tests against the installer, you need to clone this repo and setup all dependencies with composer. Make sure you prevent composer running scripts with --no-scripts, otherwise it will remove the installer and all tests.
$ composer install --no-scripts
$ composer test
Please note that the installer tests remove installed config files and templates before and after running the tests.