# Dokeos 1.6.1 installation guide

Thank you for downloading Dokeos! This text will guide you through the basics of installing Dokeos 1.6.1. Please read this fully before proceeding with the installation.

The installation guide is also available in other languages, please see this overview page for a list. The Dokeos website will notify when new translations are available.

This is only a short installation guide. We are writing a manual with more info on installation, but this was not ready at the time of writing. When ready, this manual will be accessible through the Dokeos documentation page. You can read the work in progress manual on our web writing area. We also maintain a list of Frequently Asked Questions (FAQ).

Contents

1. Requirements
2. Installing a new version of Dokeos
3. Upgrading from a previous version of Dokeos
4. Troubleshooting
5. Administration section
6. Ldap (optional)

## 1. Requirements

Dokeos is a web application which requires some other software to function:

- A web server - we recommend Apache
- PHP
- The MySQL database server

These software packages have to be installed on the computer where you will install Dokeos.
You can install all these software packages separately, which often gives the best results. However, beginning users who want to test Dokeos can use a combination package that installs all these software packages in one simple install. If you want to use a combination package, we recommend Wamp (Download at the WAMP5 website, you also need the PHP4 add-on) or XAMP.

### 1.1. A web server

The Apache web server is recommended, and Dokeos is configured to use some Apache security enhancements if possible. However, other web servers will work too. For best security results, you need to have the Apache module mod_rewrite activated. The mod_rewrite rules for Dokeos are read from a .htaccess file in the courses folder, so Apache needs to allow this (AllowOverride FileInfo in httpd.conf).
Download Apache web server
Apache web server manual

### 1.2. PHP

You need PHP version 4.3.2 or later (4.x versions), configured with the following modules : mysql, zlib, preg, xml. PHP versions 5 or later are not supported by Dokes yet. You need the ldap module too if you want to use ldap with Dokeos. Most of the PHP4 compiled distributions are provided with these modules. Anyway, their presence is checked by the Dokeos install script.
Download PHP
PHP manual

Some users could meet problems if their PHP setting doesn't fit these ones:

- short_open_tag = On
- safe_mode = Off
- magic_quotes_gpc = On
- magic_quotes_runtime = Off

Past Dokeos versions required register_globals to be set to On. This is no longer necessary, this can be set to Off and Dokeos will work fine.

BSD users: these php libraries have to be included during php installation:

- php-mysql The mysql shared extension for php
- php-pcre The pcre shared extension for php
- php-session The session shared extension for php
- php-zlib The zlib shared extension for php
- (optional) php-ldap if you want to be able to use LDAP authentication

### 1.3. The MySQL database server

You will need a login and password allowing to administrate and create at least one database. By default, Dokeos will create a new database for each course created. It means your host should allow you to create and administrate several databases. You can also install DOkeos using only one database, in that case you have to select this option during the installation.
Download MySQL server
MySQL server manual

Note:
It seems the backticks characters (`) inserted inside most of the Dokeos SQL queries since version 1.3 don't work with MySQL versions before 3.23.6.

### 1.4. Permissions

Furthermore, you need web Write access to web directory where Dokeos has been moved or unzipped to. On a Windows machine locally, this is not a problem. Remotely, you need to be allowed to CHMOD through FTP, telnet or any means.

## 2. Installing a new version of Dokeos

2.1. Download the Dokeos 1.6.1 install package (.zip for Windows users or .tar.gz for all others) from the Dokeos download page.

2.2. Unzip or untar the downloaded install package. Most current operating systems can do this with a built-in graphical application, if this doesn't work you can open a commandline, go to the download directory and type tar -zxvf dokeos-1.6.1.tar.gz

2.3. Move by any means (FTP, SCP, local file copy) the contents of the Dokeos install package to your website on your webserver (whether webroot or subdirectory). Your webserver can also be your local computer. Be sure to copy all the folders (archive, home, claroline, courses) as well as all the .php files.

For Windows users who install Dokeos locally: if you use an Apache/PHP/MySQL combination package, just drag and drop the contents of the Dokeos install package into the web directory of the combination package:

- EasyPHP - C:\Program Files\easyphp\www\
- WAMP - C:\Program Files\wamp\www\
- XAMP - C:\Program Files\xamp\www\

2.4. The following directories need to be readable, writeable and executable for everyone:

- dokeos/claroline/inc/conf/
- dokeos/claroline/garbage/
- dokeos/claroline/upload/
- dokeos/archive/
- dokeos/courses/
- dokeos/home/

On Linux, Mac OS X and BSD operating systems you can use the CHMOD 777 command for this. In Windows, you may need to check the properties of the folders (by right-clicking on them).

2.5. The following files need to be readable and writeable for everyone:

- dokeos/claroline/inc/conf/claro_main.conf.php (if present)
- dokeos/home/*.html

On Linux, Mac OS X and BSD operating systems you can use the CHMOD 666 command for this. In Windows, you may need to check the properties of the files and folders (by right-clicking on them).

NOTE:
Do not modify the home_*.html files directly. Instead, choose "Configure the homepage" in the Dokeos administration section.

2.6. Open a web browser and go to http://www.yourserver.org/yoursite/dokeos/index.php If you install Dokeos locally (not on a server) open: http://localhost/dokeos/index.php

2.7. Click on the install button and follow instructions. Windows: with combination packages like easyphp, out of the box, login and password for MySQL should probably remain empty.

2.8. Configuration and security after installation

- Protect your configuration file: make sure no one can overwrite it. You can find the config file in (dokeos folder)/claroline/inc/conf/claro_main.conf.php. Make it read-only (windows/xwindows: right-click the file to edit the properties. linux/bsd/macosx: use the chmod 444 command). The config file is created by Apache so you may need to be root user to change its permissions.
- Protect your installation folder: if the (dokeos folder)/claroline/install folder is still accessible, someone could install over your existing version (you could lose your data that way). Move the folder somewhere out of the web directories so it is not accessible, change its name, or edit its properties so no one can read or execute it.
- For better security: making the files world-writable will help you install, and solves many issues for people without much admin experience. However, it's better security to make the owner of the apache process (often called apache or www-data) also owner of all the dokeos files and folders. Ths way, these files need only be readable and writable by the Apache process owner, not by the entire world.
- Configure your Dokeos installation: in the administration section of Dokeos, you can use the Dokeos Config Settings to adjust the behavior of your installation.
- Configure Dokeos mail: most of Dokeos uses the mail settings from the php.ini file. However, the announcements tool uses phpMailer (another free software project) and the settings for this tool can be adjusted in (dokeos folder)/claroline/inc/conf/mail.conf.php.

## 3. Upgrading from a previous version of Dokeos

Before upgrading we heavily recommend you do a full backup of the previous Dokeos directories and databases. If you are unsure how to achieve this please ask your hosting provider for advice.
If you upgrade from Dokeos 1.6, you can simply copy the new files of 1.6.1 over the files of the older version.
If you upgrade from a lower version of Dokeos (1.5.x), you'll have to use the built-in upgrade facility, as described below.

3.1. Download the Dokeos 1.6.1 install package (.zip for Windows users or .tar.gz for all others) from the Dokeos download page.

3.2. Unzip or untar the downloaded install package. Most current operating systems can do this with a built-in graphical application, if this doesn't work you can open a commandline, go to the download directory and type tar -zxvf dokeos-1.6.1.tar.gz

3.3. Move the Dokeos directory to a different path from the previous version

WARNING:
Do not delete the previous Dokeos installation directory before installing the new one. When the update is successfully finished, you can remove the old path.

TIP:
If you want Dokeos 1.6.1 to be installed in the same directory as the previous version :

- move the old directory to a new location (e.g. move dokeos/ to dokeos_old/)
- uncompress Dokeos 1.6.1 to the old version directory (e.g. uncompress Dokeos 1.6.1 to dokeos/)
- go to next step

3.4. The following files need to be readable and writeable for everyone:

- dokeos/claroline/inc/conf/claro_main.conf.php (if present)
- dokeos/home/*.html

On Linux, Mac OS X and BSD operating systems you can use the CHMOD 666 command for this. In Windows, you may need to check the properties of the folders.

NOTE:
Do not modify the home_*.html files directly. Instead, choose "Configure the homepage" in the Dokeos administration section.

3.5. The following directories need to be readable, writeable and executable for everyone:

- dokeos/claroline/inc/conf/
- dokeos/claroline/garbage/
- dokeos/claroline/upload/
- dokeos/archive/
- dokeos/courses/
- dokeos/home/

On Linux, Mac OS X and BSD operating systems you can use the CHMOD 777 command for this. In Windows, you may need to check the properties of the folders.

3.6. Open a web browser and go to http://www.yourserver.org/yoursite/dokeos/index.php Windows locally, with e.g easyphp or another combination package, open: http://localhost/dokeos/index.php

3.7. Click on the install button, then click on "Update from Dokeos 1.5 | 1.5.4 | 1.5.5" and follow the instructions.

3.8. This part is optional!
Since after version 1.5.5, the following tables in the dokeos_main database can be removed when upgrading from a 1.5.5 version or lower, provided that you don't use them for a customisation of your Dokeos system:

- `todo`
- `pma_bookmark`
- `pma_column_comments`
- `pma_pdf_pages`
- `pma_relation`
- `pma_table_coords`
- `pma_table_info`

These tables can be removed by connecting to the database as the Dokeos user and executing this query: DROP TABLE dokeos_main.my_table; where dokeos_main is the main dokeos database name and my_table is each of the preceding tables (repeat query for each)
A clean-up of the useless fields has also influenced some code: The main_db.cours.cours_id has been removed, as all references to that field throughout the official Dokeos code. The course code (literal) is used instead. Please update your custom code if any.
Under the same circumstances as tables removal, the following fields can be removed if not used by your code, using a query similar to: ALTER TABLE database.table drop column abc where database is the database name (dokeos_main? or code of a course) table is the table name (cours?) abc is the name of the field to drop You can thus drop the following fields:

- `_dokeos_main_`.`cours`.`versionDb`
- `_dokeos_main_`.`cours`.`versionClaro`
- `_dokeos_main_`.`cours`.`cahier_charges`
- `_dokeos_main_`.`faculte`.`bc`
  # the table `faculte` has been renamed to `course_category` since 1.6
- `_cours_`.`announcement`.`code_cours`
- `_cours_`.`course_description`.`upDate`

## 4. Troubleshooting

In the future we will also provide instructions on how to do a "manual" install of Dokeos, by creating the database tables yourself. If you have any problems, go to the Dokeos website and ask a question on our support forum. Please read the previous messages first to see if there is already an answer to your question. We also maintain a list of Frequently Asked Questions.

## 5. Administration section

To access the Dokeos administration section, open browser, go to your Dokeos adress and log in with the admin user. Then you will see a "Platform admin section" link in the header of the web page.

## 6. LDAP

This part is optional, only organisations with an LDAP server will need to read this.
An LDAP module is already provided in Dokeos, but it has to be configured to make it work.

Compiling
Linux servers: It's possible that you have to recompile php with ldap support. Newer distributions also allow downloading rpms for additional packages.

Activating LDAP in Dokeos
In (dokeos folder)/claroline/inc/conf/claro_main.conf.php, around line 90, you see
//for new login module
//uncomment these to activate ldap
//$extAuthSource['ldap']['login'] = "./claroline/auth/ldap/login.php";
//$extAuthSource['ldap']['newUser'] = "./claroline/auth/ldap/newUser.php";
remove the // from the last two lines to activate LDAP.

Settings
Ask the LDAP server admin for the settings:

- ldap server name
- ldap server port (usually 389)
- ldap dc

You must enter these in (dokeos folder)/claroline/auth/ldap/ldap_var.inc.php
//parameters for LDAP module
$usesLDAP = TRUE;
$usesCurriculum = FALSE;
$ldaphost = "myldapserver.com"; // your ldap server
$ldapport = 389; // your ldap server's port number
$ldapDc = "dc=xx, dc=yy, dc=zz"; //domain

Teacher/student status
If you wish, you can give teacher/student status to dokeos users according to settings in the ldap server. This is not a standard field however, so you'll have to change some code. claroline/auth/ldap/ldap_var.inc.php around line 189, function putUserInfoInClaroline ($login, $infoArray)

if (your criterium)
{
$statut = STUDENT;
}
else
{
$statut = COURSEMANAGER;
}

If this seems too difficult, the simplest solution is to just put $statut = STUDENT; and give course manager rights through the administration section.

Protected LDAP servers
Some LDAP servers do not support anonymous use of the directory services In this case, you need code that binds with a name and password - this code has already been provided, just ask on a forum or email for this.

Contact address: Dokeos, 44 rue des palais, B-1030 Brussels, Belgium
Mail: info@dokeos.com