September 15, 2010

Install XOOPS for Powerful Open Source Content Management

Content is king. It always has been and always will be. It drives our businesses and motivates our customers. But when you think content management, so many tools come to mind. There's Drupal and Joomla! for starters. Both of those tools are outstanding solutions for content management. But many organizations are projects are choosing XOOPS.

So what would make one choose XOOPS over other strategies? XOOPS offers the following features:

  • Database driven: XOOPS is powered by MySQL database.
  • Modular: Add or remove as many modules as you like.
  • User customization: Your users can edit profiles, select personal themes, upload custom avatars, and more.
  • World-wide support: Official support sites can be found all over the world (in many languages).
  • Multi-byte languages: Including Japanese, simple and traditional Chinese, Korean, and more.
  • Group permission system: Granular control over group and user permissions.
  • Skinnable interface: Over 800 themes available.

But features alone don't always demonstrate why you should choose a particular project, especially when a feature set is matched almost feature-for-feature by other projects. If you look at, you will find XOOPS one of (if not the) highest ranked CMS tool. You'll find many reasons to select XOOPS as your CMS. Once you have made that choice, it is then time to get going on the build. You might be surprised to know that, regardless of power, XOOPS isn't all that difficult to get up and running. In this tutorial I will lay out the steps to installing XOOPS on your already running Linux box.

It should be noted, just for clarification, that this tutorial will be using Ubuntu 9.10 as a base for installation.


Let's take a look at the requirements, before we begin the installation. In order to successfully install XOOPS, you will need:

  • Web server: For this install, we will use Apache. XOOPS can be installed on other platforms using other servers.
  • PHP >= 4.3.0 (5.2 recommended)
  • MySQL >= 3.23 (>= 4.1 recommeded)

Pre-flight setup

You will be using your web browser for the actual installation of XOOPS. But before you can get to that stage, there are a few steps you must take:

  1. Make sure your server is set up and running properly (with PHP and MySQL support). 
  2. Set up your database for XOOPS.
  3. Prepare the directory structure for XOOPS

Let's tackle these steps one at a time.

Step One

If you have set up your server as a LAMP (Linux Apache MySQL PHP) server, you should be good to go. If you haven't done so, you can do this easily on a Ubuntu machine with the command:

sudo tasksel

You will then select LAMP server and follow the simple instructions.

Step Two

The next step is to set up your database. We will create a database called "xoops" (no quotes) with the following steps:

  1. Create the database with the command: mysqladmin -u db_user -p create xoops
  2. Change to the MySQL prompt with the command: mysql -u db_user -p (Where db_user is the MySQL administrative user — usually root, unless you've made a change to this in order to heighten security).
  3. Grant privileges to the user on the xoops database with the command: GRANT ALL PRIVILEGES ON xoops.* TO root@localhost IDENTIFIED BY 'password'; Here password is the actual password of the database administrator.
  4. Flush all privileges with the command: flush privileges;

Step Three

Now it's time to prepare the directory structure. The first thing you will do is download the XOOPS file from Sourceforge.  Once you have downloaded that file move the file to /var/www/. But before you unpack the file you need to consider one thing: Are you planning on having more than XOOPS served up on this server? Will you have multiple web sites here? If so you will want to contain XOOPS inside of its own directory. If not, you can unpack the XOOPS file directly into /var/www. I will go on the assumption you plan on having more than one site on your server, so we will create a container folder for XOOPS. Follow these steps:

  1. From within your terminal (and from within the /var/www directory) issue the command su mkdir XOOPS.
  2. Move the XOOPS file into the newly created XOOPS directory with the command sudo mv XOOPS (Where XXX is the release number).
  3. Change into the XOOPS directory with the command cd XOOPS.
  4. Unpack the XOOPS file with the command sudo unzip (Where XXX is the release number).

So far so good. Remember where we mentioned we were going to serve XOOPS from within its own directory? Well, as it stands, you would have to be pointing your browser to http://SERVER_ADDRESS/XOOPS/htdocs/. We want to avoid this so move into the the /var/www/XOOPS/htdocs and move the entire contents of this directory into /var/www/XOOPS. You can do this with the command sudo mv * ../. Now you can back out into /var/www/XOOPS and all of those files will be found.

You now need to create the directory /var/www/XOOPS/uploads with the command sudo mkdir /var/www/XOOPS/uploads. 

The next step is to check to see if the directory /var/www/XOOPS/xoops_data exists. If it does not, create it with the command sudo mkdir /var/www/XOOPS/xoops_data. Now you have to change some permissions. You must give the following directories/files write permission:

  • /xoops_data/configs/
  • /xoops_data/caches/
  • /xoops_data/caches/xoops_cache/
  • /xoops_data/caches/smarty_cache/
  • /xoops_data/cache/smarty_compile/
  • /var/www/XOOPS/mainfile.php

The above is done with the command chmod 777 "DIRECTORY/FILE NAME". And that is the difficult aspect of the installation. Now you only need point your browser to http://ADDRESS_TO_SERVER/XOOPS/ to begin the web-based installation.

Web install

There will be approximately fourteen screens to walk through for this installation. All of these screen will be very intuitive. The screens are:

  1. Language selection: Select the language for the installer.
  2. Introduction: Read about the installation process.
  3. Configuration check: XOOPS installer checks to see if everything is ready.
  4. Paths settings: Are all of your paths correct?
  5. Database connection: Database server settings.
  6. Database configuration: XOOPS database settings.
  7. Configuration save: Write settings to mainfile.php.
  8. Tables creation: Create tables on database.
  9. Initial settings: Admin user creation.
  10. Data insertion: Data is inserted into tables.
  11. Site configuration: Configure your site.
  12. Select theme: Choose the default theme for your site.
  13. Modules installation: Select modules to install.
  14. Welcome: Final notes.

Xoops install Only a couple of these screens really need any explanation. The first is Figure 1. This is the second screen you will come across. This screen not only serves as an introduction, but also outlines everything you will need to do for the installation. There are a couple of steps I intentionally left out. Should you choose to add those steps, the instructions are fairly obvious on this screen. 

You might think the next screen(s) that would need attention would be related to the database. If you have created the database in the manner outlined above, you can accept the defaults from the screens. The only exception will be the MySQL admin password.

After the database screens (screens 5 and 6) the next screen that requires user-input is screen 9. Screen 9 requires you to fill out information for an administrator account — very simple.

Xoops Installation The Site Configuration screen (see Figure 2) might be the next screen that could trip you up. As you can see there is a bit of pre-configured data added to each section. If your site is a public site, you will want to play close attention to the Meta Tags and Description as these can help your search rankings. You will also want to make sure Yes is selected, if you want to allow New User registration.

The next two screens (Select theme and Modules installation) are also both very intuitive. Upon installation you will only have two themes to choose from and three modules to install. You will need to download more themes and modules in order to further extend the look and functionality of your XOOPS site. You can find more modules at the XOOPS Module Repository and XOOPS themes from the XOOPS Theme Gallery.

Final thoughts

Congratulations! You now have a running XOOPS site installed and ready to go. Make sure you log in as the administrator you created in screen 9 (Initial Settings) so you can further customize your XOOPS site.

Click Here!