Chamilo é uma plataforma de e-learning, também chamada de "LMS", publicada sob a licença GNU/GPLv3+. Ele foi usado por mais de 30 milhões de pessoas em todo o mundo desde seu início em 2010. Esta é uma versão em desenvolvimento. Para a ramificação estável atual, selecione a ramificação 1.11.x na guia Código.
Chamilo 2.0 ainda está em desenvolvimento. Este procedimento de instalação abaixo é apenas para referência. Para um Chamilo estável, instale o Chamilo 1.11.x. Consulte o README.md da ramificação 1.11.x para obter detalhes.
Presumimos que você já tenha:
compositor 2.x - https://getcomposer.org/download/
fio +4.x - https://yarnpkg.com/getting-started/install
Nó >= v18+ (lts) - https://github.com/nodesource/distributions/blob/master/README.md
Configurando um host virtual em um domínio, não em uma subpasta dentro de um domínio.
Um servidor LAMP/WAMP funcional com PHP 8.1+
Você precisará de PHP8+ e NodeJS v18+ para executar Chamilo 2. Em um Ubuntu 22.04 novo, você pode preparar seu servidor emitindo um comando apt como o seguinte com sudo (ou como root, mas não recomendado por motivos de segurança):
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
Se você já possui o nodejs instalado, verifique a versão com node -v
Caso contrário, instale o node 18 ou superior:
seguindo as instruções aqui: https://deb.nodesource.com/node_20.x/. As linhas a seguir usam uma versão estática dessas instruções, provavelmente não muito sustentável ao longo do tempo
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
Outra opção para instalar o nodejs é usando NVM (Node Version Manager). Você pode instalá-lo seguindo as instruções aqui. Em seguida, você pode instalar a versão do nó necessária. De preferência, a versão LTS.
sudo nvm install --lts sudo nvm use --lts
Com o NodeJS instalado, você deve habilitar o corepack e então continuar com os 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
Quando o seu sistema estiver pronto, você pode usar o seguinte:
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/
Na configuração do seu servidor web, certifique-se de permitir a interpretação de .htaccess ( AllowOverride all
e Require all granted
) e aponte o DocumentRoot
para o subdiretório public/
.
Assim que o acima estiver pronto, entre em main/install/index.php e siga as instruções da UI (banco de dados, configurações do usuário administrador, etc).
Após o processo de instalação na Web, altere as permissões de volta para um estado razoavelmente seguro:
chown -R root .env config/
Se você já o instalou e deseja apenas atualizá-lo no Git, faça:
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 desenvolvedores em estágio pré-alfa: o comando doutrina tentará atualizar seu esquema de banco de dados para o esquema de banco de dados esperado em uma nova instalação. Isso nem sempre é perfeito, pois o Doctrine seguirá o caminho mais rápido para fazer isso. Por exemplo, se você tiver uma migração para renomear uma tabela (o que se aplicaria perfeitamente a um sistema no Chamilo 1 sendo migrado ), o Doctrine pode considerar que a tabela de destino não existe e a original (que não deveria estar lá em um novo instalação) ainda está lá, então ele simplesmente descartará a tabela antiga e criará uma nova, perdendo todos os registros dessa tabela no processo. Para evitar isso, prefira executar migrações com o seguinte.
php bin/console doctrine:migrations:execute "ChamiloCoreBundleMigrationsSchemaV200Version[date]"
Isto respeitará a lógica de migração e fará o processamento de dados necessário.
Isso atualizará as dependências JS (yarn) e PHP (composer) na pasta public/build.
Às vezes, há conflitos com arquivos existentes, então, para evitá-los, aqui estão algumas dicas:
para erros do compositor, você pode remover a pasta do fornecedor e o arquivo compositor.lock
para erros de fio, você pode remover yarn.lock .yarn/cache/* node_modules/*
ao abrir o Chamilo ele não carrega, então você pode deletar var/cache/*
Caso você acredite que algumas configurações no Chamilo podem não ter sido processadas corretamente com base em uma migração incompleta ou em uma migração que foi adicionada após a instalação da versão de desenvolvimento do Chamilo, a URL /admin/settings_sync foi criada para tentar corrigir isso automaticamente atualizando Classes PHP baseadas no estado do banco de dados. No entanto, esse problema raramente acontece.
Se você o instalou em um ambiente de desenvolvimento e deseja limpá-lo completamente (pode ser necessário após alterações no banco de dados), você pode fazer isso:
Removendo o arquivo .env
Carregue o script {url}/main/install/index.php novamente
O banco de dados deve ser destruído automaticamente, tabela por tabela. Em alguns casos extremos (uma versão anterior criou uma tabela que não é mais necessária e cria problemas), você pode querer limpá-la completamente simplesmente descartando-a, mas isso não deve ser necessário na maioria das vezes.
Se, por algum motivo, você tiver problemas com o compositor ou com o fio, um bom primeiro passo é excluir completamente a pasta vendor/
(para o compositor) ou a pasta node_modules/
(para o fio).
Se você é um desenvolvedor e deseja contribuir com Chamilo no ramo de desenvolvimento atual (ainda não estável), siga as instruções abaixo. Tenha em mente que a versão de desenvolvimento NÃO ESTÁ COMPLETA neste momento e muitos recursos ainda não estão funcionando. Isso ocorre porque estamos trabalhando em componentes raiz que exigem grandes mudanças na estrutura do código, nos arquivos e no banco de dados. Dessa forma, para obter uma versão funcional, pode ser necessário desinstalar completamente e reinstalar de vez em quando. Você foi avisado.
Primeiro, aplique o procedimento descrito aqui: Gerenciando CSS e JavaScript no Chamilo (em particular, certifique-se de seguir os links fornecidos para instalar todos os componentes necessários em seu computador).
Em seguida, certifique-se de que seu banco de dados suporta prefixos grandes (consulte este thread Stack Overflow se você usar MySQL <5.7 ou MariaDB <10.2.2).
Carregue o URL (seu-domínio)/main/install/index.php para iniciar o instalador (que é muito semelhante ao instalador das versões anteriores). Se o instalador for HTML puro e não aparecer com um layout limpo, é porque você não seguiu estas instruções cuidadosamente. Volte ao início desta seção e tente novamente.
Se você deseja recarregar ativos para ativos, use o comando yarn run encore dev-server
. Isso atualizará automaticamente seus ativos quando você os modificar em assets/vue
. Acesse sua instância chamilo normalmente. Em segundo plano, isso servirá ativos de um servidor personalizado em http://localhost:8080. Não acesse esta url diretamente, pois a Encore é responsável por alterar os ativos da url conforme necessário.
Você pode querer suportar PHP 8.1 (para Chamilo 2) e PHP 7.4 (para todas as outras coisas) no mesmo servidor simultaneamente. No Ubuntu, você poderia fazer desta forma:
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
Na configuração do vhost, certifique-se de configurar o PHP 8.1 FPM para responder a este único vhost adicionando, em algum lugar entre suas tags
, o seguinte:
SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost" Require all denied Require all denied
Em seguida, saia e reinicie o Apache:
sudo systemctl restart apache2
Finalmente, lembre-se que as configurações do PHP terão que ser alteradas em /etc/php/8.1/fpm/php.ini e você terá que recarregar o php8.1-fpm para levar em conta essas mudanças de configuração.
sudo systemctl reload php8.1-fpm
Ao usar 2 versões, você também terá problemas ao chamar composer update
, pois esta precisa ser chamada pela versão relevante do PHP. Isso pode ser feito assim:
/usr/bin/php8.1 /usr/local/bin/composer update or, for Chamilo 1.11 /usr/bin/php7.4 /usr/local/bin/composer update
Se o seu php-cli padrão usa PHP7.4 (veja ln -s /etc/alternatives/php
), você pode ter problemas ao executar um script chamado platform_check.php
ao executar composer update
de qualquer maneira. Isso ocorre porque este script não usa o contexto de inicialização adequado, e você pode precisar alterar suas configurações padrão no Ubuntu (ou seja, alterar o link /etc/alternatives/php para apontar para a outra versão do php) antes de iniciar composer update
. Você sempre pode reverter essa operação mais tarde se precisar voltar a trabalhar no Chamilo 1.11 e o Composer reclamar novamente.
Para usar os scripts de amostra do git hook em tests/scripts/git-hooks/
, os seguintes comandos podem ser usados.
git config core.hooksPath tests/scripts/git-hooks/
em geral, a pasta main/ foi movida para public/main/
app/Resources/public/assets movido para public/assets
main/inc/lib/javascript movido para public/js
principal/img/ movido para público/img
main/template/default movido para src/CoreBundle/Resources/views
src/Chamilo/XXXBundle movido para src/CoreBundle ou src/CourseBundle
bin/doctrine.php removido, use bin/console doutrina: opções xyz
Imagens de plug-in, bibliotecas css e js são carregadas dentro da pasta public/plugins (a atualização do compositor copia o conteúdo dentro de plugin_name/public dentro de web/plugins/plugin_name
Os modelos de plug-ins usam a função asset() em vez de usar "_p.web_plugin"
Remover main/inc/local.inc.php
Traduções gerenciadas através do Gettext
Bibliotecas
Integração com Symfony 5
PHPMailer substituído pelo Symfony Mailer
caramanchão substituído por fio
Correr
php bin/console lexik:jwt:generate-keypair
Na configuração do Apache Bearer com:
Autorização SetEnvIf "(.*)" HTTP_AUTHORIZATION=$1
Obtenha o token:
curl -k -X POST https://example.com/api/authentication_token -H "Tipo de conteúdo: aplicativo/json" -d '{"nome de usuário":"admin","senha":"admin"}'
A resposta deve retornar algo como:
{"token":"MyTokenABC"}
Acesse https://example.com/api
Clique no botão "Autorizar" e escreva o valor Bearer MyTokenABC
Então você pode fazer consultas usando o token JWT.
Consulte https://github.com/chamilo/chamilo-lms/projects/3
Se você deseja enviar novos recursos ou patches para Chamilo 2, siga o guia de contribuição do Github https://guides.github.com/activities/contributing-to-open-source/ e nosso arquivo CONTRIBUTING.md. Resumindo, pedimos que você nos envie Pull Requests com base em um branch que você cria com esse propósito em seu repositório bifurcado a partir do repositório Chamilo original.
Para mais informações sobre Chamilo, visite https://campus.chamilo.org/documentation/index.html