Updating ExpressionEngine 2¶
This page describes the process for updating from a previous version of ExpressionEngine 2 to the latest version of ExpressionEngine 2.
Important
If you are upgrading from ExpressionEngine 1.x use the Upgrading from 1.x to ExpressionEngine 2.x instructions.
1. Prepare and Back-up¶
- Back-up your ExpressionEngine database.
- Back-up all ExpressionEngine files and folders.
- Download the most recent release of ExpressionEngine and unzip the software to your local computer.
- Take Your Site Offline:
It is recommended that you take your site offline for the duration of
the update so that people visiting your site won’t see any PHP errors
or other anomalies that may occur while you are uploading files. Here
is one approach:
- Copy system/expressionengine/utilities/offline.html to your web root folder (the same place you have your main index.php file).
- Rename offline.html to index.html. Now your visitors will see the “offline” page while you update your site.
- In your ExpressionEngine Control Panel, go to Tools ‣ Data ‣ Clear Caching. Select All Caches and click Submit.
2. Upload New Files¶
Using an FTP program such as WS_FTP, SmartFTP, Transmit or Fetch, replace the following files and folders on your server with their new versions:
- admin.php
- index.php
- system/
- themes/
3. Restore Modified Files¶
Files and settings that are specific to your site should now be restored from the backup you made in Step 1.
- Restore any modifications made to the following files, such as
updating the system folder name or path:
- admin.php
- index.php
If you are using the Multiple Site Manager, the same should be done for each MSM site’s index.php and/or admin.php file.
- Restore the following files from your backup:
- system/expressionengine/config/config.php
- system/expressionengine/config/database.php
- Restore the following folders from your backup:
- system/expressionengine/language/ (if you are using a language pack or previously modified the English language files)
- system/expressionengine/third_party/
- system/expressionengine/templates/
- themes/third_party/ (if it exists, and any additional third-party theme folders you had previously)
4. Verify File Permissions¶
The following permissions are typical for UNIX-based hosts. You may want to check with your host to see if more restrictive permissions can be used to allow PHP to write to files (666) and folders (777). On Windows servers the following will not apply, but you will need to ensure that the files and folders are writable by ExpressionEngine. You may need to contact your host for this.
- Set the following files to 666:
- system/expressionengine/config/config.php
- system/expressionengine/config/database.php
- Set the following folders to 777:
- system/expressionengine/cache/ (and subfolders)
5. Run The Update Wizard¶
- Point your browser to the URL of your admin.php file. For example: http://example.com/admin.php
- Follow the on-screen instructions to update ExpressionEngine.
- Once the Update Wizard is finished, remove the following folder from
your server:
- system/installer/
6. Update Add-ons¶
- If the Discussion Forum or Multiple Site Manager are installed, these need to be updated at this time:
- Update any third-party add-ons by following the update instructions for each add-on.
7. Additional Steps¶
Please review the following to determine if any additional steps need to be taken:
- If you took your site offline in step 1 above, remove the offline file that was added to your web root.
- The Version Notes will outline any version-specific changes that may need to be made.
- If you’re updating from a previous version, you might need to sync your file upload directories for files to work properly.
You’re Done!¶
ExpressionEngine is now fully updated.

User Contributed Notes
If you’ve replaced the default system/expressionengine/config/config.php file with, say, a bootstrap config that’s in a totally separate file then you may get into problems while upgrading, e.g. when I was going from 2.5.3 to 2.5.5 it was trying to write to the config file but could not, so it would keep looping.
I added
$config['app_version'] = "";to it manually so it could update the config.php, but my bootstrap still had a different value and so… it would keep looping. Changing it there allowed it to proceed from 2.5.4 to 2.5.5, but it stayed stuck in a loop. I checked the database against the changes the update files were created to make, all those adjustments had been made so I stepped up the version number in my bootstrap to 255 and finally installation was successful.
Who knows what else it would try to use the config.php for.
If you find your upgrade process looping indefinitely (showing the same version number repeatedly), try disabling your browser’s cache.
Just do yourself a favor and instead of this entire process, just purchase DevDemon’s ridiculously helpful Updater add-on (@ DevDemon / Devot:ee) and have it all done for you (I’m in no way affiliated with them - just a rabid fan). Of course, be responsible and test things before you apply them to anything important. :p
Also, don’t forget to re-install the latest version of the Multiple Sites Manager (MSM)!
http://ellislab.com/expressionengine/user-guide/cp/sites/install.html
don’t forget (like me… as I followed the instructions step by step) to put the system back online after you have finished. Because you are logged in as a super admin, you may be fooled into thinking that you are finished - but those who are not logged in will still see that your site is down until you bring it back online.
Giovanni, Yes you upload the installer directory, it’s not mentioned as it’s within the system directory and therefore doesn’t require to be stated. [Renaming the system directory of course.]
Should one be uploading the Installer Dir. or not? Confusing instructions, as there non mention of having to Upload the Installer Dir in the earlier instructions of the files/dir to upload…..
You must either have an EllisLab product license and have attained a forum rank of "Lab Assistant" (50 posts) to contribute notes to the User Guide