Become an Expression Engine Superstar in 5 Days


ExpressionEngine claims to be "the most flexible web publishing system you'll ever meet" - it's also the most oft-used CMS in the professional web design community that you've never given the time of day to. It's time to change that and find out precisely why all of the 'free' alternatives should sit up and take note.


ExpressionEngine, from EllisLab, isn't just any old CMS. To start with, it isn't free. Whoa there Nelly, don't go running for the hills just yet - EE's core is free to download (for personal use) and it comes with a whole host of features already built in, such as modules(more on those later) for comments, RSS Feeds, Site-search, Statistics and trackbacks. This is the point where you start telling me that there are several other CMS's that provide these particular features (and many more) all for free, and, of course, you're absolutely right.

The ExpressionEngine homepage

I'm Still Not Getting This Whole "Pay" Thing...

OK, we need to get past this. The bottom line is, EE will cost some spondoolies - whether it's going to cost you or your clients, someone is going to have to fork over the cash. The Personal and Commercial licenses ($99.95 and $249.95, respectively) both give you access to extra modules - from 'Tell-a-friend' to mailing lists and simple eCommerce. The full list can be found on the pricing page of the EE site.

EE Pricing

OK, so now we've gotten over the fact that EE isn't free...let's find out precisely why. The features of EE are both extensive and impressive. You're able to maintain several blogs at the same time - from the same Control Panel - that's a biggy. The template engine is second-to-none - it is completely abstracted from the rest of the code allowing you complete control of your design and permits you to build dynamic, content driven websites using simple, yet powerful tags. There are 22 add-on modules and over 100 plugins which you're able to utilize at the time of this writing - a number which is likely to increase sooner rather than later. Other than the flexible nature of EE, many developers (and clients) are attracted to the quite incredible security features built into EE core. EllisLab claims that EE "has the most comprehensive suite of security features of any publishing platform on the market" - quite some claim.

OK I'm Sold...Let's Get a Rockin'

The first step is to determine whether the server you wish to utilize is capable of running EE. Fortunately, EllisLab have put together an excellent wizard which can walk you through each step. Download the wizard and follow the instructions - which are to basically upload one file onto your host and navigate to it. This script checks your server for certain requirements - such as does it run the minimum version of PHP and MySQL (which are both required) and then several 'optional' or suggested options. You get a report immediately upon running the script which breaks down exactly what EE requires and recommends, and whether your server meets those requirements. You then need to check your MySQL settings and will hopefully be greeted with a message that reads. "Congratulations! Your Server is Ready for ExpressionEngine!".

Checking your server is compatible with EE

Rock and Roll! Download and Installation

Right, you've decided that you want to give EE a go, you've determined that your server is capable of running it and are ready to get started. So let's do precisely that - by downloading the EE Core.

  1. Visit and accept their license agreement to download the zip file.
  2. Next, extract and upload the files to your web host (or place them in your localhost folder).
  3. Now you need to navigate to that folder and the install script will fire automatically.

You will need to know a few details before beginning (which are outside the scope of this tutorial):

  • MySQL Username
  • MySQL Password
  • MySQL database name
  • MySQL Hostname (normally 'localhost')

Note: You'll 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.

Accept another agreement and then you're off to the first 'real' stage of the installation - renaming the system folder. Go to the folder where you uploaded ExpressionEngine and find the 'system' folder. Now rename this folder to something less easy to guess...we'll use "NotTheSystemFolder"...Irony, y'see is lost on hacking kiddies :) Once finished, tell the install script that you've done so.

NotTheSystemFolder - the script kiddies will never guess it!

Now you're into the nitty gritty of the EE install - the Server, Database and Encryption settings and the bit where you setup your admin account. The majority of these things can be left for the default settings, however you will need the MySQL info listed above and you'll need to choose some details about your Control Panel 'admin' user.

Leave all of the "server settings" as they are. Now fill-in all the details for the 'database settings'. Once this is done, leave the 'Encryption Settings' as they are (SHA1 selected). Now you need to create your admin account - select a username and password, enter your e-mail address and create a 'screen name' and give your EE install a name. Adjust the Localization settings to suit and leave the template as default for now. Now click the "Click here to Install ExpressionEngine" button at the bottom of the page. That's you pretty much done - you should see a nice little message telling you that EE has been successfully installed.

There's a little bit of house-keeping to do - remove the install.php file from your EE installation directory - the install script tells you that it poses a potential security risk. So go off and do this now and get it out of the way - security is paramount!

Success!  EE Is installed

Time to Express Yourself!

Let's have a little look-see at what we've just done. Once the installation script has done its magic, you'll be asked to bookmark two things - a link to access your control panel and a link to visit your new site. Let's take the latter one first - we'll take a look at what our site currently looks like. The 'Default Site Weblog' is displayed and a post called "Getting Started With ExpressionEngine" is displayed. The links that this post contains are priceless - invest some time in clicking through them all and reading (and watching) the resources it presents you. Don't worry about the term 'Weblog' - we'll go through all of the terminologies used in EE in the next part of this run-through. This is often something which puts people off learning EE, so don't quit - it's really not as hard as you think.

Your new spangly 'default' EE Site

I Want Control!

Then you shall have it! Clicking on the former of the two links you're given after the installation script finishes will send you to your 'login' page; enter the details you chose during the install process if they're not automagically entered for you. Now you're presented with your Control Panel. Have a look around - get used to it - you'll be seeing this little chap quite a bit.

Take Control with the EE Control Panel

Click on publish and have a look at the 'form' you will use to enter new content. That's something you'll be wanting to become familiar with! Now click on 'Edit' and you'll see your 'Getting Started With ExpressionEngine' post that you viewed not so long ago. Clicking on the title of it will take you to a window similar to the 'Create' page - but this time it's populated with the content from the post we viewed earlier. You can now see how the default editor works - with the [b] and [/b] code clearly showing you how EE creates bold text. Hyperlinks are the same as you normally create in a text editor.

What's in Store

So then, we've had a brief look at what ExpressionEngine is and why it's worth 'giving it a go'. Next up, we'll:

  • Learn how to create content in EE
  • Lear some EE terminology
  • Change our settings in the (rather complex) control panel
  • How to use pre-built themes.
  • Delve deeper into the developer side of things and discuss the way in which EE themes work and set about creating our own - manipulating EE tags while we're at it.
  • Discuss the premium options within EE and have a look at whether they are right for you or your next project.
    • Subscribe to the NETTUTS RSS Feed for more daily web development tuts and articles.

Related Posts
  • Code
    Web Development
    How to Use New Relic With PHP & WordPressRelic retina preview
    Today we will look at how to monitor a PHP application using New Relic. More specifically we will set up a basic WordPress installation and get some performance data about it, in the New Relic dashboards.Read More…
  • Code
    Web Development
    Easily Deploy Redis Backed Web Apps With DockerDocker wide retina preview
    Learn how to setup and deploy a Redis powered Python web app using Docker.Read More…
  • Computer Skills
    How to Use a Raspberry Pi as a Local Web ServerThumb
    In this tutorial I will show you how to set up a Raspberry Pi to be used as a Local Web Server with SSH and FTP functionality.Read More…
  • Code
    Building a Customer Management App Using AngularJS and LaravelLaravel 4 auth retina preview
    When creating a single-page app we should use some kind of framework to do some of the job for us, so we can focus on the actual functionality. AngularJS fits here perfectly, because features like dynamic dependency injection and bi-directional data binding are just great. Sometimes we also require some kind of server. If you've chosen PHP then Laravel may be your best option, as it's easy to work with and pretty powerful.Read More…
  • Code
    JavaScript & AJAX
    Going Live With NodeGoing live with node retina preview
    In my previous article I talked about my joy of discovering the Express framework. Express is what makes me feel like I could really build something with Node and have fun doing it. And in fact - I did that! I built some sample web apps and had a lot of fun. But eventually I decided it was time to buckle down and get serious. I liked Node, I loved Express, and if I was really going to commit to learning it, then why not take the final step and actually create a real website using it. Another thing I learned early on during my Node education (Nodacation?) was that having to stop and restart a Node app was a real pain in the rear. I had great success using Nodemon by Remy Sharp. It will notice updates to your code and restart your Node app automatically. This sounds trivial I suppose, but for me my entire experience with Node was at the command line. I'd simply run node app and test away on port 3000. I really didn't know what it involved to get that same application up and running on a real server and responding to a domain. In this article I'll describe two different attempts I made to move a Node app into production. Obviously there's more ways (and look for more articles here at Nettuts+!) so keep in mind this is what I tried and had success with. Read More…
  • Code
    WP101 Training
    Beginning With WordPress: Installing WordPress ManuallyBeginning with wordpress
    So, there you are - sitting looking at a couple of emails: one with the keys to your domain name, one with the keys to your website, and now you're going to have to get your act together and actually put WordPress on your site but you really don't know where to go next. Well, you have two options: You can use an automatic installer (usually provided by your web host, something like Fantastico, Softaculous, or Installatron). You can install it yourself. Now, because this series is about really getting under the hood of what we're doing, let's focus on a full manual install. Stay with me, it's not too difficult if you follow the instructions methodically.Read More…