Chamilo は、「LMS」とも呼ばれる e ラーニング プラットフォームで、GNU/GPLv3+ ライセンスに基づいて公開されています。 2010 年の開始以来、世界中で 3,000 万人以上の人々に使用されています。これは開発版です。現在の安定したブランチについては、[コード] タブで 1.11.x ブランチを選択してください。
Chamilo 2.0 はまだ開発中です。以下のインストール手順は参照のみを目的としています。安定した Chamilo を使用するには、Chamilo 1.11.x をインストールしてください。詳細については、1.11.x ブランチの README.md を参照してください。
以下のものをすでに持っていることを前提としています。
コンポーザー 2.x - https://getcomposer.org/download/
糸 +4.x - https://yarnpkg.com/getting-started/install
ノード >= v18+ (lts) - https://github.com/nodesource/distributions/blob/master/README.md
ドメイン内のサブフォルダーではなく、ドメイン内で仮想ホストを構成します。
PHP 8.1+ を使用して動作する LAMP/WAMP サーバー
Chamilo 2 を実行するには、PHP8+ および NodeJS v18+ が必要です。新しい Ubuntu 22.04 では、sudo を使用して (または root として、ただしセキュリティ上の理由から推奨されません)、次のような apt コマンドを発行してサーバーを準備できます。
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
既に nodejs がインストールされている場合は、 node -v
を使用してバージョンを確認します。それ以外の場合は、node 18 以降をインストールします。
https://deb.nodesource.com/node_20.x/ の手順に従ってください。次の行はこれらの命令の静的バージョンを使用しているため、長期的にはあまり持続可能ではない可能性があります。
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
Nodejs をインストールする他のオプションは、NVM (Node Version Manager) を使用することです。ここの指示に従ってインストールできます。その後、必要なノードのバージョンをインストールできます。できれば LTS バージョン。
sudo nvm install --lts sudo nvm use --lts
NodeJS がインストールされている場合は、corepack を有効にして、要件を続行する必要があります。
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
システムの設定が完了したら、以下を使用できます。
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/
Web サーバー構成で、.htaccess の解釈 ( AllowOverride all
およびRequire all granted
) を許可し、 DocumentRoot
がpublic/
サブディレクトリを指すようにしてください。
上記の準備が完了したら、 main/install/index.phpに入り、UI の指示 (データベース、管理者ユーザー設定など) に従います。
Web インストール プロセスの後、アクセス許可を適度に安全な状態に戻します。
chown -R root .env config/
すでにインストールしていて、Git から更新したい場合は、次のようにします。
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
プレアルファ段階の開発者向けの注意: doctrine コマンドは、新規インストールでデータベース スキーマを予期されるデータベース スキーマに更新しようとします。 Doctrine はこれを行うための最速のルートを選択するため、これは常に完璧であるとは限りません。たとえば、テーブルの名前を変更する移行がある場合 (これは移行中の Chamilo 1 のシステムに問題なく適用されます)、Doctrine は移行先のテーブルが存在せず、元のテーブル (新しいテーブルには存在すべきではない) とみなす可能性があります。インストール) がまだ存在するため、古いテーブルを削除して新しいテーブルを作成するだけで、その過程でそのテーブル内のすべてのレコードが失われます。これを回避するには、代わりに以下を使用して移行を実行することを優先します。
php bin/console doctrine:migrations:execute "ChamiloCoreBundleMigrationsSchemaV200Version[date]"
これにより、移行ロジックが尊重され、必要なデータ処理が実行されます。
これにより、public/build フォルダー内の JS (yarn) と PHP (composer) の依存関係が更新されます。
場合によっては、既存のファイルとの競合が発生することがあります。そのため、競合を回避するためのヒントをいくつか示します。
コンポーザーエラーの場合は、ベンダーフォルダーとcomposer.lockファイルを削除できます。
糸エラーの場合は、yarn.lock .yarn/cache/* node_modules/* を削除できます。
Chamilo を開いたときにロードされない場合は、var/cache/* を削除できます。
不完全な移行または Chamilo の開発バージョンをインストールした後に追加された移行に基づいて、Chamilo の一部の設定が正しく処理されなかった可能性があると思われる場合は、URL /admin/settings_sync が構築され、更新することで自動的に修正を試みます。データベースの状態に基づく PHP クラス。ただし、この問題はめったに発生しません。
開発環境にインストールしていて、完全にクリーンアップする必要があると思われる場合 (データベースの変更後に必要になる場合があります)、次の方法でクリーンアップできます。
.env
ファイルの削除
{url}/main/install/index.php スクリプトを再度ロードします。
データベースはテーブルごとに自動的に破棄されます。極端な場合 (以前のバージョンで不要になったテーブルが作成され、問題が発生した場合)、テーブルを削除するだけで完全にクリーンアップしたい場合もありますが、これはほとんどの場合必要ありません。
何らかの理由で、composer またはyarn のいずれかに問題がある場合は、最初のステップとして、 vendor/
フォルダー (composer の場合) またはnode_modules/
フォルダー (yarn の場合) を完全に削除することをお勧めします。
あなたが開発者で、現在の開発ブランチ (まだ安定していません) で Chamilo に貢献したい場合は、以下の手順に従ってください。現時点では開発バージョンは完全ではなく、多くの機能がまだ動作していないことに留意してください。これは、コード、ファイル、データベースの構造に大規模な変更を必要とするルート コンポーネントに取り組んでいるからです。そのため、動作するバージョンを入手するには、完全にアンインストールして、時々再インストールする必要がある場合があります。警告されましたね。
まず、「Chamilo での CSS と JavaScript の管理」で説明されている手順を適用します (特に、指定されたリンクに従って、必要なコンポーネントをすべてコンピューターにインストールしてください)。
次に、データベースが大きなプレフィックスをサポートしていることを確認してください (MySQL < 5.7 または MariaDB < 10.2.2 を使用している場合は、このスタック オーバーフロー スレッドを参照してください)。
(your-domain)/main/install/index.php URL をロードして、インストーラーを起動します (以前のバージョンのインストーラーとよく似ています)。インストーラーが純粋な HTML で、きれいなレイアウトで表示されない場合は、これらの手順に注意深く従わなかったことが原因です。このセクションの最初に戻って、もう一度試してください。
アセットのホットリロードが必要な場合は、コマンドyarn run encore dev-server
使用します。これにより、 assets/vue
でアセットを変更すると、アセットが自動的に更新されます。通常どおり Chamilo インスタンスにアクセスします。これにより、バックグラウンドで http://localhost:8080 のカスタム サーバーからアセットが提供されます。 Encore は必要に応じて URL アセットの変更を担当するため、この URL に直接アクセスしないでください。
同じサーバー上で PHP 8.1 (Chamilo 2 用) と PHP 7.4 (その他すべて用) を同時にサポートしたい場合があります。 Ubuntu では、次の方法で実行できます。
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
vhost 構成では、
タグの間に次の行を追加して、この単一の vhost に応答するように PHP 8.1 FPM を設定してください。
SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost" Require all denied Require all denied
次に、Apache を終了して再起動します。
sudo systemctl restart apache2
最後に、/etc/php/8.1/fpm/php.ini で PHP 設定を変更する必要があり、それらの設定変更を考慮に入れるために php8.1-fpm をリロードする必要があることに注意してください。
sudo systemctl reload php8.1-fpm
2 つのバージョンを使用する場合は、 composer update
呼び出すときにも問題が発生します。これは、関連する PHP バージョンによって呼び出される必要があるためです。これは次のようにして実行できます。
/usr/bin/php8.1 /usr/local/bin/composer update or, for Chamilo 1.11 /usr/bin/php7.4 /usr/local/bin/composer update
デフォルトの php-cli が PHP7.4 を使用している場合 ( ln -s /etc/alternatives/php
参照)、 composer update
実行するときにいわゆるplatform_check.php
スクリプトを実行すると問題が発生する可能性があります。これは、このスクリプトが適切な起動コンテキストを使用しないためで、 composer update
起動する前に、Ubuntu のデフォルト設定を変更する (つまり、リンク /etc/alternatives/php を他の php バージョンを指すように変更する) 必要がある場合があります。 Chamilo 1.11 での作業に戻る必要があり、Composer が再び問題を起こす場合は、後でいつでもその操作を元に戻すことができます。
tests/scripts/git-hooks/
にある git フック サンプル スクリプトを使用するには、次のコマンドを使用できます。
git config core.hooksPath tests/scripts/git-hooks/
一般に、main/ フォルダーは public/main/ に移動されました。
app/Resources/public/assets が public/assets に移動されました
main/inc/lib/javascript を public/js に移動
main/img/ を public/img に移動しました
main/template/default を src/CoreBundle/Resources/views に移動
src/Chamilo/XXXBundle は src/CoreBundle または src/CourseBundle に移動されました
bin/doctrine.php を削除、bin/console doctrine:xyz オプションを使用
プラグイン イメージ、CSS、JS ライブラリは public/plugins フォルダー内にロードされます (Composer の更新により、plugin_name/public 内のコンテンツが web/plugins/plugin_name 内にコピーされます)
プラグイン テンプレートは、「_p.web_plugin」を使用する代わりに、asset() 関数を使用します。
main/inc/local.inc.php を削除します。
Gettext を通じて翻訳を管理
図書館
Symfony 5 との統合
PHPMailer は Symfony Mailer に置き換えられました
弓を糸に置き換える
走る
php bin/console lexik:jwt:generate-keypair
Apache では、次のように Bearer をセットアップします。
SetEnvIf 認可 "(.*)" HTTP_AUTHORIZATION=$1
トークンを取得します。
カール -k -X POST https://example.com/api/authentication_token -H "コンテンツタイプ: application/json" -d '{"ユーザー名":"管理者","パスワード":"管理者"}'
応答は次のようなものを返すはずです。
{"トークン":"MyTokenABC"}
https://example.com/api に移動します
「承認」ボタンをクリックし、値Bearer MyTokenABC
を書き込みます。
その後、JWT トークンを使用してクエリを作成できます。
https://github.com/chamilo/chamilo-lms/projects/3 を参照してください。
Chamilo 2 に新しい機能やパッチを提出したい場合は、Github コントリビューション ガイド https://guides.github.com/activities/contributing-to-open-source/ および CONTRIBUTING.md ファイルに従ってください。つまり、この目的で元の Chamilo リポジトリからフォークされたリポジトリに作成したブランチに基づいて、プル リクエストを送信してください。
Chamilo の詳細については、https://campus.chamilo.org/documentation/index.html をご覧ください。