ExpressionEngine® User Guide

Legacy Documentation

You are using the documentation for version 4.3.8. Go here for the latest version.

Installing ExpressionEngine


If you need to update your installation from an earlier version, see the Update Instructions instead.

Before getting started, make sure your web host and your browser meet all the System Requirements to run ExpressionEngine.

1. Prep the Database

You’ll need an empty database and the following credentials handy to install ExpressionEngine. If you’re not sure how to create a new database or find this information, ask your web host.

  • MySQL Database Name
  • MySQL Server Address (often or localhost or the server IP address)
  • MySQL Username
  • MySQL Password

2. Upload the Files

After purchasing ExpressionEngine, download it from your account (or grab a copy of the free, feature-limited ExpressionEngine Core), and unzip the files to a folder on your computer. Then use your favorite FTP client to upload the files to a publicly-accessible directory on your server.

3. Set File Permissions

You need to enable write access to the following files and folders.

For Apache, that would be 666 for files and 777 for directories, in a worst-case scenario. You should check with your web host to see if more restrictive permissions can be used to allow PHP to write to files and directories. See File Permissions for details.

For IIS, provide all permissions to the IIS user for these files and directories.

  • system/ee/
  • system/ee/* (only top-level files and directories need modifying)
  • system/user/config/config.php
  • system/user/cache/
  • system/user/templates/
  • images/avatars/
  • images/captchas/
  • images/member_photos/
  • images/pm_attachments/
  • images/signature_attachments/
  • images/uploads/
  • themes/ee/
  • themes/ee/* (only top-level files and directories need modifying)
  • themes/user/


On a Unix based system, you can use the following pattern to set permissions recursively to what you need for folders and files. In this example, we are setting all directories in system/ee to 755 and all files therein to 644, recursively:

find system/ee \( -type d -exec chmod 755 {} \; \) -o \( -type f -exec chmod 644 {} \; \)

4. Run The Installation Wizard

  1. Point your browser to the URL of the admin.php file you uploaded. For example:

  2. Follow the on-screen instructions to install ExpressionEngine.


    If you choose not to install the default theme, your site’s homepage will appear blank because no templates or content has been created yet.

  3. Once the Installation Wizard is finished, you should rename or remove the system/ee/installer/ directory from your server.

Welcome to ExpressionEngine!

You can now log in to your Control Panel at!

If you’re new to ExpressionEngine, get started with the classic Hello, World! example.

Post-Installation Best Practices

Once you are confident that ExpressionEngine is working normally on your server, we recommend a few best practices for protecting your installation against common security risks.