Install ExpressionEngine on Debian 8

In this tutorial we will show you how to install ExpressionEngine on a Debian 8 VPS.

ExpressionEngine is a content management system which is written in object-oriented PHP and is using MySQL for data storage.

Although ExpressionEngine is a commercial product, it has a free “core” version available for personal and non-profit websites.

According to the company that created ExpressionEngine (EllisLab), currently thousands of web sites are powered using ExpressionEngine, from business sites, to online magazines, to personal blogs.

Sites that are built with ExpressionEngine use a number of custom channels, usually each containing a number of different fields. Channels typically represent different types of information, so you might have a channel for single pages, blog posts, products, job vacancies, and so on.

When you add content to your site using ExpressionEngine’s Control Panel, it will be stored in a database. When someone visits your web site, your content is retrieved from the database, formatted visually based on your markup, and presented to them. ExpressionEngine is a dynamic system since it generates your web site in real time for each user visiting it.

For more information about this software, please visit the official user-guide.

The minimum system requirements that need to be fulfilled so ExpressionEngine can run on your server are:

For further info on the system requirements please visit this page.

We assume that you already have Apache, MySQL and PHP installed and configured on your Debian 8 VPS. If that is not the case, you can follow our excellent tutorial and install the LAMP stack easily.

Now that we covered everything in our pre-installation summary, let’s continue with the actual installation.


# ssh root@server_ip

You can check whether you have the proper Debian version installed on your server with the following command:

# lsb_release -a

You should get this output:

Distributor ID: Debian
Description: Debian GNU/Linux 8.1 (jessie)
Release: 8.1
Codename: jessie


Make sure your server is fully up to date using:

# apt-get update && apt-get upgrade


For the purpose of this tutorial we used the free, feature-limited ExpressionEngine Core version of the product. At the time of writing this article, the latest EE version is 2.10.1 . Therefore, you need to sign up for an account with EllisLab at: https://store.ellislab.com/manage and then download the free version from their store.

Once the download finishes, you need to upload the zip file into your server.

We uploaded the file into a directory of our choice, but feel free to either follow our steps or create a directory to your liking and upload the installation there.

First, create the directory in which the EE installation will be uploaded:

# mkdir /var/www/html/eengine/

Then after the upload is finished, unzip the archive:

# cd /var/www/html/eengine/
# unzip ExpressionEngine_Core2.10.1.zip

Set the proper permissions in order to continue with the installation:

# chmod 666 system/expressionengine/config/config.php
# chmod 666 system/expressionengine/config/database.php
# chmod 777 system/expressionengine/cache/
# chmod 777 images/avatars/uploads/
# chmod 777 images/captchas/
# chmod 777 images/member_photos/
# chmod 777 images/pm_attachments/
# chmod 777 images/signature_attachments/
# chmod 777 images/uploads/

Our next step is to create the database needed. Log into your MySQL server as root (# mysql -u root -p) and execute the following commands:

mysql> create database eengine;

mysql> grant all privileges on eengine.* to euser@localhost identified by 'your_password';

mysql> flush privileges;

mysql> exit

Now that the database is created, you should create a virtual host directive for the domain that you will map to the ExpressionEngine installation.

Open a new configuration file:

# vim /etc/apache2/sites-available/your-domain.conf

Paste the following:

<VirtualHost *:80>
ServerAdmin admin@your-domain.com
DocumentRoot /var/www/html/eengine/
ServerName your-domain.com
ServerAlias www.your-domain.com
<Directory /var/www/html/eengine/>
Options FollowSymLinks
AllowOverride All
ErrorLog /var/log/apache2/your-domain.com-error_log
CustomLog /var/log/apache2/your-domain.com-access_log common

Don’t forget to change the your-domain values with your actual domain.

Enable the configuration file:

# a2ensite your-domain.conf

Restart Apache for the changes to take effect:

# systemctl restart apache2.service

Set the proper file ownership:

# chown -R www-data /var/www/html/eengine/

Next, open your favorite web browser and navigate to http://your-domain/admin.php to run the installation wizard. Follow the on-screen instructions to finish the installation of ExpressionEngine.

Please note that during the installation if you choose the None – Empty Installation Site Theme, your website’s homepage will appear blank because no templates or content has been created yet.

Once you finish the wizard you will be welcomed with the following page:


As you can see, you need to remove the system/installer/ directory from your server. Therefore, execute the following command:

# rm -rf /var/www/html/eengine/system/installer/

Congratulations. You have successfully installed ExpressionEngine on your Debian 8 VPS.

Of course you don’t have to do any of this if you use one of our Linux VPS Hosting services, in which case you can simply ask our expert Linux admins to install ExpressionEngine for you. They are available 24×7 and will take care of your request immediately.

PS. If you liked this post please share it with your friends on the social networks using the buttons on the left or simply leave a reply below. Thanks.

Categories: Tutorials