Jorani has been tested with Apache and ngnix. Jorani is compatible with HHVM as Codeigniter is 100% compatible with the VM. However, please note that HHVM is still under development.
The Jorani application must have write privileges on temp and application/logs folders.
The default user is bbalet and password is bbalet.
Jorani has been tested with MySQL and MariaDB (please note that functions are created in the schema). Please follow these steps :
- Create a database.
- Import
/sql/lms.sql. - Change
application/config/database.phpaccording to your environment. - Change
application/config/config.phpaccording to your environment.
Please note that the schema contains procedures, so the user created must have EXECUTE permission.
You might need to change the code CREATE DEFINER= of the root@localhost/sql/lms.sql file if the db user you are using to create the schema is not the root user (e.g. on shared hosting).
Jorani uses e-mail to notify users and their line managers. In order to setup e-mail modify
/application/config/email.php file according to your environment.
$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';
You must activate PHP LDAP module prior using this feature.
In order to configure LDAP, locate these lines of code into application/config/config.php :
$config['ldap_enabled'] = FALSE;
$config['ldap_host'] = '127.0.0.1';
$config['ldap_port'] = 389;
$config['ldap_basedn'] = 'uid=%s,ou=people,dc=company,dc=com';
- Switch ldap_enabled to
TRUE. - Change
ldap_hostandldap_portaccording to your environement. - Jorani tries to bind to LDAP according to the content of
ldap_basednin where%sis a placeholder for the user id to be checked into LDAP (e.g.%swill be replaced by the login from LMS db). - Contact your IT Admin in order to know more about how LDAP is configured into your organization. Change the value but
%smust remain somewhere into this string. - The user id into Jorani and LDAP must be the same. When LDAP is activated, LMS doesn't use anymore the password stored into the database.
Since version 0.1.5, Jorani supports complex LDAP authentication schemes (where users are in different loactions in the directory). In order to use this feature :
- Set
ldap_basedn_dbto TRUE. - The Base DN is not based on
ldap_basedn, but read from the users table, columnldap_path(e.g. from database). - The Base DN should look like
uid=bbalet,ou=people,dc=company,dc=com. Note that this feature allows you to authenticate users from different OU.
Jorani is a PHP/CI application using rewrite rules and .htaccess files. So your Apache configuration must allow overwriting configuration by .htaccess files and mod_rewrite must be enabled.
For your convinience, a sample ngnix configuration file is provided in this folder
/docs/install/ngnix/default
If you are using HTTP protocol, don't forget to disable HTTPS in application/config/config.php
$_SERVER['HTTPS'] = 'off';
Other parameters should be considered carefully (in /etc/nginx/nginx.conf), such as:
- events.worker_connections
- events.multi_accept
- http.keepalive_timeout The values depend on your environment and the load that you are expecting.
IMPORTANT : nginx in conjunction with fpm-php is for advanced users and is more complicated to tune than Apache (see troubleshooting section of this document). We recommend to validate your production environement with a load test prior going live.
If you are running php-fpm, examine /var/log/php5-fpm.log, if you see this message :
WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
In /etc/php5/fpm/pool.d/www.conf which is set by default to 5
pm.max_children = xxxx (number of simultaneous processes)
For a load test, allow a margin of 25%
If you get this error : upstream sent too big header while reading response header from upstream, you need to enlarge the buffers used by nginx.
Add this to your http {} of the nginx.conf file normally located at /etc/nginx/nginx.conf:
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
Then add this to your php location block, this will be located in your vhost file look for the block that begins with location ~ .php$ {
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
If you are running nginx, tune your configuration (see /etc/nginx/nginx.conf).
- Raspbian ARM - Apache + PHP
- Raspbian ARM - ngnix + php-fpm
- Windows 7 / 64 - WAMP
- Windows XP / 32 - WAMP
- Centos - Apache + PHP
- Ubuntu 13.10 x86_64 - ngnix + php-fpm or HHVM