✅ Setup Checklist
If you're having difficulty getting Directus up-and-running, this setup checklist will help troubleshoot and diagnose issues. Follow each step, in order, and you should be good to go!
This checklist applies to the OS-level requirements for your Directus server. If you are installing Directus using any of the other installation methods outlined here, you will need to examine your container image (or other system configuration) to ensure these requirements are met.
Check your Server Requirements — Ensure that your server meets the minimum Directus requirements:
- Apache 2
- PHP 7.1+
- MySQL 5.7+
Check the enabled PHP Extensions on your server — Ensure that your server has the following PHP extensions enabled:
.htaccessfiles? — We'll include some notes in more detail to walk you through checking this in your Apache configuration file soon (tip: you can review this guide on setting up
Is the root directory of the Directus API set to the
/publicdirectory? - More on verifying this soon.
Is the directory ownership set to the web server configured user? - Usually the user is
www-data. You can change the ownership of a directory (cascading) using this command:
# sudo permissions required # # the -R flag indicates recursive execution of this change (all contents within the directory will also be changed) # # www-data:www-data means the user AND group owners will be set to www-data i.e. <user>:<group> # # /var/www/api is our example directory sudo chown -R www-data:www-data /var/www/api
Do the following folders have write permission?
/public/uploads(or your configured upload directory)
Are you using the latest release of Directus?
Did you run the migration script? This is especially important if you have upgraded from a previous version. You can run this from the App by navigating to: Settings > Update Database. Or run it directly with our CLI or API Endpoint.
Did you install or create the API configuration file?
Did you install or create the App configuration file?
Did you get
pongresponse from the
Are you using the correct API project URL? More guidance on verifying this soon.
Did you check your logs?
- Directus Logs
- Apache logs
- PHP logs
- MySQL logs
Did you check GitHub for an open issue similar to yours?
Docker and Containers
If you are a docker ninja, feel free to skip this explainer
If you're taking a stab at rolling your own image from the source code for a bespoke use case, here's a brief explainer along with our best wishes (to all explorers & tinkerers out there 🚀🍻 - do share your journey and any lessons with us)
So what is Docker, anyway?
Your docker (or Kubernetes) images are made of the same "stuff" as a UNIX based OS environment, just packaged in a container. Docker - and other containerization frameworks are simply faster, meaner virtualization paradigms (think evolution of VMs from of old).
The building blocks for a dockerized implementation are containers, and the raw material those are "made of" are your images. At the image level, these tips will also apply to your docker image composition.
If your use case involves using Directus both for your website and as a headless CMS, then you would likely need to deploy both docker images (app & API) as co-dependent containers in your system. You are able to do this with fancy tech like Docker Compose which gives you Kubenetes-ish levels of cool with standing up all the containers you need in one
docker-compose up command from your project root.
In summary (about containers)
If you are implementing a solution for a client or an enterprise, you want to take a look at containers, especially if said client is familiar with modern virtualization technology. It could greatly simpify your speed to market with you brand new Directus CMS.
If all of the above fails, you should: