Chamilo es una plataforma de e-learning, también llamada "LMS", publicada bajo la licencia GNU/GPLv3+. Ha sido utilizado por más de 30 millones de personas en todo el mundo desde su inicio en 2010. Esta es una versión de desarrollo. Para la rama estable actual, seleccione la rama 1.11.x en la pestaña Código.
Chamilo 2.0 aún está en desarrollo. Este procedimiento de instalación a continuación es solo como referencia. Para un Chamilo estable, instale Chamilo 1.11.x. Consulte README.md de la rama 1.11.x para obtener más detalles.
Suponemos que ya tienes:
compositor 2.x - https://getcomposer.org/download/
hilo +4.x - https://yarnpkg.com/getting-started/install
Nodo >= v18+ (lts) - https://github.com/nodesource/distributions/blob/master/README.md
Configurar un host virtual en un dominio, no en una subcarpeta dentro de un dominio.
Un servidor LAMP/WAMP que funcione con PHP 8.1+
Necesitará PHP8+ y NodeJS v18+ para ejecutar Chamilo 2. En un Ubuntu 22.04 nuevo, puede preparar su servidor emitiendo un comando apt como el siguiente con sudo (o como root, pero no se recomienda por razones de seguridad):
sudo apt update sudo apt -y upgrade sudo apt -y install ca-certificates curl gnupg software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt update sudo apt install apache2 libapache2-mod-php8.1 mariadb-client mariadb-server php-pear php8.1-{dev,gd,curl,intl,mysql,mbstring,zip,xml,cli,apcu,bcmath,soap} git unzip
Si ya tiene instalado nodejs, verifique la versión con node -v
De lo contrario, instale el nodo 18 o superior:
siguiendo las instrucciones aquí: https://deb.nodesource.com/node_20.x/. Las siguientes líneas utilizan una versión estática de esas instrucciones, por lo que probablemente no sean muy sostenibles en el tiempo.
cd ~ curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg NODE_MAJOR=20 echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list apt update && apt -y install nodejs
Otra opción para instalar nodejs es utilizar NVM (Node Version Manager). Puedes instalarlo siguiendo las instrucciones aquí. Luego, puede instalar la versión del nodo requerida. Preferiblemente, la versión LTS.
sudo nvm install --lts sudo nvm use --lts
Con NodeJS instalado, debes habilitar corepack y luego continuar con los requisitos
sudo corepack enable cd ~ # follow the instructions at https://getcomposer.org/download/ sudo mv composer.phar /usr/local/bin/composer # optionally, you might want this: sudo apt install libapache2-mod-xsendfile sudo a2enmod rewrite ssl headers expires sudo systemctl restart apache2
Cuando su sistema esté todo configurado, puede usar lo siguiente:
cd /var/www git clone https://github.com/chamilo/chamilo-lms.git chamilo2 cd chamilo2 composer install # not recommended to do this as the root user! # when asked whether you want to execute the recipes or install plugins for some of the components, # you can safely type 'n' (for 'no'). yarn set version stable # delete yarn.lock as it might contain restrictive packages from a different context yarn up yarn install yarn dev # you can safely ignore any "warning" mentioned by yarn dev sudo touch .env sudo chown -R www-data: var/ .env config/
En la configuración de su servidor web, asegúrese de permitir la interpretación de .htaccess ( AllowOverride all
y Require all granted
) y apunte DocumentRoot
al subdirectorio public/
.
Una vez que lo anterior esté listo, ingrese main/install/index.php y siga las instrucciones de la interfaz de usuario (base de datos, configuración del usuario administrador, etc.).
Después del proceso de instalación web, cambie los permisos a un estado razonablemente seguro:
chown -R root .env config/
Si ya lo instaló y solo desea actualizarlo desde Git, haga:
git pull composer install # Database update php bin/console doctrine:schema:update --force --complete # Clean Symfony cache php bin/console cache:clear # js/css update yarn install yarn dev
Nota para los desarrolladores en la etapa pre-alfa: el comando doctrina intentará actualizar el esquema de su base de datos al esquema de base de datos esperado en una instalación nueva. Esto no siempre es perfecto, ya que Doctrine tomará la ruta más rápida para lograrlo. Por ejemplo, si tiene una migración para cambiar el nombre de una tabla (lo que se aplicaría muy bien a un sistema en Chamilo 1 que se está migrando ), Doctrine podría considerar que la tabla de destino no existe y la original (que no debería estar allí en una nueva tabla). instalación) todavía está allí, por lo que simplemente eliminará la tabla anterior y creará una nueva, perdiendo todos los registros de esa tabla en el proceso. Para evitar esto, prefiera ejecutar migraciones con lo siguiente.
php bin/console doctrine:migrations:execute "ChamiloCoreBundleMigrationsSchemaV200Version[date]"
Esto respetará la lógica de migración y realizará el procesamiento de datos requerido.
Esto actualizará las dependencias de JS (yarn) y PHP (compositor) en la carpeta pública/compilación.
A veces hay conflictos con archivos existentes, así que para evitarlos, aquí hay algunos consejos:
para errores del compositor, puede eliminar la carpeta del proveedor y el archivo compositor.lock
para errores de hilo, puede eliminar Yarn.lock .yarn/cache/* node_modules/*
al abrir Chamilo no carga, entonces puedes borrar var/cache/*
En caso de que crea que algunas configuraciones en Chamilo podrían no haberse procesado correctamente debido a una migración incompleta o una migración que se agregó después de instalar su versión de desarrollo de Chamilo, la URL /admin/settings_sync está diseñada para intentar solucionarlo automáticamente mediante la actualización. Clases PHP basadas en el estado de la base de datos. Sin embargo, este problema rara vez ocurre.
Si lo tiene instalado en un entorno de desarrollo y cree que debe limpiarlo por completo (puede ser necesario después de realizar cambios en la base de datos), puede hacerlo de la siguiente manera:
Eliminando el archivo .env
Cargue el script {url}/main/install/index.php nuevamente
La base de datos debería destruirse automáticamente, tabla por tabla. En algunos casos extremos (una versión anterior creó una tabla que ya no es necesaria y crea problemas), es posible que desees limpiarla por completo simplemente dejándola caer, pero esto no debería ser necesario la mayor parte del tiempo.
Si, por alguna razón, tiene problemas con el compositor o con el hilo, un buen primer paso es eliminar completamente la carpeta vendor/
(para el compositor) o la carpeta node_modules/
(para el hilo).
Si es desarrollador y desea contribuir a Chamilo en la rama de desarrollo actual (aún no estable), siga las instrucciones a continuación. Tenga en cuenta que la versión de desarrollo NO ESTÁ COMPLETA en este momento y que muchas funciones simplemente no funcionan todavía. Esto se debe a que estamos trabajando en componentes raíz que requieren cambios masivos en la estructura del código, los archivos y la base de datos. Como tal, para obtener una versión que funcione, es posible que deba desinstalarla por completo y volver a instalarla de vez en cuando. Has sido advertido.
Primero, aplique el procedimiento que se describe aquí: Administrar CSS y JavaScript en Chamilo (en particular, asegúrese de seguir los enlaces proporcionados para instalar todos los componentes necesarios en su computadora).
Luego, asegúrese de que su base de datos admita prefijos grandes (consulte este hilo de Stack Overflow si usa MySQL <5.7 o MariaDB <10.2.2).
Cargue la URL (su-dominio)/main/install/index.php para iniciar el instalador (que es muy similar al instalador de versiones anteriores). Si el instalador es HTML puro y no aparece con un diseño limpio, es porque no siguió estas instrucciones cuidadosamente. Vuelve al principio de esta sección e inténtalo de nuevo.
Si desea recargar activos en caliente, utilice el comando yarn run encore dev-server
. Esto actualizará automáticamente sus activos cuando los modifique en assets/vue
. Accede a tu instancia de chamilo como de costumbre. En segundo plano, esto proporcionará activos desde un servidor personalizado en http://localhost:8080. No acceda a esta URL directamente ya que Encore se encarga de cambiar los activos de la URL según sea necesario.
Es posible que desees admitir PHP 8.1 (para Chamilo 2) y PHP 7.4 (para todo lo demás) en el mismo servidor simultáneamente. En Ubuntu, puedes hacerlo de esta manera:
sudo add-apt-repository ppa:ondrej/php sudo apt update sudo apt install php8.1 libapache2-mod-php7.4 php8.1-{modules} php7.4-{modules} sudo apt remove libapache2-mod-php8.1 php7.4-fpm sudo a2enmod proxy_fcgi sudo vim /etc/apache2/sites-available/[your-chamilo2-vhost].conf
En la configuración de vhost, asegúrese de configurar PHP 8.1 FPM para responder a este único vhost agregando, en algún lugar entre sus etiquetas
, lo siguiente:
SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost" Require all denied Require all denied
Luego salga y reinicie Apache:
sudo systemctl restart apache2
Finalmente, recuerde que la configuración de PHP deberá cambiarse en /etc/php/8.1/fpm/php.ini y deberá volver a cargar php8.1-fpm para tener en cuenta esos cambios de configuración.
sudo systemctl reload php8.1-fpm
Cuando utilices 2 versiones, también tendrás problemas al llamar a composer update
, ya que esta debe ser llamada por la versión de PHP correspondiente. Esto se puede hacer así:
/usr/bin/php8.1 /usr/local/bin/composer update or, for Chamilo 1.11 /usr/bin/php7.4 /usr/local/bin/composer update
Si su php-cli predeterminado usa PHP7.4 (consulte ln -s /etc/alternatives/php
), es posible que tenga problemas al ejecutar el script llamado platform_check.php
al ejecutar composer update
de todos modos. Esto se debe a que este script no utiliza el contexto de inicio adecuado y es posible que deba cambiar la configuración predeterminada en Ubuntu (es decir, cambiar el enlace /etc/alternatives/php para que apunte a la otra versión de PHP) antes de iniciar composer update
. Siempre puedes revertir esa operación más adelante si necesitas volver a trabajar en Chamilo 1.11 y Composer se queja nuevamente.
Para usar los scripts de muestra de git hook en tests/scripts/git-hooks/
, se pueden usar los siguientes comandos.
git config core.hooksPath tests/scripts/git-hooks/
en general, la carpeta principal/ se ha movido a public/main/
aplicación/Recursos/público/activos movidos a público/activos
main/inc/lib/javascript movido a public/js
principal/img/ movido a público/img
main/template/default movido a src/CoreBundle/Resources/views
src/Chamilo/XXXBundle movido a src/CoreBundle o src/CourseBundle
bin/doctrine.php eliminado use bin/console doctrina:opciones xyz
Las imágenes de complementos, las bibliotecas css y js se cargan dentro de la carpeta public/plugins (la actualización del compositor copia el contenido dentro de plugin_name/public dentro de web/plugins/plugin_name
Las plantillas de complementos usan la función active() en lugar de usar "_p.web_plugin"
Eliminar principal/inc/local.inc.php
Traducciones gestionadas a través de Gettext
Bibliotecas
Integración con Symfony 5
PHPMailer reemplazado por Symfony Mailer
glorieta reemplazada por hilo
Correr
php bin/consola lexik:jwt:generar par de claves
En Apache configure Portador con:
SetEnvIf Autorización "(.*)" HTTP_AUTHORIZATION=$1
Consigue la ficha:
curl -k -X POST https://example.com/api/authentication_token -H "Tipo de contenido: aplicación/json" -d '{"nombre de usuario":"admin","contraseña":"admin"}'
La respuesta debería devolver algo como:
{"token":"MiTokenABC"}
Vaya a https://example.com/api
Haga clic en el botón "Autorizar" y escriba el valor Bearer MyTokenABC
Luego podrás realizar consultas utilizando el token JWT.
Ver https://github.com/chamilo/chamilo-lms/projects/3
Si desea enviar nuevas funciones o parches a Chamilo 2, siga la guía de contribución de Github https://guides.github.com/activities/contributing-to-open-source/ y nuestro archivo CONTRIBUTING.md. En resumen, le pedimos que nos envíe solicitudes de extracción basadas en una rama que cree con este propósito en su repositorio bifurcado del repositorio original de Chamilo.
Para obtener más información sobre Chamilo, visite https://campus.chamilo.org/documentation/index.html