How to install Backdrop CMS

 If you're looking to install Backdrop from the command line, see our advanced instructions.

  1. Download Backdrop and extract the files

    Backdrop can be downloaded from our home page or from the Github releases page.

    Once downloaded, most computers can extract the files with a double-click. On nix systems you may need to use the unzip command.

    Make sure that the files are placed in a functional webroot, you will need to access the website with a browser for step 3.

  2. Create the MySQL database

    Backdrop needs both a database, and a database user in order to be installed. Both these things can be created using a browser-based control panel like PHPMyAdmin or cPanel, or directly from the command line.

    Create a database, and make a note of the database name and hostname (usually localhost).

    Create a database user, and make a note of the username and password. Grant this new user ALL privileges on the database just created.

    GRANT ALL ON databasename.* TO 'username'@'localhost' IDENTIFIED BY 'password';

  3. Run the installer

    To run the Backdrop install script, point your browser to the base URL of your web site (for example, http://localhost or http://www.example.com).

    If the installation process does not appear, add install.php to the end of your site's URL (for example, http://localhost/install.php or http://www.example.com/install.php).

    The installer will guide you through several questions:

     

    1. Choose language

      If you want to install using a language other than English, click the Learn how to install Backdrop in other languages link.

    2. (hidden) Choose profile

      In most cases, the standard profile is optimal so this question will be skipped. When installing a special distribution of Backdrop you may be asked to select that option on this step.

    3. Verify requirements

      If your installation directory is not configured properly, you'll be informed on this page. Correct each problem, and either refresh the browser window or click 'Proceed with the installation' to see if there are any other errors.

    4. Set up database

      Enter the database name, the username, and password that you noted in Step 2. Note that this is not the username and password for your Backdrop site; those will be created in the next step.

    5. Installing Backdrop

      A progress bar will appear and display updates regarding the progress of the installation. If no errors are encountered, the next page will automatically load in your browser.

    6. Set site info & main account

      Provide basic settings like your site name and logo. Also supply information for the first user account (this account will be assigned full administration permissions)

  4. After the installation is complete, you will be redirected to your site's home page.

Troubleshooting / Additional steps

  • Manually update the settings.php file

    In most cases, Backdrop will update this file for you automatically. If it is not able to, you may need to update it manually.

    Open the settings.php file in a text editor. At the top of the file you will see a database connection information in the form
    $database = 'mysql://user:pass@localhost/database_name';

    1. Replace the user:pass segment of the connection string with the database username and password from step 2.

    2. Replace the localhost/backdrop segment of the connection string with the hostname and database name from step 2.

      When you are finished, your connection string should resemble the following:
      $database = 'mysql://backdrop:backdrop01@localhost/backdropdb';

    3. Save the file, and return to step 3.

    After the installation is complete, you may want to confirm that the permissions on the settings.php file is write-protected. Important: Failing to remove write permissions to the settings.php file is a security risk.

  • Set the permissions/ownership on the files directory

    The files directory in the Backdrop root must be writable by the webserver.

    If the user who logs into the server (either by ftp or ssh) is myuser and the webserver user is www-data then sensible ownership and permissions for the files directory could be:

    drwxrwx--- 13 myuser www-data 442B Nov 5 18:38 files

    You can achieve this configuration either in your FTP client or on the command line with commands like this: 

    chown -R myuser:www-data files && chmod -R 770 files

    Note: you may need sudo depending on the access of the user who owns the directory.