About Joomla

Joomla is an award-winning content management system (CMS), which enables you to build Web sites and powerful online applications. Many aspects, including its ease-of-use and extensibility, have made Joomla the most popular Web site software available. Best of all, Joomla is an open source solution that is freely available to everyone.

Joomla Community Documentation

Jommal provides an online collaborative community manual for Joomla! users, developers or anyone interested in learning more about Joomla! Currently, they have over 4000 articles written and maintained by Joomla! community members.

Version Information

IconsPage/important.png This guide was written for Ubuntu Server 13.10 and Joomla 3.1.5. The guide may work for other version of Ubuntu or other Debian based distributions, but they have not been tested. If you have success with using this guide on other versions of Ubuntu or other Debian based distributions please feel free to add a note to this document.

Pre-Installation Steps

Install Prerequisites

The following command will install the necessary prerequisites for Joomla:

sudo apt-get install apache2 php5-mysql libapache2-mod-php5 mysql-server php5-json phpmyadmin php5-curl unzip

During installation of mysql you will be prompted for the mysql root user password. You will want to write this information down for use later.

my-sql-config.png

Installation

Download Joomla!

Next set two variables for downloading and extracting Joomla.

SOURCEPKG=Joomla_3.1.5-Stable-Full_Package.zip
SOURCEWWW=http://joomlacode.org/gf/download/frsrelease/18622/83487/Joomla_3.1.5-Stable-Full_Package.zip

Once the variables are set you need to make a temporary directory to download the Joomla package, extract it and then delete the zip file.

mkdir joomla
cd joomla
wget $SOURCEWWW
unzip $SOURCEPKG
rm -f $SOURCEPKG

Move Joomla!

Next the files need to be moved and the ownership changed

cd ..
sudo mv joomla /var/www/
cd /var/www/joomla
sudo chown -R www-data:www-data .

Change Permissions

cd /var/www/joomla/
sudo find . -type f -exec chmod 644 {} \;
sudo find . -type d -exec chmod 755 {} \;

Create the Database

Next the Joomla database needs to be created. You will be prompted for the password you chose during the install.

mysqladmin -u root -p create joomla

Where joomla is the name you picked for the mysql database that joomla will use. You can call it anything you want.

Grant Permissions to the Database

Next you want to add a user and permissions to the newly created database.

mysql -u root -p
mysql>  GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON joomla.* TO 'joomla'@'localhost' IDENTIFIED BY 'password';
mysql> \q

You do not want to have Joomla use the mysql root user to access the database. The above command creates a mysql user (other than the mysql root user) with some priviledges to use the joomla database. You will need to chose the yourusername and yourpassword. If the command was successful, activate the new permissions:

Modify Joomla Files

open libraries/joomla/filter/input.php, modify the file and restart apache

sudo nano libraries/joomla/filter/input.php

find the following

$source = preg_replace('/&#(\d+);/me', "utf8_encode(chr(\\1))", $source); // decimal notation
$source = preg_replace('/&#x([a-f0-9]+);/mei', "utf8_encode(chr(0x\\1))", $source); // hex notation

change those lines to the following

$source = preg_replace_callback('/&#x(\d+);/mi', function($m){return utf8_encode(chr('0x'.$m[1]));}, $source); // decimal notation
$source = preg_replace_callback('/&#x([a-f0-9]+);/mi', function($m){return utf8_encode(chr('0x'.$m[1]));}, $source); // hex notation

Restart Apache

restart apache

sudo service apache2 restart

Start the Web Based Setup

after these changes you should be able to continue through the web installer and configure your instance of Joomla. The final screen should look like the one below. Remember to remove the installation directory.

final-install-joomla.png

Joomla (last edited 2015-02-10 14:22:38 by idvoretskyi)