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.
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.
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!".
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.
- Visit https://secure.expressionengine.com/download.php?ACT=agreement&id=34 and accept their license agreement to download the zip file.
- Next, extract and upload the files to your web host (or place them in your localhost folder).
- 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.
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!
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.
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.
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.