Open Source CMSes are the latest rage it seems, and we've tried out dozens. One that stands out above the rest for small businesses and personal networks is the Elgg open source "social engine," which can be used to create social applications. In this article we'll take you through the installation of Elgg, and show you how to get started with this social networking CMS.
Of course, the first thing you will need to do is to download the Elgg installation files, which can be downloaded from their Download page. You can download the Elgg core, which just contains the basic files, or you can download the full package, which is highly recommended. The Download page also has links to installation documentation, upgrade information as well as information about system requirements.
Another task you will need to do is to ensure that you are running PHP5 on your server. If you aren't sure, you can add a line to your .htaccess file like this, right at the top of the .htaccess file (Elgg includes its own .htaccess file, so you can add it to the top of that file before you upload the files to your web host):
AddType x-mapp-php5 .php
Like most open source CMSes, the next thing you will need to do is to create a MySQL database using your webhost's CPanel. It's a point-and-click process that only takes a couple of minutes, and once it's set up, you will be provided with the information you'll need to install Elgg, including:
- Database name
- Host name
- Port (usually 3306)
- User name
- Database password
You can set up Elgg in the main directory of your site, if you intend to make Elgg the basis for your site, or you can install it in a subdirectory if you want to have just a section of your site that uses the Elgg CMS. You'll need to uncompress the Elgg installation file, and upload it to your web server using your favorite FTP program.
You will then go to the main page of your Elgg installation to begin the install process. So if you installed Elgg in a subdirectory of your site, such as http://www.mydomain.com/elgg/, that is where you will go to begin the installation.
The first page, shown below, will check to see if your database settings are already set up in its settings file. If not, which is usually the case, it will prompt you for the details of your database, as mentioned above. Once that has been done, you will move on to the next part of the installation process, which is to fill out the basic details of your Elgg installation, such as the name of the site, your email address, the path to the installation (which is thankfully filled out for you), the URL to the Elgg installation (you must check to make sure that it is correct, or it will hose the installation process going forward), and various other details.
Moving forward, it will take you to a login screen. Since nobody has registered yet, you will click the Register link, and fill out the information requested, such as your requested username, your name, your email and your password. Since you are the first user, you will automatically be set up as the admin.
Once you are logged in as the admin, you will be taken to the Administration page, where you can enable or disable the various tools that come with Elgg, as shown below. I enabled them all, so I could see what I'm working with.
I should mention the core features that come with Elgg. These are the basic aspects of the CMS, which make up the majority of the functionality of the site, and come from plugins. There are additional plugins available, but the core features are:
- User, object, file and site management
- Social graph functionality (relationships between users and other users, objects and sites)
- Easy internationalization support
- System-wide, tag-based searching across all content and users
- Fine-grained access controls
- Multiple views, allowing for mobile applications and embeddable widgets as well as the traditional web browser view
- Event, plugin and widget APIs
- RSS, FOAF, XFN for content syndication
- OpenID, OpenSocial
- Open Data Definition and an increasing number of data portability formats for import / export
- An extensible RESTful API, with results in JSON, serialized PHP or XML
- AJAX through jQuery and user-definable callbacks
- Easy extension for use with caching systems such as memcached, for increased system performance
When you're setting up your site, you will want to decide how your site looks and functions. Initially you are able to decide which widgets you want to use, and where they go, using a drag and drop interface, as shown below:
Once you have set up your basic site, you will want to edit your profile, add a profile picture, some basic information about yourself, and further customize the Elgg CMS software. I added some info to my personal profile, added a blog, uploaded a file (about tortoises, since my site is about reptiles), created a group about pythons, and updated the Spotlight section that shows up at the bottom of the page (which is done by editing the file located at /views/default/spotlight/default.php). Once I was done, this is what the basic site looked like:
Elgg has a very well documented site, full of tips, installation help, and information about the various aspects of the Elgg CMS, along with various additional plugins you can use. The Elgg community Plugin area is also very useful, with 760 additional plugins that can be applied to your Elgg site.
Elgg is easy to setup, has many features that come pre-installed, and can be a very useful tool to create a basic social networking site. The community is very active, it is free, and can be the basis for your personal or company website.
Original: January 27, 2010