Chamilo is mainly a LMS running from <spanstyle="font-weight: bold;">Apache (1.3, 2.0 or 2.2)</span>, with a <spanstyle="font-weight: bold;">MySQL 5.1 (or MariaDB)</span> database backend and <spanstyle="font-weight: bold;">PHP 5.3.3 (or 5.4)</span> (the so called <spanstyle="font-weight: bold;">AMP</span> trilogy). <br/>
<li>To install <spanstyle="font-weight: bold;">WAMP</span> (AMP on Windows), we recommend the <ahref="http://www.apachefriends.org/en/xampp.html">XAMPP</a> .exe installer<ahref="http://www.apachefriends.org/en/xampp.html"></a></li>
<li>To install <spanstyle="font-weight: bold;">MAMP</span> (AMP on Mac OS X), refer to the <ahref="http://www.mamp.info/en/index.php">MAMP</a> dedicated website<ahref="http://www.mamp.info/en/index.php"></a></li>
<li>Make sure you check the <ahref="dependencies.html"title="Dependencies">Dependencies page</a> if you need to know the requirements in more precise way.
a database. Usually, the default configuration on local computers is to allow you to connect as root with an empty password. It is highly recommended to change the password and define a user with access to only a specific database. Please refer to the MySQL or MariaDB documentation in order to do this.<br/>
<h3>Configuring your web server to allow .htaccess overrides</h3>
Starting from 1.10, Chamilo LMS allows friendly URLs if using Apache. As it is based on .htaccess and rewrites, you will be required to <b>AllowOverride All</b> (and possibly enable the ModRewrite extension for Apache). This means that, inside your Apache configuration (or your VirtualHost configuration), you will need to have a block similar to this (the directory given is the same as in the <i>DocumentRoot</i> directive):
In particular, the "AllowOverride All" clause is the one that matters. This will allow PHP to send the user from one page to another freely, thus allowing for friendlier URLs.<br/>
Once you've made sure "AllowOverride" says "All", you can safely save the file, get out of it and reload the web server (<i>sudo service apache2 reload</i> under Debian/Ubuntu, orright-click on the WAMP/XAMP/EasyPHP icon and "reload web server" under Windows).</p>
Please note that, if you are using Chamilo LMS in a subdirectory (for example, you load it in your browser as http://localhost/chamilo/ or http://yoursite.com/chamilo/, you will also need to alter the .htaccess file in the root directory of Chamilo, <b>before</b> you proceed with the installation.<br/>
On the RewriteBase line, where it normally says "/", change it to whatever subdirectory name you are using. In the default case described above, your RewriteBase will have to say "chamilo/" (without the quotes).
<spanstyle="font-weight: bold;">C:\xampp\htdocs\</span> on a Windows server or <spanstyle="font-weight: bold;">/var/www/html/</span> (or /var/www/chamilo/) on a Linux server</li>
<spanstyle="font-weight: bold;">http://localhost/chamilo/</span> if installing locally or
<spanstyle="font-weight: bold;">http://www.domain.com/chamilo/</span> if installing remotely. <spanclass="muted">We recommend defining a specific Virtual Host for this installation if you have the skills to do so</span>
<spanclass="muted">This usually requires no specific action on Windows servers, but will require a "chmod" under Linux/UNIX and Mac. See instructions below.</span>
<br/>Replace [chamilo] with the directory where your Chamilo installation is located:
<li><ahref="http://www.php.net/manual/en/pcre.installation.php"target="_blank">PCRE</a> (enabled by default since PHP 4.2)</li>
<li><ahrer="http://www.php.net/manual/en/session.installation.php"target="_blank">session</a> (enabled by default since the creation of PHP)</li>
<li><ahref="http://www.php.net/manual/en/json.installation.php"target="_blank">json</a> (enabled by default since PHP 5.2)</li>
<li><ahref="http://www.php.net/manual/en/image.installation.php"target="_blank">gd</a> (not enabled by default)</li>
<li><ahref="http://www.php.net/manual/en/mysql.installation.php"target="_blank">mysql</a> or <ahref="http://www.php.net/manual/en/mysqlnd.install.php"target="_blank">mysqlnd</a> (neither of these is enabled by default, but we recommend mysqlnd for higher efficiency, mysql also being deprecated starting from PHP 5.5)</li>
<li><ahref="http://www.php.net/manual/en/mbstring.installation.php"target="_blank">mbstring</a> (not enabled by default)</li>
<li><ahref="http://www.php.net/manual/en/zlib.installation.php"target="_blank">zlib</a> (NOT enabled by default)</li>
<li><ahref="http://www.php.net/manual/en/curl.installation.php"target="_blank">curl</a> (required for links checking in the links tool)</li>
<li><ahref="http://www.php.net/manual/en/iconv.installation.php"target="_blank">iconv</a> (enabled by default, it is used as a second option to mbstring, required above, but Symfony components depend on mbstring only, so this recommendation might be removed in the future)</li>
<li><ahref="http://www.php.net/manual/en/ldap.installation.php"target="_blank">ldap</a> (required only if you use LDAP authentication)</li>
<li><ahref="http://xapian.org/download"target="_blank">xapian</a> (required only to use the text indexing feature - see further down this installation guide for install instructions)</li>
<li><ahref="http://www.php.net/manual/en/imagick.installation.php"target="_blank">imagick</a> (generates better images thumbnails when using the text indexing feature requiring the Xapian extension)</li>
On any recent Debian/Ubuntu, just copying those lines into a new .ini file installed in /etc/php5/conf.d/ (e.g. /etc/php5/conf.d/chamilo.ini) and reloading Apache's config (i.e. "sudo service apache2 reload") would do the trick. Any later php.ini modification in this documentation could/should subsequently as well be applied in this file instead.
<p><strong>Note:</strong> PHP 5.3.9 introduces a new setting "max_input_vars", which limits the number of elements you can send in one single form. If you are dealing with numerous users, make sure you set this setting higher than its default value of 1000.</p>
<h3>3.1 Upgrading from Chamilo 1.9.x (minor upgrade)</h3>
As this is only a minor version change from previous 1.9.* versions of Chamilo, the only thing you need to do is:
<ul>
<li> check that you haven't left any customised stylesheet or image <spanclass="muted">(if you have, make sure you keep a copy on the side*)</span></li>
<li> download the Chamilo 1.9 install package from the <ahref="http://www.chamilo.org/download">Chamilo download page</a></li>
<li> unzip the new files of Chamilo 1.9 over the files of the older version (or unzip the files in one folder and then copy the files from there to the older version's directory)</li>
<li> edit the main/inc/conf/configuration.php file: at the end of the file, locate the previous version number (e.g. '1.9.2') and change it to this new version (e.g. '1.9.4')</li>
<li> check that you haven't left any customised stylesheet or image <spanclass="muted">(if you have, make sure you keep a copy on the side*)</span></li>
<li> download the Chamilo 1.9 install package from the <ahref="http://www.chamilo.org/download">Chamilo download page</a></li>
<li> unzip the new files of Chamilo 1.9 over the files of the older version (or unzip the files in one folder and then copy the files from there to the older version's directory)</li>
<li> check that you haven't left any customised stylesheet or image <spanclass="muted">(if you have, make sure you keep a copy on the side*)</span></li>
<li> download the Chamilo 1.9 install package from the <ahref="http://www.chamilo.org/download">Chamilo download page</a></li>
<li> unzip the new files of Chamilo 1.9 over the files of the older version (or unzip the files in one folder and then copy the files from there to the older version's directory)</li>
manage the transition by letting your users get access to their contents from the previous site and making it easier for you to compare the two.
If you are experiencing difficulties, consider asking for help from a PHP developer or hiring an <ahref="http://www.chamilo.org/en/providers"target="_blank">official Chamilo provider</a>. They will make sure
<li>1. Configure your Apache installation to add a cgi-bin directory that contains a symbolic link to the mimetex.cgi in <i>chamilo/main/inc/lib/mimetex/</i> (*see below, step 4)</li>
<li>2. Reload your Apache configuration</li>
<li>3. Edit the online editor's configuration file <i>chamilo/main/inc/lib/fckeditor/myconfig.php</i> and</li>
<li>3.1. Enable the mimetex plugin, find the line //$config['LoadPlugin'][] = 'mimetex'; and modify it to be: <b>$config['LoadPlugin'][] = 'mimetex';</b> (remove the double slash)</li>
<li>3.2. The additional settings <b>$config['MimetexExecutableInstalled']</b> , <b>$config['MimetexExecutableDetectionMethod']</b>
and <b>$config['MimetexExecutableDetectionTimeout']</b> are configured for best probability of automatic detection of the installed on the server file <i>mimetex.cgi</i> or <i>mimetex.exe</i>.
In rare cases these options might need to be twicked, see the acccompanying comments about these options within the file <i>myconfig.php</i></li>
<li>5. Make sure that the file mimetex.cgi (or mimetex.exe) has right to be executed by the web-server process. For example, on a Ubuntu Linux system you may write a command like the following:
<divclass="code">
sudo chmod a+x mimetex.cgi
</div>
</li>
<li>6. Make sure that the file mimetex.cgi (or mimetex.exe) has been uploaded in <b>BINARY</b> format.
<h2><aname="8._ASCIIMathML_mathematical_formulas"></a>8. Mathematical formulas with ASCIIMathML</h2>
<p>Mathematical formulas may be rendered on web-pages using the script ASCIIMathML.js (a customized version for Chamilo). For more information about this script
and about the ASCIIMath formula syntax see <ahref="http://www1.chapman.edu/~jipsen/mathml/asciimath.html">http://www1.chapman.edu/~jipsen/mathml/asciimath.html</a>
and <ahref="http://dlippman.imathas.com/asciimathtex/AMT.html">http://dlippman.imathas.com/asciimathtex/AMT.html</a>.</p>
<p>For writing ASCIIMath formulas in documents, a correspondent plugin for the online editor should be activated. For doing this,
<li>By translation ASCIIMath formula notation into MathML code. MathML standard currently is supported by the following browsers:
<ul>
<li>Mozilla Firefox, you may consider installing STIX fonts (<ahref="http://www.stixfonts.org">http://www.stixfonts.org</a>) on your client machines for nice looking formulas</li>
<li>Internet Explorer 6 or higher with the add-on MathPlayer 2.0 or higher (<ahref="http://www.dessci.com/en/products/mathplayer">http://www.dessci.com/en/products/mathplayer</a>)</li>
<li>Opera 9.5 or higher</li>
</ul>
</li>
<li>For browser that do not support MathML - by translation ASCIIMath formula notation into TeX notation and passing it to
an external service. The external service produces and returns an image that contains the formula. This way is so called
<p>For providing <strong>image-based fallback</strong> in a production system, you should pick up and install on your server software for TeX rendering, such as:</p>
This activation will not be completed unless you have previously downloaded the <ahref="http://www.wiris.com/plugins/editors/download?filter=fckeditor"target="_blank">PHP plugin for FCKeditor WIRIS</a> and unzipped its contents into the main/inc/lib/fckeditor/editor/plugins/fckeditor_wiris/ directory. <br/>This is necessary because Wiris is proprietary software and its services are <ahref="http://www.wiris.com/store/who-pays"target="_blank">commercial</a>. To make adjustments to the plugin, edit configuration.ini file or replace his content by configuration.ini.default Chamilo file.</p>
<h2><aname="10._Xapian_fulltext_indexing"></a>Full-text indexation with Xapian</h2>
<p>
<em>Note</em>: This step will require a dedicated server or a virtual dedicated server as the packages involved are not available on most shared hosting solutions.<br/>
On Debian or Ubuntu 10.04 and superior, you will simply need to install the php5-xapian package and restart your web server:
<em>Note</em>: This step will require a dedicated server or a virtual dedicated server as the packages involved are not available on most shared hosting solutions.<br/>
Then go to your administration page -><i>Chamilo Rapid</i> and set the host to "localhost" and the port to "2002". Save. Go to your course, learning path tool and see the new icon appeared. Import your PPT. This should work.
<em>Note</em>: Sometimes, this doesn't work out so easily. You can probably ask for the assistance of any system administrator around with a bit of Java and PHP experience, or you can always ask one of the Chamilo's Official Providers for assistance (ask for a guaranteed commercial contract).
<h2><aname="13._Changing_language_names_order"></a>Changing the language's firstname/lastname order</h2>
<p>
As Chamilo becomes more popular and crosses many borders now, it frequently happens that administrators want to re-order the firstname and lastname fields in tables, and also on which field it is sorted first.<br/><br/>
This can easily be modified by editing the main/inc/lib/internationalization_database/name_order_conventions.php file, finding your language and changing the fields. It is pretty self-explanatory and looks like this:<br/>