Konfigurasi
Chamilo 3.0 menggunakan variabel lingkungan dan berkas konfigurasi Symfony untuk pengaturan intinya. Halaman ini membahas berkas dan variabel konfigurasi utama.
Variabel Lingkungan (.env)
Berkas konfigurasi utama adalah .env di direktori akar Chamilo. Berkas ini berisi pengaturan spesifik lingkungan yang tidak boleh dikomit ke kontrol versi.
Berkas .env.dist bawaan disertakan bersama Chamilo dan berisi nilai default yang terdokumentasi. Buat .env (wajib untuk memulai instalasi) guna menimpa nilai sesuai lingkungan Anda.
Variabel Utama
APP_ENV
Lingkungan aplikasi, pada tingkat Symfony. Gunakan prod untuk produksi, dev untuk pengembangan, 'test' untuk pengujian.
prod
APP_SECRET
String acak yang digunakan untuk token CSRF, penandatanganan cookie, dan operasi kriptografi lainnya. Chamilo menghasilkan nilai unik untuk setiap instalasi. Jangan mengubahnya.
a1b2c3d4e5f6...
DATABASE_HOST
Host basis data. Default-nya localhost
localhost
DATABASE_PORT
Port basis data. Default-nya 3306 untuk MySQL/MariaDB
3306
DATABASE_NAME
Nama basis data, sebagaimana Anda berikan pada wizard instalasi.
Lihat di bawah.
DATABASE_USER
Nama pengguna basis data, sebagaimana Anda berikan pada wizard instalasi.
Lihat di bawah.
DATABASE_PASSWORD
Kata sandi pengguna basis data, sebagaimana Anda berikan pada wizard instalasi.
Lihat di bawah.
TRUSTED_PROXIES
(Opsional) Jika Anda meng-host Chamilo di belakang reverse proxy, Anda perlu menyediakan IP reverse proxy di sini agar Chamilo dapat menafsirkan panggilan dan menghasilkan respons dengan benar.
APP_ENABLE_API_ENTRYPOINT
(Opsional) Mengekspos dokumentasi API interaktif (Swagger/OpenAPI) di /api. Nonaktif secara default. Memerlukan cache clear agar berlaku — lihat Aktifkan Dokumentasi API di bawah.
true
Pengaturan lain di .env relatif jarang diubah.
Perhatikan bahwa, pada versi mendatang, pengaturan DATABASE_* akan digabungkan menjadi satu variabel DATABASE_URL.
Konfigurasi pengiriman e-mail disajikan selama instalasi, tetapi dapat diubah kemudian di bagian Platform settings pada dasbor administrasi.
Konfigurasi Symfony (Direktori config/)
Konfigurasi tingkat Symfony berada di direktori config/. Berkas YAML ini mengontrol perilaku kerangka kerja, definisi layanan, dan pengaturan spesifik paket.
Seluruh direktori config/ disertakan bersama setiap paket Chamilo dan setiap pembaruan — tidak seperti, misalnya, .env, direktori ini tidak dikecualikan atau dilindungi secara khusus selama peningkatan. Setiap perubahan yang dibuat langsung pada berkas di bawah config/ atau config/packages/ akan ditimpa secara senyap saat Anda memperbarui Chamilo berikutnya. Lihat Penimpaan Spesifik Lingkungan di bawah untuk cara yang didukung dalam menyesuaikan konfigurasi tanpa kehilangan perubahan Anda.
Tidak sering diperlukan untuk mengubah berkas-berkas tersebut, dan mengubahnya dapat membuat portal Anda tidak berfungsi, jadi jangan mencoba mengubahnya jika Anda harus menjamin ketersediaan sistem.
Berkas Konfigurasi Utama
config/authentication.yaml
Konfigurasi metode autentikasi.
config/packages/doctrine.yaml
Konfigurasi basis data dan ORM.
config/packages/security.yaml
Autentikasi, firewall, kontrol akses, dan hierarki peran.
config/packages/cache.yaml
Konfigurasi adapter cache (filesystem, APCu, Redis).
config/packages/framework.yaml
Pengaturan umum kerangka kerja Symfony (sesi, CSRF, router, HTTP caching).
config/packages/twig.yaml
Konfigurasi mesin templat.
config/services.yaml
Definisi layanan aplikasi dan injeksi dependensi.
Penimpaan Spesifik Lingkungan
Symfony mendukung konfigurasi per lingkungan. Berkas di config/packages/prod/ menimpa default ketika APP_ENV=prod, dan config/packages/dev/ menimpa ketika APP_ENV=dev.
Sebagai contoh, config/packages/prod/monolog.yaml biasanya mengonfigurasi pencatatan yang kurang verbose dibandingkan padanannya di pengembangan.
Chamilo tidak mendefinisikan konfigurasi apa pun di config/packages/prod/ dalam perangkat lunak itu sendiri, jadi jika Anda ingin menyesuaikan pengaturan dari config/packages/*.yaml, jangan sunting berkas dasar — buat berkas dengan nama yang sama di dalam config/packages/prod/ (atau dev//test/, sesuai lingkungan yang ingin Anda pengaruhi) yang hanya berisi kunci yang ingin Anda timpa, dan letakkan perubahan Anda di sana.
Hal ini penting karena berkas dasar config/packages/*.yaml adalah bagian dari paket Chamilo: setiap pembaruan mengirimkannya lagi dan menimpa apa pun yang ada di sana, sehingga suntingan yang dibuat langsung pada berkas tersebut tidak bertahan setelah peningkatan. Karena Chamilo tidak pernah mengirimkan apa pun di bawah config/packages/prod/ (atau dev//test/), direktori itu aman dari penimpaan oleh pembaruan dan merupakan tempat yang didukung untuk menyimpan kustomisasi lokal.
Izin File
Kami telah berupaya pada 2.0+ agar hanya satu direktori yang memerlukan izin, dan hal ini tetap berlaku di 3.0. Direktori tersebut adalah var/, dan untuk menghindari masalah yang rumit, cukup atur seluruh folder agar dapat ditulis oleh pengguna sistem server web.
Atur izin dengan tepat pada sistem berbasis Debian:
Tugas Konfigurasi Umum
Beralih ke Mode Produksi
Kemudian bersihkan dan panaskan cache:
Mengaktifkan Dokumentasi API
Kemudian bersihkan cache agar perubahan berlaku:
Dokumentasi API interaktif (Swagger/OpenAPI) kemudian tersedia di /api. Mengedit .env saja tidak cukup: nilai yang telah diselesaikan tertanam dalam cache terkompilasi Symfony, sehingga /api tetap mengembalikan status sebelumnya (aktif atau tidak) hingga cache dibersihkan. Tindakan Sistem > Bersihkan berkas sementara di panel administrasi tidak melakukan hal ini — lihat Alat Sistem untuk alasannya — sehingga perubahan khusus ini memerlukan akses shell untuk menjalankan cache:clear.
Mengonfigurasi Proxy Tepercaya
Jika Chamilo berjalan di belakang reverse proxy atau load balancer, konfigurasikan proxy tepercaya agar deteksi HTTPS dan resolusi IP klien berfungsi dengan benar:
Mengonfigurasi Penyimpanan Sesi
Secara default, sesi disimpan di sistem berkas. Untuk penerapan multi-server, konfigurasikan sesi berbasis Redis atau basis data:
Tips
Jangan pernah mengedit
.env.distsecara langsung -- Selalu gunakan.envuntuk penimpaan Anda. Berkas.env.distdapat tertimpa selama pemutakhiran.Pertahankan
APP_DEBUG=0di produksi -- Mode debug mengekspos informasi sensitif pada halaman kesalahan.Cadangkan
.envsecara terpisah dari basis kode karena berisi kredensial dan dikecualikan dari kontrol versi.
Terakhir diperbarui
Apakah ini membantu?