Chamilo adalah platform e-learning, juga disebut "LMS", yang diterbitkan di bawah lisensi GNU/GPLv3+. Ini telah digunakan oleh lebih dari 30 juta orang di seluruh dunia sejak diluncurkan pada tahun 2010. Ini adalah versi pengembangan. Untuk cabang stabil saat ini, silakan pilih cabang 1.11.x di tab Kode.
Chamilo 2.0 masih dalam pengembangan. Prosedur instalasi di bawah ini hanya untuk referensi. Untuk Chamilo yang stabil, silakan instal Chamilo 1.11.x. Lihat README.md cabang 1.11.x untuk detailnya.
Kami berasumsi Anda sudah memiliki:
komposer 2.x - https://getcomposer.org/download/
benang +4.x - https://yarnpkg.com/getting-started/install
Node >= v18+ (lts) - https://github.com/nodesource/distributions/blob/master/README.md
Mengonfigurasi virtualhost di domain, bukan di sub folder di dalam domain.
Server LAMP/WAMP yang berfungsi dengan PHP 8.1+
Anda memerlukan PHP8+ dan NodeJS v18+ untuk menjalankan Chamilo 2. Pada Ubuntu 22.04 yang baru, Anda dapat mempersiapkan server Anda dengan mengeluarkan perintah apt seperti berikut dengan sudo (atau sebagai root, tetapi tidak disarankan karena alasan keamanan):
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
Jika Anda sudah menginstal nodejs, periksa versinya dengan node -v
Jika tidak, instal node 18 atau lebih tinggi:
mengikuti instruksi di sini: https://deb.nodesource.com/node_20.x/. Baris berikut menggunakan versi statis dari instruksi tersebut, jadi mungkin tidak terlalu berkelanjutan seiring berjalannya waktu
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
Pilihan lain untuk menginstal nodejs adalah dengan menggunakan NVM (Node Version Manager). Anda dapat menginstalnya dengan mengikuti petunjuk di sini. Kemudian, Anda dapat menginstal versi node yang diperlukan. Lebih disukai, versi LTS.
sudo nvm install --lts sudo nvm use --lts
Dengan NodeJS terinstal, Anda harus mengaktifkan corepack dan kemudian melanjutkan dengan persyaratan
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
Ketika sistem Anda sudah siap, Anda dapat menggunakan yang berikut ini:
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/
Dalam konfigurasi server web Anda, pastikan Anda mengizinkan interpretasi .htaccess ( AllowOverride all
dan Require all granted
), dan arahkan DocumentRoot
ke subdirektori public/
.
Setelah hal di atas siap, masuk ke main/install/index.php dan ikuti instruksi UI (database, pengaturan pengguna admin, dll).
Setelah proses instalasi web, ubah izin kembali ke kondisi yang cukup aman:
chown -R root .env config/
Jika Anda sudah menginstalnya dan hanya ingin memperbaruinya dari Git, lakukan:
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
Catatan untuk pengembang dalam tahap pra-alfa: perintah doktrin akan mencoba memperbarui skema database Anda ke skema database yang diharapkan dalam instalasi baru. Hal ini tidak selalu sempurna, karena Doktrin akan mengambil jalan tercepat untuk melakukan hal ini. Misalnya, jika Anda memiliki migrasi untuk mengganti nama tabel (yang akan berlaku baik untuk sistem di Chamilo 1 yang sedang dimigrasi ), Doctrine mungkin menganggap bahwa tabel tujuan tidak ada dan asli (yang seharusnya tidak ada di tabel baru instalasi) masih ada, sehingga hanya akan membuang tabel lama dan membuat yang baru, kehilangan semua catatan dalam tabel tersebut dalam prosesnya. Untuk menghindari hal ini, lebih baik jalankan migrasi dengan yang berikut ini.
php bin/console doctrine:migrations:execute "ChamiloCoreBundleMigrationsSchemaV200Version[date]"
Ini akan menghormati logika migrasi dan melakukan pemrosesan data yang diperlukan.
Ini akan memperbarui dependensi JS (yarn) dan PHP (komposer) di folder public/build.
Terkadang ada konflik dengan file yang ada, jadi untuk menghindarinya, berikut beberapa petunjuknya:
untuk kesalahan komposer Anda dapat menghapus folder vendor dan file composer.lock
untuk kesalahan benang Anda dapat menghapus benang.lock .yarn/cache/* node_modules/*
saat membuka Chamilo tidak memuat, maka Anda dapat menghapus var/cache/*
Jika Anda yakin beberapa pengaturan di Chamilo mungkin tidak diproses dengan benar berdasarkan migrasi yang tidak lengkap atau migrasi yang ditambahkan setelah Anda menginstal versi pengembangan Chamilo, URL /admin/settings_sync dibuat untuk mencoba dan memperbaikinya secara otomatis dengan memperbarui Kelas PHP berdasarkan status database. Namun masalah ini jarang terjadi.
Jika Anda menginstalnya di lingkungan pengembang dan merasa harus membersihkannya sepenuhnya (mungkin diperlukan setelah perubahan pada database), Anda dapat melakukannya dengan:
Menghapus file .env
Muat kembali skrip {url}/main/install/index.php
Basis data harus dimusnahkan secara otomatis, tabel demi tabel. Dalam beberapa kasus ekstrim (versi sebelumnya membuat tabel yang tidak diperlukan lagi dan menimbulkan masalah), Anda mungkin ingin membersihkannya sepenuhnya hanya dengan membuangnya, namun hal ini tidak selalu diperlukan.
Jika, karena alasan tertentu, Anda mempunyai masalah dengan komposer atau benang, langkah pertama yang baik adalah menghapus sepenuhnya folder vendor/
(untuk komposer) atau folder node_modules/
(untuk benang).
Jika Anda seorang pengembang dan ingin berkontribusi pada Chamilo di cabang pengembangan saat ini (belum stabil), silakan ikuti petunjuk di bawah ini. Harap diingat bahwa versi pengembangan saat ini BELUM SELESAI, dan banyak fitur yang belum berfungsi. Ini karena kami sedang mengerjakan komponen root yang memerlukan perubahan besar pada struktur kode, file, dan database. Oleh karena itu, untuk mendapatkan versi yang berfungsi, Anda mungkin perlu menghapus instalan sepenuhnya dan menginstal ulang dari waktu ke waktu. Anda telah diperingatkan.
Pertama, terapkan prosedur yang dijelaskan di sini: Mengelola CSS dan JavaScript di Chamilo (khususnya, pastikan Anda mengikuti tautan yang diberikan untuk menginstal semua komponen yang diperlukan di komputer Anda).
Kemudian pastikan database Anda mendukung awalan yang besar (lihat thread Stack Overflow ini jika Anda menggunakan MySQL <5.7 atau MariaDB <10.2.2).
Muat URL (domain-Anda)/main/install/index.php untuk memulai penginstal (yang sangat mirip dengan penginstal di versi sebelumnya). Jika penginstalnya murni HTML dan tidak muncul dengan tata letak yang bersih, itu karena Anda tidak mengikuti petunjuk ini dengan cermat. Kembali ke awal bagian ini dan coba lagi.
Jika Anda ingin hot reload untuk aset gunakan perintah yarn run encore dev-server
. Ini akan menyegarkan aset Anda secara otomatis ketika Anda memodifikasinya di bawah assets/vue
. Akses instance chamilo Anda seperti biasa. Di latar belakang, ini akan menyajikan aset dari server khusus di http://localhost:8080. Jangan mengakses url ini secara langsung karena Encore bertugas mengubah aset url sesuai kebutuhan.
Anda mungkin ingin mendukung PHP 8.1 (untuk Chamilo 2) dan PHP 7.4 (untuk hal lainnya) di server yang sama secara bersamaan. Di Ubuntu, Anda bisa melakukannya dengan cara ini:
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
Dalam konfigurasi vhost, pastikan Anda menyetel PHP 8.1 FPM untuk menjawab vhost tunggal ini dengan menambahkan, di antara tag
Anda, berikut ini:
SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost" Require all denied Require all denied
Kemudian keluar dan restart Apache:
sudo systemctl restart apache2
Terakhir, ingatlah bahwa pengaturan PHP harus diubah di /etc/php/8.1/fpm/php.ini dan Anda harus memuat ulang php8.1-fpm untuk memperhitungkan perubahan konfigurasi tersebut.
sudo systemctl reload php8.1-fpm
Saat menggunakan 2 versi, Anda juga akan mengalami masalah saat memanggil composer update
, karena versi ini perlu dipanggil oleh versi PHP yang relevan. Ini dapat dilakukan seperti ini:
/usr/bin/php8.1 /usr/local/bin/composer update or, for Chamilo 1.11 /usr/bin/php7.4 /usr/local/bin/composer update
Jika php-cli default Anda menggunakan PHP7.4 (lihat ln -s /etc/alternatives/php
), Anda mungkin mengalami masalah saat menjalankan skrip platform_check.php
saat menjalankan composer update
. Ini karena skrip ini tidak menggunakan konteks peluncuran yang tepat, dan Anda mungkin perlu mengubah pengaturan default di Ubuntu (yaitu mengubah tautan /etc/alternatives/php untuk menunjuk ke versi php lainnya) sebelum meluncurkan composer update
. Anda selalu dapat mengembalikan operasi itu nanti jika Anda perlu kembali mengerjakan Chamilo 1.11 dan Komposer mengeluh lagi.
Untuk menggunakan contoh skrip git hook di bawah tests/scripts/git-hooks/
, perintah berikut dapat digunakan.
git config core.hooksPath tests/scripts/git-hooks/
secara umum folder main/ sudah dipindahkan ke public/main/
app/Resources/public/assets dipindahkan ke public/assets
main/inc/lib/javascript dipindahkan ke public/js
main/img/ dipindahkan ke publik/img
main/template/default dipindahkan ke src/CoreBundle/Resources/views
src/Chamilo/XXXBundle dipindahkan ke src/CoreBundle atau src/CourseBundle
bin/doctrine.php dihapus menggunakan doktrin bin/konsol: opsi xyz
Gambar plugin, lib css dan js dimuat di dalam folder public/plugins (pembaruan komposer menyalin konten di dalam plugin_name/public di dalam web/plugins/plugin_name
Templat plugin menggunakan fungsi aset() alih-alih menggunakan "_p.web_plugin"
Hapus main/inc/local.inc.php
Terjemahan dikelola melalui Gettext
Perpustakaan
Integrasi dengan Symfony 5
PHPMailer diganti dengan Symfony Mailer
bower diganti dengan benang
Berlari
php bin/konsol lexik:jwt:generate-keypair
Dalam pengaturan Apache Bearer dengan:
Otorisasi SetEnvIf "(.*)" HTTP_AUTHORIZATION=$1
Dapatkan tokennya:
curl -k -X POST https://example.com/api/authentication_token -H "Jenis Konten: aplikasi/json" -d '{"nama pengguna":"admin","kata sandi":"admin"}'
Responsnya akan menghasilkan sesuatu seperti:
{"token":"TokenABC Saya"}
Buka https://example.com/api
Klik tombol "Otorisasi" dan tulis nilai Bearer MyTokenABC
Kemudian Anda dapat membuat pertanyaan menggunakan token JWT.
Lihat https://github.com/chamilo/chamilo-lms/projects/3
Jika Anda ingin mengirimkan fitur atau patch baru ke Chamilo 2, silakan ikuti panduan kontribusi Github https://guides.github.com/activities/contributing-to-open-source/ dan file CONTRIBUTING.md kami. Singkatnya, kami meminta Anda mengirimkan Permintaan Tarik berdasarkan cabang yang Anda buat dengan tujuan ini ke dalam repositori Anda yang bercabang dari repositori Chamilo asli.
Untuk informasi lebih lanjut tentang Chamilo, kunjungi https://campus.chamilo.org/documentation/index.html