# Chamilo 1.11 - Guía de Instalación

Gracias por descargar Chamilo, la suite de aprendizaje de código abierto profesional.

- Prueba Chamilo en nuesto Campus libre

Esta guía explica como instalar Chamilo LMS. Por favor, léala completamente antes de proceder con la instalación.

English: Get back to the English version of the installation guide.

French: Vous pouvez aussi lire ce guide d'installation en français.

Italian: You can also read this guide in Italian.

## Contenidos

1. Prerrequisitos
2. Instalación de Chamilo LMS
3. Actualizar desde una versión previa de Chamilo o Dok€os
4. Resolución de problemas
5. Sección de administración
6. LDAP
7. Fórmulas Matemáticas con WIRIS
8. Indexación de texto completo con Xapian
9. Chamilo Rapid - sistema conversion PPT
10. Configuración de tareas programadas
11. Cambiando el orden del nombre/apellido en el idioma
12. Mejora de la eficacia de descarga de archivos
13. Videoconferencia
14. Rewrite
15. Actualización de Git

## 1. Prerrequisitos

Chamilo puede ser instalado indiferentemente en servidores Windows, Linux, Mac OS X y UNIX. Sin embargo, nosotros recomendamos el uso de un servidor Linux para una óptima flexibilidad, control remoto y escalabilidad.

Chamilo es fundamentalmente un LMS que se ejecuta con:

- Apache 2.2+
- MySQL 5.6+ o MariaDB 5+
- PHP 5.5+ (7.2 recomendado para mayor eficiencia)

Todo este software es software de código abierto y está disponible libremente.

Para ejecutar Chamilo LMS en su servidor, necesita instalar WAMP, LAMP o MAMP:

- Para instalar WAMP (AMP en Windows), recomendamos el instalador XAMPP.exe
- Para instalar LAMP (AMP en Linux), use el administrador de paquetes de su distribución favorita (Synaptic, RPMFinder etc.). Por ejemplo, en un servidor Ubuntu, use Shell o Synaptic siguiendo la Ubuntuguide on Apache y las secciones siguientes.
- Para instalar MAMP (AMP en Mac OS X), referirse al sitio web dedicado a MAMP
- Asegúrese de revisar la página Dependencias, si necesita saber los requisitos de una manera más precisa.

### Servidor de Base de Datos MySQL

Usted necesitará un nombre de usuario y contraseña que le permita administrar y borrar+crear una base de datos. Por lo general, la configuración predeterminada en los equipos locales es permitir que usted conecte como root con una contraseña vacía. Se recomienda cambiar la contraseña y definir un usuario con acceso sólo a una base de datos específica. Por favor, consulte la documentación de MySQL o MariaDB con el fin de hacer esto.

Nota:Esto se ha simplificado en gran medida desde la versión 1.9, ya que antes era necesario elegir entre múltiples bases de datos y un modo obsoleto de una sola base de datos.
Si no tiene permisos para borrar y crear la base de datos seleccionada, la instalación de Chamilo no funcionará porque, para mantener la base de datos limpia de todos restos de otras instalaciones, intentará borrar (drop) la base de datos antes de volverla a crear. Eso se explica en cierto detalle en este reporte

### Redirecciones de Apache

Desde su versión 1.10, Chamilo requiere del servidor web que pueda gestionar redirecciones. Es algo muy comunes entre todos los sistemas web (ya sean CMS, LMS, ERP, etc) que permite, entre otras cosas, el uso inteligente y amigable de las URLs.
Si no usa Apache, debería consultar la sección "Configuraciones opcionales para Apache y Nginx" al fin de este documento.
Si usa Apache, configurar las redirecciones consta de dos pasos:

- Activar el módulo "rewrite" de Apache (en línea de comando con "sudo a2enmod rewrite")
- Configurar el VirtualHost de Apache para que incluya el bloque siguiente, autorizando la interpretación de los archivos .htaccess

Para Apache <=2.2 (remplace /var/www/chamilo/ por la ruta de su carpeta Chamilo en el servidor):

    <Directory />
      AllowOverride All
      Order allow,deny
      allow from all
    </Directory>
    <Directory /var/www/chamilo/>
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

y para Apache >=2.4:

    <Directory />
      AllowOverride All
      Require all granted
    </Directory>
    <Directory /var/www/chamilo/>
      AllowOverride All
      Require all granted
    </Directory>

Una vez configurada esta parte (que quizás ya esté configurada por su proveedor), basta con reiniciar el servidor web para activar el cambio.

## 2. Instalación de Chamilo LMS

Antes de inciar la instalación de Chamilo LMS, debe entender que, como proveemos Chamilo como un paquete de software libre, diversos proveedores (oficiales y no-oficiales) han podido desarrollar extensiones de Chamilo, las cuales han hecho posible la instalación de Chamilo de muchas maneras distintas:

- Como un solo paquete a través de un proveedor oficial certificado por la Asociación Chamilo
- Como una solución instalable en unos de muchos proveedores de alojamiento que soportan cPanel con Scriptaculous
- Con vuestro proveedor de alojamiento preferido, usando instaladores a distancia como el Installatron
- En vuestro propio servidor, descargando e instalando Chamilo manualmente
- En vuestra computadora, en casa o en la oficina, solo para probarlo o desarrollarlo

Esta guía solo cubre los dos últimos métodos. Para los demás, siempre podeis consultar las posibilidades con vuestro proveedor.

Para instalar, sigue estos sencillos 6 pasos:

1. Descargar Chamilo LMS
2. Descomprimirlo.
3. Copiar el directorio de Chamilo en su directorio web de Apache. Este puede ser C:\xampp\htdocs\ en un servidor Windows o /var/www/html/chamilo (o /var/www/chamilo/) en un servidor Linux.
4. Verificar que su servidor web soporta los archivos .htaccess (ver sección de Rewrite más a bajo) (este paso es nuevo en comparación con versiones anteriores)
5. Abrir su navegador web (Internet Explorer, Firefox, Chrome, ...) y escribir http://localhost/chamilo/ si se instala de manera local o http://www.domain.com/chamilo/ si se instala remotamente.
6. Seguir el proceso de instalación web. Usted puede aceptar todos los valores predeterminados. Considere cambiar la contraseña de administrador y recuérdela.

* Recomendammos definir un VirtualHost específico para esta instalación, si tiene las competencias para hacerlo.

### Recomendaciones

- Recomendamos definir un Virtual Host especifico para esta instalación.
- Si tiene que instalar varias instancias de Chamilo, evite la instalación de Chamilo dentro de una carpeta, prefiera el uso de diferentes dominios o el uso de ejemplos de subdominios:
  1. http://www.mi-dominio.com/ ( recomendado)
  2. http://chamilo.mi-dominio.com ( recomendado)
  3. http://chamilo2.mi-dominio.com ( recomendado)
  4. http://www.mi-dominio.com/chamilo ( no recomendado)
  5. http://www.mi-dominio.com/chamilo2 ( no recomendado)
  6. http://chamilo.mi-dominio.com/my-chamilo/ ( no recomendado)

Nota: en caso de instalar Chamilo localmente usando "localhost" o la dirección IP de la máquina durante la instalación, algunos problemas podrían presentarse cuando se acceda desde otra computadora. Para evitarlo, recomendamos la lectura de este artículo para aprender como cambiar su archivo de configuración .

### Permisos

Los siguientes directorios necesitan tener permisos de lectura, escritura y ejecución en el servidor web. Esto por lo general no requiere ninguna acción específica en los servidores de Windows, pero se requiere un "chmod" bajo Linux y Mac. Consulte las siguientes instrucciones.

Remplace [chamilo] por el directorio en el cual está ubicado su Chamilo:

- [chamilo]/app/
- [chamilo]/vendor/ (solo en lectura y ejecución)
- [chamilo]/web/
- [chamilo]/main/default_course_document/images/

Opcionalmente, puede hacer lo mismo al directorio siguiente si desea activar la definición de sub-idiomas:

- [chamilo]/main/lang/

Si encuentra una carpeta tests/ a la raíz de su paquete Chamilo, por favor borrelo. Se trata de una carpeta de trabajo de los desarrolladores, y no ha sido verificado para evitar riesgos de seguridad, por lo cual no debería *nunca* ser accesible a usuarios finales en un servidor de producción.

En Linux, Mac OS X y sistemas operativos BSD puede usar el comando "chmod 0775" para cambiar estos permisos (aunque nosotros recomendamos que busque la ayuda de un administrador de sistemas con experiencia para evitar fallas de seguridad). En Windows, es probable que necesite revisar las propiedades de los directorios (mediante el uso del clic derecho en ellos).

Windows: con paquetes combinados de todos en uno como XAMPP, usted puede instalar Chamilo facilmente. En este caso (y si no lo utiliza en la producción), el nombre de usuario y una contraseña para MySQL probablemente permanecerá vacía.

### Configuración y seguridad después de la instalación

- Proteger su directorio de configuración: asegurarse que nadie pueda sobreescribirlo. Usted puede encontrar el directorio de configuración en (carpeta de chamilo)/main/inc/conf. Hacerlo de solo lectura (windows/xwindows: clic derecho en el archivo para editar las propiedades. linux/bsd/macosx: usar el comando chmod 0555). El archivo de configuración es creado por el servidor web (Apache + PHP, normalmente), por lo tanto usted necesita ser administrador para cambiar sus permisos.
- Configurar su instalación de Chamilo: en la sección de administración de Chamilo, usted puede usar las Opciones de Configuración de Chamilo para ajustar el comportamiento de su instalación.
- Consulte nuestra nueva guia de seguridad para más información.

### Configuración PHP

Para obtener lo mejor de Chamilo, necesita ajustar la configuración de PHP. Considere:

- Configuración del correo de Chamilo: la mayor parte de Chamilo usa la configuración de correo del archivo php.ini. Sin embargo, si utiliza un servidor de correo electrónico distinto, puede necesitar ajustar la configuración del correo electrónico en (carpeta chamilo ) /app/config/mail.conf.php.
- Editar el archivo php.ini (en Windows puede estar ubicado en C:\xampp\php\php.ini, en Ubuntu Linux : /etc/php5/apache2/php.ini
- Buscar la palabra "_max" y incrementar los valores para optimizar el servidor
- Nosotros recomendamos ajustar los siguiente valores (lo que sigue ";" son comentarios):

    max_execution_time = 300; Tiempo máximo de ejecucion para cada script, en segundos
    max_input_time = 600; Tiempo máximo que cada script que puede emplear para analizar los datos solicitados
    memory_limit = 256M; Maxima cantidad de memoria que un script puede consumir (128MB
    post_max_size = 100M
    upload_max_filesize = 100M;
    short_open_tag       = Off
    safe_mode            = Off
    magic_quotes_gpc     = Off
    magic_quotes_runtime = Off

Importante: Necesitará configurar el parámetro date.timezone al valor de zona horaria de su servidor. Por ejemplo, si su servidor está en la zona horaria de 'America/New_York', configurar el parámetro date.timezone a este valor en su php.ini:

    date.timezone = 'America/New_York'

Nota: PHP 5.3.9 introduce un nuevo parámetro llamado "max_input_vars", que limita la cantidad de elementos que puede enviar en un solo formulario. Si gestiona numerosos usuarios o lecciones muy largas, asegúrese de configurar este parámetro a un valor mayor a su valor predeterminado de 1000.

Usuarios BSD y CentOS: estas bibliotecas de php tienen que ser incluidas durante la instalación de PHP (php5 podría tener que ser reemplazado por php en algunos casos):

- php5-session La extensión compartida de sesión para php
- php5-mysqlnd La extensión compartida de mysql para php
- php5-zlib La extensión compartida de zlib para php
- php5-pcre La extensión compartida de pcre para php
- php5-xml
- php5-json
- php5-mcrypt
- php5-iconv o php5-mbstring (cualquiera de los dos)
- php5-gd la extensión de generación de gráficos de PHP
- php5-intl la extensión de reglas de representación internacionales

También puede necesitar estos módulos y paquetes:

- php5-ctype
- php5-ldap
- php5-xapian
- php5-curl
- php5-xsl

## 3. Actualizar desde una versión previa de Chamilo LMS (1.*) o Dok€os (<2.0)

Antes de actualizar, le recomendamos seriamente que haga una copia de seguridad de los directorios y bases de datos de Chamilo/Dokeos que previamente haya en su servidor. Si no está seguro de cómo hacer esto solicite asistencia a su proveedor de servicios de almacenamiento.

Chamilo LMS 1.10 unifica todos los archivos dentro de cada idioma de la carpeta main/lang/. Si había cambiado algun archivo de idioma directamente (en vez de usar el método recomendado: sub-idiomas), debería tomar una copia de backup de estos cambios antes de actualizar.

NOTA: Para sistemas Chamilo con bases de datos muy pesadas, algunos de nuestros proveedores han desarrollado procedimientos usando más memoria pero acortando el tiempo necesario de la migración por hasta 20 veces. No dude en contactar con ellos (referencias más a bajo) si requiere de este tipo de servicios
NOTA: Esta versión de Chamilo sólo se puede utilizar para actualizar desde versiones inferiores de Chamilo 1.9.*. Por ejemplo, no puede utilizar los scripts de actualización normales de Chamilo 1.9 para actualizar desde Dok€oS 2.0. Si usted necesita esto, por favor póngase en contacto con uno de los proveedores oficiales de la Asociación Chamilo)

### 3.1 Actualizar desde Chamilo 1.11.x (actualización menor)

Dado que se trata sólo de un cambio de versión menor previa de Chamilo 1.11.*, lo único que tiene que hacer es:

- Revisar que no ha dejado alguna hoja de estilo personalizada o imagen (si es que tiene, asegúrese de guardar una copia de respaldo)
- Descargar el paquete de instalación de Chamilo 1.11 desde la página de descarga de Chamilo
- Descomprimir los nuevos archivos de Chamilo 1.11 sobre los archivos de la versión anterior (o descomprimirlos en una nueva carpeta y después copiarlos sobre los archivos de la versión anterior)
- Limpie el directorio app/cache/twig: elimine todos los contenidos *en* este directorio (NO elimine el directorio en sí, ¡solo sus contenidos!). Se volverá a generar todo. También puede eliminar los contenidos de este directorio a través de la opción "Limpieza de caché y archivos temporales " en el cuadro "Sistema" de la página de Administración.
- Ya está! Ningún otro procedimiento de actualización es requerido.

### 3.2 Actualizar desde Chamilo 1.10.x

- Compruebe que no ha dejado ninguna hoja de estilo o imagen personalizada (si la tuviera, asegúrese de realizar una copia de respaldo*)
- Descargue el paquete de instalación de Chamilo 1.11 desde la página de descarga de Chamilo
- Descomprima los nuevos ficheros de Chamilo 1.11 sobre los ficheros de la antigua versión ( o descomprima en una carpeta y luego copie los archivos en el directorio de la versión antigua) Nota: debes borrar los directorios "home" y "searchdb" del paquete antes de sobrescribir los archivos anteriores.
- Limpie el directorio app/cache/twig: elimine todos los contenidos *en* este directorio (NO elimine el directorio en sí, ¡solo sus contenidos!). Se volverá a generar todo. También puede eliminar los contenidos de este directorio a través de la opción "Limpieza de caché y archivos temporales " en el cuadro "Sistema" de la página de Administración.
- Escriba en su navegador web la URL de su portal + main/install/ y sigue el procedimiento de actualización

Tenga en cuenta que si (desafortunadamente) actualizó desde cualquiera de las versiones 1.9 a 1.10 en contra de nuestra recomendaciones, proporcionamos un parche (script) para obtener la mayor parte de orden. Este parche está disponible aquí:
https://raw.githubusercontent.com/chamilo/chamilo-lms/1.10.x/tests/scripts/fix_migrations_1.9.x_1.10.0.php o, si está utilizando una versión de desarrollo de Chamilo, directamente en la carpeta tests/scripts/ . Debe colocar el fichero en la carpeta /tests/scripts/ , luego edítelo para eliminar la línea del "die();", finalmente ejecutelo su navegador (después de conectarse a su sitio Chamilo como administrador). Deberías borrar el script una vez finalizado.
Este script se proporciona sin garantía. Por favor * siempre * realice una copia de seguridad antes de usarlo.

### 3.3 Actualizar desde Chamilo 1.9.x

Chamilo LMS 1.11.x viene con una nueva estructura de base de datos en comparación con 1.9, como fue el caso entre 1.9 y 1.8. Aunque el script de actualización toma la migración a cargo, puede generar una carga alta de recursos en su servidor durante la actualización, y cambiará su base de datos considerablemente, conservando los datos lo mejor posible (hemos probado el procedimiento muchas veces, pero recuerde esto es GNU/GPLv3 y no nos hacemos responsables de lo que sucedería con sus datos sin supervisión profesional). Es por eso que *realmente* le recomendamos que haga una copia de seguridad completa de su sistema antes de actualizar.

También tenga en cuenta que Chamilo LMS 1.10 une todos los archivos de idioma del directorio main/lang/ en un solo archivo por idioma. Si ha cambiado los archivos de idioma directamente (en lugar de usar la manera recomendada: sub-idiomas), debe tomar una copia de seguridad de estas traducciones modificadas antes de actualizar. Los sub-idiomas también pueden requerir algún trabajo manual, pero el procedimiento de actualización no afectará directamente a los sub-idiomas.

- Asegúrese que ninguna tabla de una versión anterior (a la 1.9) exista en su base de datos. Estas tablas pueden causar errores durante el proceso de actualización hacia versiones superiores. En particular, las tablas de versiones 1.8.* y anteriores podían repetirse una vez por curso, resultando en una gran cantidad de tablas que compartían el mismo prefijo. Solo las tablas sin prefijo o con un prefijo "c_" son legítimas en Chamilo 1.9 y siguientes. Asegúrese de que ninguna de estas antiguas tablas persista. Tóme una copia de seguridad de la base de datos (por si a caso) y luego borre estas tablas con prefijo (drop table ...).
- Compruebe que no ha dejado ninguna hoja de estilo o imagen personalizada (si la tuviera, asegúrese de realizar una copia de respaldo*)
- Descargue el paquete de instalación de Chamilo 1.11 desde la página de descarga de Chamilo
- Descomprima los nuevos ficheros de Chamilo 1.11 sobre los ficheros de la antigua versión ( o descomprima en una carpeta y luego copie los archivos en el directorio de la versión antigua)
- Asegúrese *por completo* que el archivo .htaccess de la versión 1.11 ha sido copiado en la raíz también
- Asegúrese que "AllowOverride All" está presente en su configuración de Apache, ya que interpretar el archivo .htaccess es muy importante para que Chamilo funcione (ojo que la directiva Order-Allow ha sido remplazada por "Require all granted" en Apache 2.4)
- Escriba en su navegador web la URL de su portal + main/install/
- Elija su idioma y haga click sobre Actualizar desde 1.9.x
- Limpie el directorio app/cache/twig: elimine todos los contenidos *en* este directorio (NO elimine el directorio en sí, ¡solo sus contenidos!). Se volverá a generar todo. También puede eliminar los contenidos de este directorio a través de la opción "Limpieza de caché y archivos temporales " en el cuadro "Sistema" de la página de Administración.

* Los estilos e imágenes están ubicados en el directorio main/css o main/img. Usted puede recuperarlos desde la copia de seguridad en el caso de que usted hya tenido la precaución de realizarla. Cualquier estilo o imagen modificada que use el nombre predeterminado style/image será sobrescrita en el siguiente paso. Para evitar perder cualquier personalización, siempre asegúrese de copiar styles/images bajo un nuevo nombre y use y modifique la copia, no el original. El original siempre sera sobrescrito por nuevas versiones. En Dok€os 1.8.5, hemos cambiado el nombre de varios temas CSS. La compatibilidad hacia atrás está asegurada por el hecho de que una actualización sólo agrega los nuevos temas, sin embargo usted debe usar estos nuevos temas en lugar de quedarse con los antiguos que quedarán obsoletos dentro de poco (sin mantenimiento).

### 3.4 Actualizar desde Chamilo 1.8.x

Para actualizar desde una versión previa a la 1.9.0, deberá a partir de ahora primero actualizar a la versión 1.9.10.x, para luego actualizar de ahí a la 1.11.x. Podrá encontrar una versión descargable de 1.9.10.x aquí: https://github.com/chamilo/chamilo-lms/releases

### 3.5 Permisos de directorios al actualizar desde 1.9.x

Las carpetas siguientes necesitan tener permisos de lectura, escritura y ejecución para el servidor web:

- [chamilo]/main/lang/ (in order to delete unnecessary language files)
- [chamilo]/courses/ (in order to move the courses files to the app/courses folder)
- [chamilo]/archive/ (in order to remove unnecessary files or move them to app/cache/)
- [chamilo]/home/ (in order to move files to app/home)
- [chamilo]/app
- [chamilo]/web
- [chamilo]/vendor
- [chamilo]/main/default_course_document/images/

En Linux, Mac OS X y BSD, puede arreglar esto rápido usando el comando chmod 0777 pero, si no está seguro, recomendamos que busque consejo para su propio sistema operativo en nuestro foro abierto. En Windows, puede necesitar propiedades de las carpetas.

ADVERTENCIA:
No elimine el directorio de instalación previo de Chamilo antes de instalar el nuevo. Usted puede eliminar la ruta antigua, cuando la actualización haya finalizado satisfactoriamente.

## 4. Solución de problemas

Si usted tiene problemas, vaya al Sitio Web de Chamilo y haga una pregunta en el foro de soporte. Por favor, primero lea los mensajes previos para ver si existe ya una respuesta a su pregunta. Nosotros también mantenemos una lista de Preguntas Frecuentes.

## 5. Sección de Administración

Para acceder a la sección de administración de Chamilo, abra el navegador, diríjase a su dirección de Chamilo y acceda a el con el usuario admin. Luego usted verá un enlace a la "Sección de administración de la plataforma" en la parte superior de la página web. En ese lugar usted puede administrar usuarios, cursos, secciones, apariencia del portal contenido de la página principal, categorías de cursos, entre otros.

## 6. LDAP

Esta parte es opcional, solamente organizaciones con un servidor LDAP necesitan leer esto.
Un módulo LDAP está ya implementado en Chamilo, pero debe ser configurado para que tenga un correcto funcionamiento.

### Compilar

Servidores Linux: Es posible que se requiera recompilar PHP con soporte para LDAP. Distribuciones nuevas también permiten descargar rpms para los paquetes adicionales.

### Activar LDAP en Chamilo

Nota: compruebe la configuración de LDAP dentro de Chamilo para conocer los detalles.

En (la carpeta de Chamilo)/app/config/configuration.php, aproximadamente en la line 93, se puede ver:

    //for new login module

    //uncomment these to activate ldap

eliminar // de las dos últimas líneas para activar LDAP.

### Configuraciones

Solicitar al administrador del servidor LDAP los siguientes datos:

- nombre del servidor ldap
- puerto del servidor ldap (usualmente 389)
- dc del ldap

Desde 1.8.5, usted tiene que cambiar las configuraciones de LDAP dentro del panel "Administración del Portal", bajo "Opciones de configuración de Chamilo", sección "LDAP".
Como ejemplo, usted debe encontrar tipos de valores como los siguientes:
Dirección principal del servidor LDAP: "miservidorldap.com"; // su servidor ldap
Puerto principal del servidor LDAP: 389; // el número de puerto de su servidor ldap
dominio LDAP: "dc=xx, dc=yy, dc=zz"; //dominio

### Estado Profesor/Estudiante

De manera predeterminada, Chamilo revisará si el campo "employeenumber" tiene un valor. Si lo tiene, entonces Chamilo considerará que este usuario es profesor.
Si usted desea cambiar este comportamiento, usted puede editar main/auth/ldap/authldap.php, la función ldap_put_user_info_locally(), y cambiar la condición if (empty($info_array[$tutor_field])) a la que a usted mejor le convenga.
Adicionalmente usted puede suprimir esta revisión, eliminando la condición y dejando solamente la linea $status = STUDENT;

### Servidores LDAP protegidos

Algunos servidores LDAP no permiten usos anónimos de los servicios del directorio.
En este caso, usted debe rellenar los campos apropiados en el panel de administración (ej. "manager" y "mypassword") y Chamilo tratará de autentificarse usando esto, o volver al modo anónimo antes de darse por vencido.

### Importar LDAP en sesiones

Existe un nuevo grupo de scripts que permiten insertar usuarios desde LDAP directamente a una sesión de Chamilo. Sin embargo, esto se basa en un conjunto de opciones estáticas en los atributos de contacto de LDAP.
Los campos usados intensivamente por el módulo de Chamilo son:

- uid, el cual se corresponde con el username en Chamilo
- userPassword, el cual se corresponde con la contraseña del usuario. Aunque esta parte, por ahora, solamente funcionará con contraseñas no encriptadas, no será necesaria si se usa el servidor LDAP para la autentificación.
- ou debe terminar con el año de registro de la persona o cualquier criterio que usted use para filtrar a los usuarios, de manera que ellos puedan obtenerse con ese criterio
- sn es usado como el campo lastname en Chamilo
- givenName es usado como el campo firstname en Chamilo
- mail es usado como el campo email en Chamilo

## 7. Fórmulas matemáticas con WIRIS

Instalando este plugin obtendrá WIRIS editor y WIRIS CAS.
La activación no se realiza completamente si previamente no ha descargado el PHP plugin for CKeditor de WIRIS y descomprimido su contenido en el directorio de Chamilo main/inc/lib/ckeditor/editor/plugins/ckeditor_wiris/
Esto es necesario debido a que Wiris es un software propietario y los servicios de Wiris son comerciales. Para realizar ajustes en el plugin edite el archivo configuration.ini o sustituya su contenido por el de configuration.ini.default que acompaña a Chamilo.

## 8. Indexación de texto completo con Xapian

Nota: Este paso requiere de un servidor dedicado o servidor virtual privado (VPS) porque los paquetes involucrados no están disponibles en la mayoría de soluciones de hosting compartido.

En Debian o Ubuntu 10.04 o superior, simplemente puede instalar el paquete php5-xapian y reiniciar su servidor web:

    sudo apt-get install php5-xapian
    sudo /etc/init.d/apache2 restart

A continuación, vaya a la página de administración -> Ajustes de configuración -> Buscar y habilitar la herramienta de búsqueda. Siga las recomendaciones de la página para obtener la suite completa de indexación instalada. Una vez que haya terminado, todos los documentos importados en su portal Chamilo en un formato reconocido serán indexados y buscados. En formación de administradores de Chamilo ( el cual puede preguntar a cualquier Proveedor Oficial de Chamilo) incluyen una revisión completa de la función de búsqueda de texto completo.

## 9. Chamilo Rapid - sistema conversion PPT

Nota: Este paso requiere un servidor dedicado o un servidor dedicado virtual ya que los paquetes involucrados no están disponibles en la mayoría de soluciones de hosting compartido. (Consulte con su proveedor):

En Debian o Ubuntu 11.10 y superior, instale LibreOffice.org v3 (o v4) e iniciarlo como un servidor en segundo plano:

    sudo apt-get install libreoffice screen
    sudo adduser rapid
    sudo adduser rapid www-data
    screen
    sudo -s
    su - rapid
    soffice --accept="socket,host=127.0.0.1,port=2002,tcpNoDelay=1;urp;" --headless --nodefault --nofirststartwizard --nolockcheck --nologo --norestore
    CTRL+a, CTRL+d

Tenga en cuenta que esto ejecutará LibreOffice en modo "headless" (gracias a la opción --headless), en un terminal "headless" (gracias a la pantalla). Tu puedes posteriormente regresar a tu terminal "headless" ejecutando:

    sudo screen -r

A continuación, vaya a la página de administración -> Chamilo Rapid y establecer el host a "localhost" y el puerto a "2002". Guarde los cambios. Vaya a su curso, en la pantalla de herramientas de aprendizaje y verá que apareció un nuevo icono. Importar tu PPT. Esto debería funcionar.

Nota: A veces, esto no se resuelve tan fácilmente. Usted probablemente tenga que solicitar la asistencia de algún administrador de sistemas con un poco de experiencia en Java y PHP, o siempre podrá preguntar a uno de los proveedores oficiales de Chamilo para asistirle (pregunte por un contrato comercial garantizado). Nota: Si usa la versión 4 de LibreOffice, es importante notar que la versión 4.2 (disponible en Ubuntu 14.04) ha mostrado resultados considerablemente más exitosos al momento de convertir documentos que la versión 4.1 (disponible en Ubuntu 13.10), la cual tiene tendencia a colgarse durante las conversiones.

## 10. Configuración de tareas programadas

Desde Chamilo 1.8.8, algunas tareas necesitan ejecutarse con regularidad con el fin de obtener lo mejor de los recursos del servidor. Una de las tareas de este tipo (y el único en todo en el momento de Chamilo 1.8.8) es el envío de notificaciones de mensajería interna por e-mail, es decir, cuando usted recibe un correo electrónico de otra persona o de un grupo dentro de la mensajería interna del sistema de Chamilo, si se envían todos los e-mails inmediatamente, puede que no llegue a recibir el correo a su ritmo, una vez al día o una vez a la semana. Para casos como este, como administrador de Chamilo, debe configurar un proceso cron en el servidor para comprobar la cola de mensajes de correo electrónico y enviarlo puntualmente.

Configurar una tarea de cron es fácil y hay varias maneras de hacerlo. Le recomendamos echar un vistazo a la documentación de Drupal para configurar el cron y definir su propio proceso de cron como:

    35 * * * * wget -O - -q -t 1 http://campus.example.com/main/cron/run.php

Asegúrese de revisar el run.php tal vez desee cambiar algunas algunas opciones de configuración.

## 11. Cambiando el orden del nombre/apellido en el idioma

Desde Chamilo 1.8.8, algunas tareas necesitan ejecutarse con regularidad con el fin de obtener lo mejor de los recursos del servidor. Una de las tareas de este tipo (y el único en todo en el momento de Chamilo 1.8.8) es el envío de notificaciones de mensajería interna por e-mail, es decir, cuando usted recibe un correo electrónico de otra persona o de un grupo dentro de la mensajería interna del sistema de Chamilo, si se envían todos los e-mails inmediatamente, puede que no llegue a recibir el correo a su ritmo, una vez al día o una vez a la semana. Para casos como este, como administrador de Chamilo, debe configurar un proceso cron en el servidor para comprobar la cola de mensajes de correo electrónico y enviarlo puntualmente.

Esto fácilmente se puede modificar editando el archivo app/config/configuration.php, encontrando la siguiente sección, descomentando las líneas PHP y adaptándolas a su idioma:

    // Custom name_order_conventions
    //$_configuration['name_order_conventions'] = array(
    // 'french' => array('format' => 'title last_name first_name', 'sort_by' => 'last_name')
    //);

Siéntase libre de cambiar esto a

    // Custom name_order_conventions
    $_configuration['name_order_conventions'] = array(
      'french' => array('format' => 'first_name last_name', 'sort_by' => 'last_name')
    );

por ejemplo. El efecto debería ser inmediato.

## 12. Mejora de la eficacia de descarga de archivos

La descarga de archivos puede ser muy lenta al pasar a través de un script PHP para controlar los permisos. Una solución para esto es usar la cabecera X-Sendfile, que depende de un módulo en el servidor web. Consultar http://stackoverflow.com/a/3731639/1406662 para obtener más información sobre la implementación de Sendfile . Chamilo LMS 1.9.8 (y versiones siguientes) es compatible con las cabeceras X-Sendfile, pero requiere una línea específica de configuración para ser agregado a configuration.php:

    $_configuration['enable_x_sendfile_headers'] = true;

Si tiene problemas con los archivos que tardan mucho tiempo en descargarse, asegúrese de reconfigurar su servidor web y agregar esta línea. Debería ver una diferencia notable en el tiempo de descarga.

## 13. Videoconferencia

Chamilo admite la conexión a dos servidores de videoconferencia diferentes: BigBlueButton (versiones 0.81, 0.9 y 1.0) y OpenMeetings.
Aunque BigBlueButton parece más fácil de instalar, más documentado y más estéticamente acabado, algunos usuarios han manifestado que OpenMeetings consume menos ancho de banda, es menos restrictivo en términos de entornos en ejecución y ofrece más herramientas y conectores.
La decisión depende de usted, pero en cualquier caso tendrá que instalar un servidor de videoconferencia por separado del proceso normal de instalación de Chamilo LMS.
Encontrarás una guía de instalación aquí. Una vez instalados, ejecute un "bbb-conf --secret" sobre línea de comandos para obtener los parámetros que se solicitan desde la configuración del plugin de la videoconferencia.
Esto debería hacer que aparezca un icono adicional de la herramienta "Videoconferencia" en cada curso.

## 14. Rewrite

Chamilo LMS 1.10 es la primera versión que requiere que el servidor web permita las redirecciones de las solicitudes (y, por lo tanto, también lo hace 1.11).
Para Apache, esto se hace habilitando el módulo Rewrite y permitiendo reemplazos (a través de .htaccess) o agregando una sección de configuración específica al VirtualHost definido para Apache.
Para Nginx, esto se hace a través de reglas de redirección específicas en el virtual host correspondiente (cláusula de servidor).

Para asegurarse de que esto no sea demasiado complejo para nadie, recomendamos una configuración a continuación para ayudarlo en ambos casos. Tenga en cuenta que el uso de .htaccess es la manera más fácil pero puede afectar considerablemente la carga de su servidor, dado que los archivos .htaccess se interpretan en *cada* solicitud, mientras que un bloque de configuración en su sección VirtualHost se compila en el momento de la recarga de la configuración.

### Apache + .htaccess

Para habilitar .htaccess en Apache, solo tiene que marcar 1 cosa: en un bloque <Directory> de la carpeta raíz de Chamilo, asegúrese de que las siguientes líneas estén presentes:

    <Directory />
      AllowOverride All
      Order allow,deny
      allow from all
    </Directory>

o, si está trabajando con Apache 2.4, esa sintaxis cambió un poco y se parece más a esto:

    <Directory />
      AllowOverride All
      Require all granted
    </Directory>

### Apache RewriteRules

    <LocationMatch "/.git*">
      order deny,allow
      deny from all
    </LocationMatch>

    <Directory ~/.>
      AllowOverride None
      Options -Indexes
    </Directory>

    <Directory "/var/www/chamilo">
      RewriteEngine On
      RewriteCond %{QUERY_STRING} ^id=(.*)$
      RewriteRule ^certificates/$ certificates/index.php?id=%1 [L]
      RewriteRule ^courses/([^/]+)/?$ main/course_home/course_home.php?cDir=$1 [QSA,L]
      RewriteRule ^courses/([^/]+)/index.php$ main/course_home/course_home.php?cDir=$1 [QSA,L]
      RewriteRule ^courses/([^/]+)/scorm/(.*)$ main/document/download_scorm.php?doc_url=/$2&cDir=$1 [QSA,L]
      RewriteRule ^courses/([^/]+)/document/certificates/(.*)$ app/courses/$1/document/certificates/$2 [QSA,L]
      RewriteRule ^courses/([^/]+)/document/(.*)$ main/document/download.php?doc_url=/$2&cDir=$1 [QSA,L]
      RewriteRule ^courses/([^/]+)/upload/course_home_icons/(.*([\.js|\.css|\.png|\.jpg|\.jpeg|\.gif]))$ app/courses/$1/upload/course_home_icons/$2 [QSA,L]
      RewriteRule ^courses/([^/]+)/upload/([^/]+)/(.*)$ main/document/download_uploaded_files.php?code=$1&type=$2&file=$3 [QSA,L]
      RewriteRule ^courses/([^/]+)/work/(.*)$ main/work/download.php?file=work/$2&cDir=$1 [QSA,L]
      RewriteRule ^courses/([^/]+)/course-pic85x85.png$ main/inc/ajax/course.ajax.php?a=get_course_image&code=$1&image=course_image_source [QSA,L]
      RewriteRule ^courses/([^/]+)/course-pic.png$ main/inc/ajax/course.ajax.php?a=get_course_image&code=$1&image=course_image_large_source [QSA,L]
      RewriteRule ^courses/([^/]+)/(.*)$ app/courses/$1/$2 [QSA,L]
      RewriteRule ^session/(\d{1,})/about/?$ main/session/about.php?session_id=$1 [L]
      RewriteRule ^course/(\d{1,})/about/?$ main/course_info/about.php?course_id=$1 [L]
      RewriteRule ^badge/(\d{1,}) main/badge/issued.php?issue=$1 [L]
      RewriteRule ^skill/(\d{1,})/user/(\d{1,}) main/badge/issued_all.php?skill=$1&user=$2 [L]
      RewriteRule ^badge/(\d{1,})/user/(\d{1,}) main/badge/issued_all.php?skill=$1&user=$2 [L]
      RewriteRule ^main/exercice/(.*)$ main/exercise/$1 [QSA,L]
      RewriteRule ^main/newscorm/(.*)$ main/lp/$1 [QSA,L]
      RewriteRule ^service/(\d{1,})$ plugin/buycourses/src/service_information.php?service_id=$1 [L]
      RewriteRule ^lti/os$ plugin/ims_lti/outcome_service.php [L]
      RewriteRule ^([^/.]+)/?$ user.php?$1 [L]
      RewriteRule ^(tests|.git) - [F,L,NC]
    </Directory>

    AddType application/font-woff .woff .woff2
    <IfModule mod_expires.c>
      ExpiresActive On
      ExpiresByType application/font-woff "access plus 1 month"
    </IfModule>

### Nginx

Nginx no es compatible con las reglas de .htaccess, por lo que no tiene otra opción que aplicar las siguientes reglas (tenga en cuenta que la configuración de back-end de PHP puede variar). Estas son solo las reglas de redireccionamiento que se colocarán dentro de un bloque de servidor {}, ya que otras configuraciones pueden diferir de una instalación a otra.

    # Add your own "server {" header here with listen, server_name, access_log, error_log, index, root and error_page params

    charset utf-8;

    location @rewrite{
      rewrite ^certificates/$ certificates/index.php last;
      rewrite ^/courses/([^/]+)/$ /main/course_home/course_home.php?cDir=$1 last;
      rewrite ^/courses/([^/]+)/index.php$ /main/course_home/course_home.php?cDir=$1 last;
      rewrite ^/courses/([^/]+)/scorm/(.*)$ /main/document/download_scorm.php?doc_url=/$2&cDir=$1 last;
      # Alternatively, you can choose to give direct access to all SCORM files, which is much faster but less secure
      # rewrite "^/courses/([^/]+)/scorm/(.*)$" /app/courses/$1/scorm/$2 break;

      rewrite "^/courses/([^/]+)/document/certificates/(.*)$" /app/courses/$1/document/certificates/$2 last;
      rewrite ^/courses/([^/]+)/document/(.*)$ /main/document/download.php?doc_url=/$2&cDir=$1 last;
      rewrite ^/courses/([^/]+)/upload/([^/]+)/(.*)$ /main/document/download_uploaded_files.php?code=$1&type=$2&file=$3 last;
      rewrite ^/courses/([^/]+)/work/(.*)$ /main/work/download.php?file=work/$2&cDir=$1 last;
      rewrite ^/courses/([^/]+)/(.*)$ /app/courses/$1/$2 last;
      rewrite ^/session/([^/]+)/about/?$ /main/session/about.php?session_id=$1 last;
      rewrite ^/badge/(\d+) /main/badge/issued.php?issue=$1 last;
      rewrite ^/skill/(\d+)/user/(\d+)$ /main/badge/issued_all.php?skill=$1&user=$2 last;
      rewrite ^/badge/(\d+)/user/(\d+)$ /main/badge/issued_all.php?skill=$1&user=$2 last;
      rewrite ^/main/exercice/(.*)$ /main/exercise/$1 last;
      rewrite ^/main/newscorm/(.*)$ /main/lp/$1 last;
      rewrite ^/service/(\d+)$ /plugin/buycourses/src/service_information.php?service_id=$1 last;
      rewrite "^/main/upload/users/(.*)/(.*)/my_files/(.*)$" /app/upload/users/$1/$2/my_files/$3 last;

      try_files $uri /index.php$is_args$args;
      break;
    }

    location / {
     try_files $uri @rewrite;
    }

    location /main {
      rewrite ^/main/admin/?$ /main/admin/index.php last;
    }

    location ~ \.php$ {
      client_max_body_size 20M;
      try_files $uri @rewrite;

      fastcgi_pass unix:/var/run/php5-fpm.sock;
      fastcgi_split_path_info ^(.+\.php)(/.*)$;
      include fastcgi_params;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_param HTTPS off;
    }

    # Serve static files directly
    location ~* \.(png|jpe?g|gif|ico|js|css|mp3|swf|flv|mp4|ogg|woff|woff2)$ {
      expires 30d;
      access_log off;
      rewrite ^/courses/([^/]+)/course-pic85x85.png$ /app/courses/$1/course-pic85x85.png last;
      rewrite ^/courses/([^/]+)/course-pic.png$ /app/courses/$1/course-pic.png last;
      try_files $uri @rewrite;
    }
    location ~ ~\.(ht|git){
      deny all;
    }
    location ^~ /tests/ {
      deny all;
    }

### Apple en servidores OS X

Scott Steven informa que Apache en OS X requiere acciones específicas

- Primero, asegúrese de tener el archivo .htaccess presente en la raíz de su carpeta Chamilo
- Acceda al archivo HTTPd.conf de su Apache y configure su dominio y el hecho de que se carga mod_rewrite
- En su aplicación de servidor Apple, Configuración avanzada, marque la casilla para permitir .htaccess

Alternativamente, puede encontrar el archivo de configuración para su dominio en la carpeta de configuración de Apple en /Library/Server/Web/Settings para actualizarlo manualmente.
Sin embargo, no puede permitir archivos .htaccess en el archivo httpd.conf principal, ya que OS X lo reemplazará con el archivo de configuración específico del dominio.

### IIS

El usuario @ullfindsmit en Github fue bien amable en compartirnos estas reglas de configuración de IIS luego de probarlas basado en nuestras configuraciones anteriores. No han sido probadas directamente por el equipo de Chamilo, pero las reglas usadas parecen tener lo necesario:

    <?xml version="1.0" encoding="UTF-8"?>
        <configuration>
        <system.webServer>
            <rewrite>
                <rules>
                    <rule name="rule 1v" stopProcessing="true">
                        <match url="^certificates/$"  />
                        <action type="Rewrite" url="/certificates/index.php?id=%1"  />
                    </rule>
                    <rule name="rule 2v" stopProcessing="true">
                        <match url="^courses/([^/]+)/?$"  />
                        <action type="Rewrite" url="/main/course_home/course_home.php?cDir={R:1}"  appendQueryString="true" />
                    </rule>
                    <rule name="rule 3v" stopProcessing="true">
                        <match url="^courses/([^/]+)/index.php$"  />
                        <action type="Rewrite" url="/main/course_home/course_home.php?cDir={R:1}"  appendQueryString="true" />
                    </rule>
                    <rule name="rule 4v" stopProcessing="true">
                        <match url="^courses/([^/]+)/scorm/(.*)$"  />
                        <action type="Rewrite" url="/main/document/download_scorm.php?doc_url=/{R:2}&cDir={R:1}"  appendQueryString="true" />
                    </rule>
                    <rule name="rule 5v" stopProcessing="true">
                        <match url="^courses/([^/]+)/document/certificates/(.*)$"  />
                        <action type="Rewrite" url="/app/courses/{R:1}/document/certificates/{R:2}"  appendQueryString="true" />
                    </rule>
                    <rule name="rule 6v" stopProcessing="true">
                        <match url="^courses/([^/]+)/document/(.*)$"  />
                        <action type="Rewrite" url="/main/document/download.php?doc_url=/{R:2}&cDir={R:1}"  appendQueryString="true" />
                    </rule>
                    <rule name="rule 7v" stopProcessing="true">
                        <match url="^courses/([^/]+)/upload/([^/]+)/(.*)$"  />
                        <action type="Rewrite" url="/main/document/download_uploaded_files.php?code={R:1}&type={R:2}&file={R:3}"  appendQueryString="true" />
                    </rule>
                    <rule name="rule 8v" stopProcessing="true">
                        <match url="^courses/([^/]+)/work/(.*)$"  />
                        <action type="Rewrite" url="/main/work/download.php?file=work/{R:2}&cDir={R:1}"  appendQueryString="true" />
                    </rule>
                    <rule name="rule 9v" stopProcessing="true">
                        <match url="^courses/([^/]+)/course-pic85x85.png$"  />
                        <action type="Rewrite" url="/main/inc/ajax/course.ajax.php?a=get_course_image&code={R:1}&image=course_image_source"  appendQueryString="true" />
                    </rule>
                    <rule name="rule 10v" stopProcessing="true">
                        <match url="^courses/([^/]+)/course-pic.png$"  />
                        <action type="Rewrite" url="/main/inc/ajax/course.ajax.php?a=get_course_image&code={R:1}&image=course_image_large_source"  appendQueryString="true" />
                    </rule>
                    <rule name="rule 11v" stopProcessing="true">
                        <match url="^courses/([^/]+)/(.*)$"  />
                        <action type="Rewrite" url="/app/courses/{R:1}/{R:2}"  appendQueryString="true" />
                    </rule>
                    <rule name="rule 12v" stopProcessing="true">
                        <match url="^session/(\d{1,})/about/?$"  />
                        <action type="Rewrite" url="/main/session/about.php?session_id={R:1}"  />
                    </rule>
                    <rule name="rule 13v" stopProcessing="true">
                        <match url="^badge/(\d{1,})"  />
                        <action type="Rewrite" url="/main/badge/issued.php?issue={R:1}"  />
                    </rule>
                    <rule name="rule 14v" stopProcessing="true">
                        <match url="^skill/(\d{1,})/user/(\d{1,})"  />
                        <action type="Rewrite" url="/main/badge/issued_all.php?skill={R:1}&user={R:2}"  />
                    </rule>
                    <rule name="rule 15v" stopProcessing="true">
                        <match url="^badge/(\d{1,})/user/(\d{1,})"  />
                        <action type="Rewrite" url="/main/badge/issued_all.php?skill={R:1}&user={R:2}"  />
                    </rule>
                    <rule name="rule 16v" stopProcessing="true">
                        <match url="^main/exercice/(.*)$"  />
                        <action type="Rewrite" url="/main/exercise/{R:1}"  appendQueryString="true" />
                    </rule>
                    <rule name="rule 17v" stopProcessing="true">
                        <match url="^main/newscorm/(.*)$"  />
                        <action type="Rewrite" url="/main/lp/{R:1}"  appendQueryString="true" />
                    </rule>
                    <rule name="rule 18v" stopProcessing="true">
                        <match url="^service/(\d{1,})$"  />
                        <action type="Rewrite" url="/plugin/buycourses/src/service_information.php?service_id={R:1}"  />
                    </rule>
                    <rule name="rule 19v" stopProcessing="true">
                        <match url="^([^/.]+)/?$"  />
                        <action type="Rewrite" url="/user.php?{R:1}"  />
                    </rule>
                    <rule name="rule 20v" stopProcessing="true">
                        <match url="^(tests|.git)"  ignoreCase="true" />
                        <action type="Rewrite" url="/-"  />
                    </rule>
                </rules>
            </rewrite>
        </system.webServer>
    </configuration>

## 15. Actualización de Git

Si tiene suficiente experiencia con Git y ha instalado su portal inicial de Chamilo desde la versión de Git, es posible que desee actualizar de 1.9.x a 1.11.x usando Git directamente.
Aquí hay algunos consejos que pueden ayudarlo:

- Entra en tu repositorio de Chamilo Git
- Asegúrate de no tener elementos adicionales que no se hayan comprometido (git status / git stash))
- ISi tiene problemas, siempre puede guardar su código en otro lugar y pedirle a Git que lo coloque exactamente en la etapa 1.9.x más reciente ("git pull" / "git reset --hard origin/1.9.x")
- Una vez que esté seguro de tener un repositorio local "limpio" de Chamilo, cree una rama 1.11.x con "git checkout -b 1.11.x"
- En la nueva rama, descargue todo el código de la rama 1.11.x upstream: "git pull origin 1.11.x"
- Si nunca usó composer o lo usó solo unas pocas veces en el pasado, es posible que necesite actualizarlo (rm -rf ~/.composer/vendor; composer clear-cache) antes de intentar el siguiente comando
- Actualizar composer: "composer update" (es posible que necesite dar un token Github aquí)
- Cambiar permisos en la aplicación de carpetas app, web, main/lang y main/default_course_document/images
- Vaya a la página de instalación del portal (main/install/) y siga el procedimiento de actualización

Dirección de Contacto: Chamilo
Correo: info@chamilo.org