Our first order of business is to get ExpressionEngine installed and

running. After that we’ll create a template, tour the Control Panel, and

learn about development environments.

First you need to follow a few steps to prepare to install ExpressionEngine on your server.

1.1 Evaluating Hosting

Once you download the Server Wizard, unzip it and use your FTP client

to upload the ee_wizard directory to the web root of your server. In your

browser, go to the wizard 1, and you should see a page similar to Figure 1.1, on the next page.

Step 1 checks your database server. You should have your database

server information at hand for this test. The database check attempts to

connect to your database using the login information you provided and

checks that MySQL is configured so ExpressionEngine can function


Fill out the form, entering your MySQL server address, your MySQL

username and password, and the MySQL database name. If for some

reason the wizard cannot connect to your database server, it will report

an error message at the bottom of the next page.

Figure 1.1: Checking the database connection with the ExpressionEngine Server Wizard.
If you receive an error, double-check your login information, database
name, and server location. If you continue to have issues, contact your
web host support or your server administrator. In my experience, most
issues with connecting to the database are related to login information
and the server location information.
If the wizard is able to successfully connect to your database server and
database, you should be forwarded to the next page of the wizard.
Step 2 checks your server for all the requirements and suggested libraries. Those marked with a red “No” are not supported on your server
or hosting account, while those marked with a green “Yes” are supported. If you have a red “No” next to a required item, you should contact your web host support or server administrator and ask about it.
Going forward with the ExpressionEngine installation in spite of the
missing requirements will cause the software to not function properly
and will create problems.

Figure 1.2: Checking for requirements with the ExpressionEngine
Server Wizard.
If the wizard shows that all requirements have been met (including the
database test from earlier), you should see a congratulatory message at
the bottom of the page.
With your server ready to run ExpressionEngine, let’s move forward
and download the software.

1.2 Getting the Software
ExpressionEngine is not open source software and cannot be freely distributed across the Internet.
ExpressionEngine is a commercial product, and there are licensing fees
involved. The only way to get the software is from the ExpressionEngine

Can I Use the Trial Version?
You can download a limited, 30-day trial of ExpressionEngine.
Because the source code is encrypted, it requires some special
software, the Zend Optimizer, to run. Additionally, you are not
able to change the name of the system directory.
To get the most from this book, you should use a full version of
Here are the available licenses:
• Freelancer: $99.95 and restricted to web professionals who want
to use ExpressionEngine to build their own company website.
• Noncommercial: $149.95 and can be used only on nonprofit and
personal websites.
• Commercial: $299.95 and has no restrictions in how it is used.
This version is for commercial sites run by for-profit or commercial
To get a full list of the features available for each type of license, I
encourage you to visit the ExpressionEngine website for a side-by-side
comparison of the licensing options.3
Once you choose the license that is right for your situation, purchase
and then download the software from the ExpressionEngine site so you
can install it.
1.3 Installing ExpressionEngine
Once the download is complete, you should have a .zip file. Unzip this
file on your desktop.
Uploading the Files
You are now ready to move the files from the local computer and onto
the server. To upload the ExpressionEngine software to your server,
follow these steps:
1. Connect to your server using your FTP client software

2. Upload all text files in ASCII mode and all images in binary mode.
3. Once the upload is complete, find the system directory that you
just uploaded on your server. The creators of ExpressionEngine
recommend that you rename this directory to something that is
more obscure. For this example, we’re going to name our system
directory ringo. After making the change, open the index.php file,
and update the $system_path variable to reflect the new directory
name. It should now look like this:
$system_path = './ringo';
Setting Permissions
One final step before running the Installation Wizard is to make sure
all the file permissions are correct. Incorrect file permissions can cause
headaches when installing and using ExpressionEngine.
The following files must be set to permissions 666 (Unix or Mac OS X)
or Writeable on Windows:
• ringo/expressionengine/config/config.php
• ringo/expressionengine/config/database.php
You must set the following files to permissions of 777 (Unix or Mac OS
X) or Writeable on Windows:
• images/avatars/uploads
• images/captchas
• images/member_photos
• images/pm_attachments
• images/signature_attachments
• images/uploads
• ringo/expressionengine/cache
Running the Installation Wizard
The Installation Wizard checks that all the ExpressionEngine files are
present and then populates the database with data needed to run ExpressionEngine. It’s a simple, painless process but does require that
the database connection information is close by. Let’s get started.
In your web browser, go to the domain where you have uploaded the
ExpressionEngine files, and add your system directory to the end of the
domain so it looks like this: http://yoursite.com/system (we changed the
system directory to ringo). This will bring you to the Installation Wizard

Figure 1.3: Filling out the server settings during installation
Click the button to begin, and then choose a new install by clicking
the text “Click here to install a brand new copy of ExpressionEngine.”
Agree to the software license, and then click Submit.
The next step is to input your server settings and database connection
details and create an administrator account. You should see a screen
that looks similar to Figure 1.3.
Follow the instructions that are listed with each area on the settings
page of the wizard. You can also check or uncheck ExpressionEngine
modules that you would like to have installed. These modules can be
installed at any time, so it’s safe to leave the default settings.
For the “Choose your default template design” option, select Agile
Records. Although you won’t need this for the site we’ll build later in
the book, the sample site will help you become familiar with ExpressionEngine.

Once completed, click Install ExpressionEngine! If the installation was
successful, you should see the success screen.
You should now delete the installer directory from your server. It’s located
in the expressionengine directory in your system directory. This is an
important security precaution. If you leave the directory on your server,
someone could potentially run the Installation Wizard in their browser
and reinstall the software, wiping out your database and your website.
ExpressionEngine has a safeguard against this by “locking” your installation, but it’s still a good idea to remove the directory to eliminate the
chance of unauthorized access to your site.
1.4 Exploring the ExpressionEngine Directories and Files
If you’re not already connected, open your FTP client software, and
connect to your server where you installed ExpressionEngine. Navigate
to the web root where the ExpressionEngine files are located. Let’s take
a quick look at the directories and files that will be most important
while learning to use ExpressionEngine:
Stored in this directory are the images that ExpressionEngine will
use in your site. These images are for member avatars, photos,
smileys, and user uploads via the Control Panel.
This is the main file that processes all requests to the ExpressionEngine site. As we progress in the book, you’ll notice that this file
appears in the URL of your site. Leave this file as is, and don’t edit
it any further.
Ha, tricked you! This directory shouldn’t be on your server if you
were following directions. If you still have this file on your server,
please delete it now.
system/ (renamed by me to ringo)
This directory contains all the files that make ExpressionEngine
run. It’s also the directory you’ll use in the web browser to access
the site’s Control Panel.
This directory is where you will put any third-party add-ons you
want to use with ExpressionEngine. This is different from previous

versions of ExpressionEngine where the add-ons went in separate
directories. The four types of add-ons that go in this directory are
accessories, extensions, plug-ins, and modules.
Accessories are new to ExpressionEngine and allow you to display
content in tabs at the bottom of the Control Panel.
Extensions are chunks of code (in a file that begins with ext) that
typically modify how the Control Panel works. You can download first- and third-party extensions from the ExpressionEngine
By offering additional functionality, plug-ins allow you to control
and alter the type of information that is displayed in the site templates. You can review a list of available plug-ins on the ExpressionEngine website.5
Modules are applications that can be plugged into the ExpressionEngine system to add some major functionality. Modules usually
have their own administration pages in the Control Panel. You can
browse the available modules on the ExpressionEngine website.6
The config directory contains files with configuration data that is
specific to your installation of ExpressionEngine. This includes
database connection information in the database.php file and includes the site URL and Control Panel URL in the config.php file.
The ExpressionEngine Installation Wizard set up these files for us,
so for now you can leave these files alone.
This directory contains themes that control the look of different
parts of ExpressionEngine, including the Control Panel.
You’ll notice that we skipped over a lot of the files and directories. Many
of them are not relevant to what we’re doing right now, but some will
come up over the course of the book and as we become more experienced with ExpressionEngine. The next step in learning about ExpressionEngine is to experience the Control Panel, where we’ll be spending
a lot of time configuring and managing our website.

1.5 Touring the Control Panel
The ExpressionEngine Control Panel is the nerve center for your site.
Here you manage and publish content, create and edit templates, and
configure any of the many settings and preferences for your ExpressionEngine-powered website.
To gain access to the Control Panel, you have to enter the username
and password you created during installation. In your web browser,
navigate to your system directory.7 Once there you should see a login
screen. Log in, and you’re brought to the Control Panel home page.
We’re going to tour just a few of the main features of the Control Panel;
you’ll find out about many more features later as we build the sample
site in the second part of the book.
Control Panel Home
The Control Panel home page (see Figure 1.4, on the next page) provides you with easy access to the three main ways to manage your
ExpressionEngine site: create, modify, and view. From the home page,
you can easily create or modify content, manage comments, access the
ExpressionEngine User Guide, or manage your website templates.
You can also search the Control Panel (for example, searching for template will return all the areas in the Control Panel where you can manage a template) or access the Quick Links to easily access bookmarked
Control Panel pages.
Publishing Content
Click the Content button and then Publish at the top left of the Control
Panel to add new content to the site. ExpressionEngine prompts you to
choose which channel you’d like to use. A channel is a bucket for your
content. As we build the website in the second part of this book, we’ll
be creating multiple channels for our content.
Select News from the two channels listed. This is the screen where you
add content to your site.

Editing Content
The Edit screen (see Figure 1.5, on the following page) provides an
overview of all content on your site, whether it’s in draft form or published. When you click the Content button and then Edit, you see several channel entries listed. As we build out our ExpressionEngine site,
this will be an even longer list of channel entries.
Also notice the search functionality at the top of the page. It will let you
search and sort content by channel, category, status (Open or Closed),
and date range. Additionally, you can limit the search to just specific
pieces of content, such as titles or comments. Once your site is populated with hundreds of content items, it becomes an indispensable tool
for managing your content in ExpressionEngine.
The list of content is comprised of several columns, each providing an
overview of the content pieces. Click the title of the sample content, and
you will see the Edit page for that item. Here you can edit the content
and save your changes.

Figure 1.5: Viewing the Edit screen in the Control Panel
From the main Edit page, you also have the ability to delete content—
either individually or in bulk. You do this by checking the box (on the
far right) next to each item and then using the drop-down menu at
the bottom to select which action you’d like to take. Deleting content
cannot be undone, so be careful!
Managing Templates
The Template Manager (see Figure 1.6, on the next page) is where you
manage all the templates (HTML markup and ExpressionEngine tags)
that make your site come to life in the web browser. To access the
Template Manager, click the Design button at the top of the Control
Panel and then click Template Manager under the Templates menu
Templates are organized by groups, which are listed on the far left
of the Template Manager page. You should see four groups: about,
global_embeds, * news, and search. The asterisk next to the third group
denotes that its index template is the home page of the site.

Figure 1.6: Managing your ExpressionEngine templates
The middle of the page is where you can access each individual template
of the selected group. Clicking the name will let you edit the template.
Additionally, at the top of the list of templates there are three buttons
that allow you to edit the selected template groups, as well as add a
new template or delete a group.
Administering the Site
Let’s continue our tour of the Control Panel by exploring the site administration options.
The Admin area is where you configure and tweak your ExpressionEngine installation and consists of several sections to give you control
over how your site is set up. To access the Admin area, click the Admin
button at the top of the Control Panel, and then choose Overview (at
the bottom of the list).

Channel Administration
The Channel Administration section is at the top of page when you
access the Admin area of the Control Panel. Please explore each area of
Channel Administration on your own, but here are some of the areas
that will be most important to you as you begin building your first
website with ExpressionEngine:
• Channels: Here you create, delete, and edit the content channels
on your ExpressionEngine website. This is where you can define
the different types of the content that will appear on the site.
• Categories: In this subsection of Channel Administration, you can
add new category groups and categories, as well as manage all of
your existing categories. The default site we installed comes with
two category groups.
• Custom fields: ExpressionEngine allows you to create custom
fields that fit the type of content in your website. Here you can
manage those custom fields and custom field groups.
System Administration
Further down the page, System Administration gives you access to
some of the finer controls of the ExpressionEngine software. Although
most of the settings here won’t be necessary to get started with ExpressionEngine (the defaults will work just fine), I do want to point out a
couple of areas that you should be familiar with:
• Config Editor: In this area you can alter settings in your config.php
• Output and Debugging: Although you may not use this immediately, it is good to know where the debugging settings are located.
These settings allow you to enable special debugging output when
you need some extra information to help solve a problem while
building your ExpressionEngine-powered website.
Tools for Managing Your ExpressionEngine Site
The Tools section of the Control Panel offers you some additional options to manage your ExpressionEngine site. Of these tools, the most
useful to you will most likely be the Data tools. Access the Tools area
by clicking the Tools button at the top of the page, and select Data.
Consisting of four different tools for advanced management of your
data, the one tool you’ll use most often is Clear Cached Data so you

can make sure the site is always serving up the latest content. The
SQL Manager tool allows you view and query the ExpressionEngine
database tables and may be useful when you’re more experienced with
Explore the other tools in the section. The various logs available will
help make troubleshooting easier, and you can use the Communicate
section to send email to members.
Managing Your User Account
The My Account area gives you access to manage all of your personal
account details, including email address, profile, username and password, and Control Panel customizations. To access this area, click Control Panel (under the My Account heading) in the sidebar of the Control
Panel. If the sidebar is hidden, click “reveal sidebar” near the top right
of the Control Panel to make it appear.
Quick Links
At the right-bottom side of the Control Panel is a small menu that is
very useful while working within ExpressionEngine (see Figure 1.7, on
the following page). By default there is just one item in the list: Quick
Links Manager.
Use the Quick Links Manager to customize the links that appear in the
Quick Links list. Some useful examples are a link to a dictionary website for easy reference, links to related sites, and links to site-specific
A dictionary quick link will be useful as we’re adding content to our
site, so let’s create a link that will lead us to Dictionary.com. Click
Quick Links Manager in the list.
Give the link the title of “Dictionary” and a URL of http://dictionary.com.
Click Submit, and the new dictionary link appears in the Quick Links
menu. Be sure to click the Dictionary link to test it!
1.6 What We Learned
In this chapter we installed ExpressionEngine and took a brief tour
of the Control Panel. What we’ve learned will prepare us for the next
chapter where we dig in and learn how to create and view templates.

Figure 1.7: Adding Quick Links to the Control Panel
Before going on, however, take a few minutes to poke around the Control Panel and become even more familiar with how it works. Although
I’ll cover specific functionality throughout the book, it will make the
learning process easier if you become as familiar as possible with Control Panel interface in this early stage.