Installation Instructions


ExpressionEngine is installed in six steps.

Please Note:
We can perform the installation if you would prefer to not do it yourself. For more information please visit pMachine Services.

Running the installation script will overwrite any existing ExpressionEngine information you may have in your database, including entries, Template changes, and settings. It will effectively "reset" your installation.

Do not run this installation routine if you need to update your copy of ExpressionEngine. Instead, use one of the sets of upgrade instructions:

If you are installing the Trial Version of ExpressionEngine, please follow the installation instructions for the Trial Version.

Step 1

Get Your Settings

In order to install ExpressionEngine you will need to know 4 pieces of information. If you do not know what they are, please contact your hosting provider and ask them.

  1. MySQL Database Name
  2. MySQL Server Address (often "localhost" or the server IP address)
  3. MySQL Username
  4. MySQL Password

Note: You will need to either create your database or have an existing database before running the ExpressionEngine installation. This can usually be done either using something such as phpMyAdmin or through your web hosting account control panel.

Step 2

Rename the "system" folder

This is an optional, but recommended step that increases security by keeping the directory containing your ExpressionEngine backend files hidden from public access.

To perform this step: Rename the directory called system. Choose a name that is not easily guessed.

Step 3

Upload the Files

Using an FTP program such as WS_FTP, Transmit, Fetch, etc. upload the ExpressionEngine files to your server. Image files should be uploaded in Binary format and all other files should be uploaded in ASCII (sometimes called "text") format.

Do not upload the following file and directory; they are only used for people performing an update from a previous version:

Step 4

Set File Permissions

If you are hosted on a Windows server, skip this step.

If you are using a Unix server you must set the following files to 666

You must set the following directories to 777

Step 5

Choose the Look of Your Weblog

Browse our template library and choose your favorite one. Make a note of the ID number. You will need it in Step 6.

Browse the ExpressionEngine Template Library

Step 6

Run the Installation Wizard

If you have performed the above steps and you are ready to install ExpressionEngine, point your browser the file called install.php, which resides in your main ExpressionEngine directory.

Language Packs

There are additional Language Packs available at the main ExpressionEngine site.


"No Input File Specified"

If you are hosted on a Windows server and you get the following message while trying to navigate your site:

No Input File Specified

You will need to go to Output Preferences within the Control Panel and set the "Force Query String" preference to "yes".

Running PHP as CGI

People using servers that run PHP as a CGI process tend to encounter more difficulties than those with servers running PHP as a web server module. Here are some additional things you can try.

Typically, these tips will not apply to people on servers running PHP as a web server module. Usually, they only apply to people on servers running PHP as a CGI process and even then not every user will need to do any of these.

Add "shebangs"

This tip will only apply to some people on web servers running PHP as a CGI process. Please consult your Host or server admin to determine if you will need to perform this.

On some servers, you will need to add a "shebang" line to two files in order to have ExpressionEngine work. The actual syntax of the line can vary from server to server, so be sure to consult your Host or server admin for the correct syntax.

In the following two files:

  1. index.php
  2. system/index.php
You will need to add the following "shebang" line immediately before the opening PHP code. The top of your files will look like:


File Permissions

Some "PHP as CGI" servers automatically set uploaded files so that they do not have permission to "execute", which can cause problems with ExpressionEngine. Make sure that all of your .php files are set to 755 (except those that are specifically mentioned as having other permissions in the instructions above).

HTTP Headers

Some "PHP as CGI" servers also do not like it if ExpressionEngine explicitly sends its own HTTP Headers. Try going into General Configuration and turn the "Generate HTTP Page Headers?" setting to "No".

If you cannot log into the Control Panel, then you will need to manually change the setting inside your system/config.php file:

$conf['send_headers'] = "n";