<li><spanstyle="font-weight: bold;">PHP 5.4+ (5.6 recommended for greater efficiency) (support for PHP7 seems OK but not evaluated on high load setups just yet)</span></li>
<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.
Since version 1.10, Chamilo requires the web server to be able to deal with redirects. This is now very common within web platforms (be them CMS, LMS, ERP, etc) and allows them, between other things, to use URLs in an efficient and user-friendly manner.<br/>
If you don't use Apache as a web server, go to section "Rewrite configurations" at the end of this document.<br/>
If you do use Apache, configuring redirects is done in two small steps:
<ul>
<li>Enable the "rewrite" module in Apache (on the command line, run "<i>sudo a2enmod rewrite</i>")</li>
<li>Configure the Apache's VirtualHost for your Chamilo to include the following block, which will allow .htaccess files within Chamilo to be interpreted</li>
</ul>
For Apache <=2.2:
<pre>
<Directory />
AllowOverride All
Order allow,deny
allow from all
</Directory>
</pre>
and for Apache >=2.4:
<pre>
<Directory />
AllowOverride All
Require all granted
</Directory>
</pre>
<br/>
Once configured (and maybe this has already been done by your hosting provider), you can simply restart the web server to enable the change.
<spanstyle="font-weight: bold;">C:\xampp\htdocs\</span> on a Windows server or <spanstyle="font-weight: bold;">/var/www/html/chamilo</span> (or /var/www/chamilo/) on a Linux server (You need to create the folder "chamilo")</li>
<li>We recommend defining a specific Virtual Host for this installation.</li>
<li>If you have to install multiple Chamilo instances, avoid the installation of Chamilo in a inside a folder, instead prefer the use of different domains or using subdomains examples:
<p><spanclass="text-muted">On Linux, Mac OS X and BSD operating systems you can use the <em>chmod 0775</em> command for this (although we recommend you seek advice from an
experienced system administrator to avoid security issues). On Windows, you may need to check the properties of the folders (by right-clicking on them).</span></p>
<p><strong>Note:</strong><spanclass="text-muted">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 or very long learning paths (many items), make sure you set this setting higher than its default value of 1000.</span></p>
<p><strong>BSD and CentOS users:</strong> these php libraries have to be included during the PHP installation (php5 might have to be replaced by php in some instances):</p>
<li> check that you haven't left any customised stylesheet or image <spanclass="text-muted">(if you have, make sure you keep a copy on the side*)</span></li>
<li> download the Chamilo 1.11 install package from the <ahref="http://www.chamilo.org/download">Chamilo download page</a></li>
<li> unzip the new files of Chamilo 1.11 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> clean your app/cache/twig directory: delete all the contents *in* this directory (do NOT remove the directory itself, only its contents!).
It will all be re-generated.
You can also delete the contents of this directory through the "Archive directory cleanup" option in the "System" box of the Administration page.</li>
<li> you're done! No other upgrade procedure is required</li>
</ul>
<h3>3.2 Upgrading from Chamilo 1.10.x</h3>
<ul>
<li> check that you haven't left any customised stylesheet or image <spanclass="text-muted">(if you have, make sure you keep a copy on the side*)</span></li>
<li> download the Chamilo 1.11 install package from the <ahref="http://www.chamilo.org/download">Chamilo download page</a></li>
<li> unzip the new files of Chamilo 1.11 over the files of the older version
<li> clean your app/cache/twig directory: delete all the contents *in* this directory (do NOT remove the directory itself, only its contents!). It will all be re-generated. You can also delete the contents of this directory through the "Archive directory cleanup" option in the "System" box of the Administration page.</li>
Please note that if you (unluckily) upgraded from any of the 1.9 versions to 1.10.0 against our recommendations, we
provide a patch script that should get most of it in order. The script is available here:<br/>
<ahref="https://raw.githubusercontent.com/chamilo/chamilo-lms/1.10.x/tests/scripts/fix_migrations_1.9.x_1.10.0.php">https://raw.githubusercontent.com/chamilo/chamilo-lms/1.10.x/tests/scripts/fix_migrations_1.9.x_1.10.0.php</a> or, if
you are using a development version of Chamilo, directly into you tests/scripts/ folder. You should place the file
in the /tests/scripts/ folder, then edit it to remove the "die();" line, then launch it from your browser (after
connecting to your Chamilo site as admin). You should also remove the scripts afterwards.<br/>
This script is provided without warranty. Please *always* take a backup before you use it.
<li> make sure you don't have tables from previous versions of Chamilo still hanging around. These can cause the upgrade to fail. In particular, tables from versions 1.8.* could have multiple tables for each course, resulting in many tables with the same prefix. Only tables without prefix or with a "c_" prefix exist in 1.9 and superior versions. Make sure none of these tables persist. Take a backup of your database (just in case) and delete these prefixed tables (drop table ...).</li>
<li> check that you haven't left any customised stylesheet or image <spanclass="text-muted">(if you have, make sure you keep a copy on the side*)</span></li>
<li> download the Chamilo 1.11 install package from the <ahref="http://www.chamilo.org/download">Chamilo download page</a></li>
<li> unzip the new files of Chamilo 1.11 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> make *absolutely sure* that the .htaccess file of version 1.11 is copied as well</li>
<li> make sure "AllowOverride All" is present in your Apache configuration, as interpreting the .htaccess files is very important for Chamilo to work (note that the Order-Allow directive has been replaced by "Require all granted" in Apache 2.4)</li>
<li> once your portal is upgraded, clean your app/cache/twig directory: delete all the contents *in* this directory (do NOT remove the directory itself, only its contents!). It will all be re-generated. You can also delete the contents of this directory through the "Archive directory cleanup" option in the "System" box of the Administration page.</li>
This activation will not be completed unless you have previously downloaded the <ahref="http://www.wiris.com/plugins/ckeditor/download"target="_blank">PHP plugin for CKeditor WIRIS</a> and unzipped its contents into the main/inc/lib/ckeditor/editor/plugins/ckeditor_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:
Chamilo intermediate Administrators training (which you can ask any <ahref="http://www.chamilo.org/en/providers">Chamilo's Official Provider</a> for) include a full review of the full-text search feature.</p>
Note: Xapian's licensing for the PHP extension is a bit different than what is necessary to enter the Debian repositories, so it has been excluded. You can, however, generate your own package by following the <ahref="http://trac.xapian.org/wiki/FAQ/PHP%20Bindings%20Package">packaging instructions on Xapian's wiki</a>.
<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/>
Please note that this will effectively launch LibreOffice in a "headless" mode (thanks to the --headless option), in a "headless" terminal (thanks to screen). You can later get back into your "headless" terminal by launching:
<pre>
sudo screen -r
</pre>
You can 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). The above is *not* meant for production servers with a high load. You should get a real system administrator to look at it and develop init scripts, in a way that makes monitoring and relaunching feasable. If any sysadmin wants to contribute this, feel free to contribute it to Chamilo: send us an e-mail at info@chamilo.org.
<em>Note</em>: If you use LibreOffice 4, please note that version 4.2 (available in Ubuntu 14.04) has demonstrated to be more successfull at converting documents than version 4.1, which tended to crash when sending a document for conversion.
<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 app/config/configuration.php file, finding the following section, uncommenting the PHP lines and adapting it to your language:<br/>
File download can be very slow when passing through a PHP script to control permissions. One solution to this
is to use the X-Sendfile header, which depends on a module on the webserver. <ahref="http://stackoverflow.com/a/3731639/1406662">Check http://stackoverflow.com/a/3731639/1406662 for more details on implementing Sendfile</a>.
Chamilo LMS 1.9.8 (and following versions) supports the X-Sendfile headers, but requires a specific line of configuration to be
If you have issues with files taking a long time to download, make sure you reconfigure your webserver and add this line. You should see an notable difference in download time.
For Apache, this is done through enabling the Rewrite module and either allowing overrides (through .htaccess) or adding a specific configuration section to the VirtualHost defined for Apache.<br/>
For Nginx, this is done through specific redirection rules in the corresponding virtual host (server clause).<br/><br/>
To make sure this isn't too complex for anyone, we recommend a configuration below to help you out in both cases.
Please note that using .htaccess is the easiest way but might affect your server load considerably,
given .htaccess files are interpreted on *every* request, while a configuration block in your VirtualHost
section is compiled at configuration reload time.
<h3>Apache + .htaccess</h3>
<p>
To enable .htaccess on Apache, you just need to check 1 thing: In a <Directory> block of the root folder of Chamilo, ensure the following lines are present:
Nginx doesn't support .htaccess rules, so you have no other option than to apply the following rules (note that your PHP backend configuration may vary).
These are only the redirection rules to be placed inside a server{} block, as other settings might differ from one installation to another.
<li>Make sure you have no additional elements that were not commited (git status/git stash)</li>
<li>If you have issues, you can always save your code somewhere else and ask Git to put you exactly at the most recent 1.9.x stage ("git pull"/"git reset --hard origin/1.9.x")</li>
<li>Once you're sure you have a "clean" local Chamilo repository, create a 1.11.x branch with "git checkout -b 1.11.x"</li>
<li>In the new branch, download all code from the 1.11.x branch upstream: "git pull origin 1.11.x"</li>
<li>If you never used composer or used it only a few times in the past, you might need to update it (rm -rf ~/.composer/vendor; composer clear-cache) before trying the following command</li>