Install ExpressionEngine on Debian

Install ExpressionEngine on Debian 8

In this tutorial we will show you how to install ExpressionEngine on Debian 8. 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:

  • PHP 5.3.10 or newer, compiled with the GD (or GD 2) library
  • PHP 5.3.10 can also be read as five-point-three-point-ten. That means 5.3.10 is greater than 5.3.1, 5.3.2, 5.3.3, and all the way up to 5.3.9.
  • MySQL 5.0.3 or newer
  • At least 32 MB memory allocated to PHP
  • At least 10 MB of available disk space for the ExpressionEngine software and modules
  • At least 2 MB of database space

Check out further info on the system requirements.

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 ExpressionEngine here and then download the the latest version of ExpressionEngine.

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

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>
DocumentRoot /var/www/html/eengine/
<Directory /var/www/html/eengine/>
Options FollowSymLinks
AllowOverride All
ErrorLog /var/log/apache2/
CustomLog /var/log/apache2/ 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:

Need a fast and easy fix?
✔ Unlimited Managed Support
✔ Supports Your Software
✔ 2 CPU Cores
✔ 2 GB RAM
✔ 50 GB PCIe4 NVMe Disk
✔ 1854 GeekBench Score
✔ Unmetered Data Transfer

Now just $43 .99

# 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 install ExpressionEngine on Debian, 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, on how to install ExpressionEngine on Debian, please share it with your friends on the social networks using the buttons on the left or simply leave a reply below. Thanks.

Leave a Comment