Installing by manual upload (FTP)

This method of installing is less than ideal, as you'll be in charge of replacing the correct files in order to update the platform.

Shared hosts

If you're trying to install and use Directus on a shared host, please read the notes on shared hosts below the instructions.

Step 1: Make sure requirements are met

Directus requires PHP and MySQL to run properly. That means that a wide variety of webservers, operating systems, and versions are able to run Directus. That being said, we can't promise that Directus will run smoothly in every possible combination of environments. Therefore, we only officially support LAMP stacks.

Software Minimum version
Linux Ubuntu 18.04
Apache 2.4
MySQL 5.7+
PHP 7.2+

PHP Extensions

The following PHP extensions (typically enabled by default) are also required: pdo, mysql, curl, gd, fileinfo, mbstring, and xml.

MariaDB

While not officially supported, users have reported success installing Directus on MariaDB 10.2+.

HTTPS

You are required to run Directus using HTTPS.

Step 2: Download a copy of Directus

Head over to the releases page of Directus and download a copy of the source code by clicking "Source code (zip)" under Assets.

Example release

Step 3: Unzip and upload the source files to your server

Upload the files to /var/www/directus. This path is not required, but is used in the following steps. If you use another path, make sure to follow that in steps below.

Step 4: Configure Apache

Enable mod_rewrite

Run the following command:

a2enmod rewrite

Point Apache to Directus' public folder

Make sure the DocumentRoot in your Apache configration points to the public folder in Directus, located at /var/www/directus/public. You can use the following Apache config as a starting point:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/directus/public

        <Directory /var/www/directus/public/>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        <IfModule mod_dir.c>
            DirectoryIndex index.php index.pl index.cgi index.html index.xhtml index.htm
        </IfModule>
</VirtualHost>

On most servers, the default Apache configuration file is located at /etc/apache2/sites-available/000-default.conf. If you're planning on hosting multiple projects on this server, we recommend setting up separate Virtual Hosts for each project. To learn more about that, we recommend reading this article: How To Set Up Apache Virtual Hosts on Ubuntu 16.04.

TIP

Don't forget to restart Apache after making any changes to its configuration!

Step 5: Set read / write permissions

Directus needs to be able to write to a certain number of places, mainly the logs, public, and config directories. Make sure that your PHP user is able to read and write to these locations.

On most LAMP stacks, you can change the owner of the files to www-data to ensure the correct permissions are met:

sudo chown -R www-data:www-data /var/www/directus

Step 6: Setup a database and user in MySQL

While you can technically use the root MySQL user for Directus, we strongly recommend creating a separate user that only has access to the database that Directus will use.

To learn how to do this, we recommend the following article: How To Create a New User and Grant Permissions in MySQL.

Step 7: Install your first project

Open Directus in the browser. It should take you straight to the installation wizard. If you were following along with the steps above, Directus will be located at http://<ip-address>/.

A Note on Shared Hosts

If you're using a shared host without direct server access, you'll have two things to take into account:

You won't be able to set a domain for Directus

Most shared hosts serve whatever is in your folder structure. That means that Directus will most likely run under http://<domain>/directus/public/. You can not change this.

Private files might be publicly accessible

Normally, we'd instruct you to set the document root to the public folder of Directus. This makes sure files that are meant to stay private will never be accessible over the internet. There is no such guarantee when using a shared host with a different document root. Please make sure to prevent unauthorized access to the config and logs folder in whatever way is possible through your shared host.

Troubleshooting

If you run into any issues with the above steps, please follow our troubleshooting guide.