You can now run different PHP versions per project: Release v3.0.0-beta-0.1


Find common questions and answers here.

Table of Contents


Why are mounted MySQL data directories separated by version?

This is just a pre-caution. Imagine they would link to the same datadir. You start the Devilbox with mysql 5.5, create a database and add some data. Now you decide to switch to mysql 5.7 and restart the devilbox. The newer mysql version will probably upgrade the data leaving it unable to start with older mysql versions.

Why do the user/group permissions of log/ or cfg/ directories show 1000?

Uid and Gid are set to 1000 by default. You can alter them to match the uid/gid of your current user. Open the .env file and change the sections NEW_UID and NEW_GID. When you start up the devilbox, the PHP container will use these values for its user.

See also


Can I not just comment out the service in the .env file?

No, don’t do this. This will lead to unexpected behaviour (different versions will be loaded). The .env file allows you to configure the devilbox, but not to start services selectively.

Are there any required services that must/will always be started?

Yes. http and php will automatically always be started (due to dependencies inside docker-compose.yml) if you specify them or not.

What PHP Modules are available?

The Devilbox is a development stack, so it is made sure that a lot of PHP modules are available out of the box in order to work with many different frameworks.

Available PHP modules can be seen at the PHP Docker image repository.


Can I change the MySQL root password?

Yes, you can change the password of the MySQL root user. If you do so, you must also set the new password in your .env file. See MYSQL_ROOT_PASSWORD for how to change this value.

Can I change php.ini?

Yes, php.ini directives can be changed for each PHP version separately. See php.ini

Can I change my.cnf?

Yes, my.cnf directives can be changed for each MySQL version separately. See my.cnf

Can I change the project virtual host domain .loc?

Yes, the .env variable TLD_SUFFIX can be changed to whatever domain or subdomain you want. See TLD_SUFFIX.


Be aware not to use dev or localhost. See TLD_SUFFIX for more details. Also do not use any official domain TLDs such as com, net, org, etc.

Can I just start PHP and MySQL instead of all container?

Yes, every Docker container is optional. The Devilbox allows for selective startup. See Start the Devilbox.

Do I always have to edit /etc/hosts for new projects?

You need a valid DNS entry for every project that points to the Httpd server. As those records don’t exists by default, you will have to create them. However, the Devilbox has a bundled DNS server that can automate this for you. The only thing you have to do for that to work is to add this DNS server’s IP address to your /etc/resolv.conf. See Setup Auto DNS for detailed instructions.