Although Jorani can work with several types of web servers and in various configurations (nginx, HHVM, PHPng, etc.), we will only describe how to install it on Ubuntu Utopic (14.10), with Apache and MySQL. It is quite the same for other Linux distributions except for some configuration file locations and command names.
At the end of this tutorial, you will get an installation in a subdirectory (eg http://localhost/jorani/). For additional assistance (eg for installing on a subdomain or at your host, etc.), I advise you to post on specialized support forums (your distribution, your webhosting company, etc.). People present on these forums are used to these environments and will quickly respond to you.
Please note that the default user and password are: bbalet.
There are several installation guides for the components needed by Jorani. It is not the purpose of this article to go into details, but simply to provide the main controls and a memory aid. For example, it is best to start any installation with a small magic command that will spare you few disappointments:
sudo apt-get update
Another example is the command to find the IP address of a server. You can use this command once you are connected to the server (this will be useful to test the installation from your browser):
ifconfig eth0 | grep inet | awk '{ print $2 }'
Finally, if you are missing one of the commands used in this guide, just try to install it by using its name. For example, if you are missing unzip
, here's how to fix this:
sudo apt-get install unzip
You must install a LAMP stack (Linux Apache MySQL PHP). Please note that Jorani requires at least PHP 5.3. Here is the command to install a LAMP on Ubuntu:
sudo apt-get install lamp-server^
Mind to note the passwords you chose during the installation of the LAMP stack!
In order to speed up the connection (which is encrypted), it is recommended to install the SSL PHP extension. Make sure the module is installed with the following command:
php -r 'phpinfo();' | grep openssl
You can activate it with the following command:
php5enmod openssl
If you want to use LDAP for authentication, you can install it as follow:
sudo apt-get install php5-ldap
Of course, every time you install a PHP extension or change the web server configuration, you need to restart Apache web service:
sudo service apache2 restart
PhpMyadmin is a web interface for managing your MySQL databases. It's more fun than command lines, but it is optional and not recommended on production servers. However, if you want to install it, here is the command:
sudo apt-get install phpmyadmin
We can install Jorani sources by downloading a ZIP file of one of its versions or via git
. The set
command retrieves the current development version or any labeled version (eg with the label of a published version). In order to install this command:
sudo apt-get install git
Go into the web directory:
cd /var/www/html/
This is the recommended procedure.
We can install Jorani sources by downloading a ZIP file of one of the versions. With wget command to which we pass as a parameter the URL of the ZIP file we want to download. For example:
gzip --decompress v0.6.5.zip wget https://github.com/bbalet/jorani/archive/v0.6.5.zip unzip v0.6.5.zip
Remember to update the URL of the ZIP file with the latest version. And perhaps to change the directory names.
If you are a developer, you can recover the version under development with this command (this is called to clone):
git clone https://github.com/bbalet/jorani.git
However, we can only recover the latest stable version. Once we have cloned the source code of Jorani (with the previous command), we can list the versions and then recover a specific version (identified by a label):
git tag -l git checkout tags/outstanding label
In this case, don't forget to update the dependencies using composer as explained into the download guide.
You can use the phpMyAdmin web interface or do the installation by hand.
Use mysql
command from the terminal and enter a password, for example:
mysql -u root -p
Create a database for Jorani, here we will call it lms
:
CREATE DATABASE IF NOT EXISTS lms;
Tell mysql
to use lms
database for the next actions:
use lms;
Import database. Of course, you must adapt the path if you've installed Jorani into another location:
source /var/www/html/jorani/sql/lms.sql;
You can take the opportunity to create a user with at least SELECT, INSERT, UPDATE, DELETE and EXECUTE permissions on the database (you can change ALL PRIVILEGES
in the example if you want to be more restrictive):
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON lms.* TO 'newuser'@'localhost'; FLUSH PRIVILEGES;
Exit mysql
:
exit
Open the database configuration file, here I use nano
, but you can use your favorite editor (vim
, etc.):
nano /var/www/html/jorani/application/config/database.php
Locate the following lines of code and adapt them to your configuration:
$db['default']['hostname'] = 'localhost'; $db['default']['username'] = 'root'; $db['default']['password'] = '';
If you've arrived here and you've tried to use Jorani, it is very likely that your browser shows you this error:
Not Found
The requested URL /jorani/home was not found on this server.
Apache/2.4.10 (Ubuntu) Server at xxx.xxx.xxx.xxx Port 80
The reason is that Jorani uses URL rewriting techniques and uses a .htaccess
file. It's annoying, but these two features are disabled by default in the Apache configuration. Activation of the rewrite module is very easy (Apache must be restarted for the configuration to be taken into account):
a2enmod rewrite
Take a look into the directory of the active websites (/etc/apache2/sites-enabled
). If we take the hypothesis of a new server, you should only find the default site:
nano /etc/apache2/sites-enabled/000-default.conf
Add this block configuration that you must of course be adapt according to your case:
<Directory /var/www/html/jorani> AllowOverride All Order allow,deny Allow from all </Directory>
Remember to restart Apache:
sudo service apache2 restart
Remember to adapt the e-mail server configuration file by modifying the /config/email.php
file. For example, for GMAIL:
$config['protocol'] = 'smtp'; $config['useragent'] = 'phpmailer'; $config['smtp_host'] = 'ssl://smtp.googlemail.com'; $config['smtp_user'] = 'my.account.@gmail.com'; $config['smtp_pass'] = 'my password'; $config['_smtp_auth'] = TRUE; $config['smtp_port'] = '465';
We advise you to change the public and private keys. You can put a stronger encryption than 1024 bits, 2048 bits, for example:
cd /var/www/html/jorani/assets/keys/ openssl genrsa -out private.pem 1024 openssl rsa -in private.pem -outform PEM -pubout -out public.pem
It is possible to configure advanced options to activate or to adapt the software for your use.
After this installation, you'll get a nearly empty database with the user:
There is a special page where you can check that Jorani is installed and that helps you find problems. Open your browser at (change the server address with your server address): http://localhost/jorani/requirements.php
You may find useful to read the backup and restore guide.
It is possible to customize the behavior of Jorani by modifying the main configuration file. Read »
Once your account has been created, you can login to the application. This article explains how to solve connection problems. Read »
This article guides you step by step in you deployment of Jorani. This tool is easy but you should respect this process of configuration. Read »
Jorani allows you to manage the entitled days of employee starting to work in the middle of a contract period in a very simple way. Read »
The global calendar page allows you to display the leaves of all the organization or to filter by department Read »