# Διαμόρφωση

Το Chamilo 2.0 χρησιμοποιεί μεταβλητές περιβάλλοντος και αρχεία ρύθμισης Symfony για τις βασικές του παραμέτρους. Αυτή η σελίδα καλύπτει τα βασικά αρχεία ρύθμισης και μεταβλητές.

## Μεταβλητές Περιβάλλοντος (.env)

Το κύριο αρχείο ρύθμισης είναι το `.env` στον ριζικό κατάλογο του Chamilo. Αυτό το αρχείο περιέχει ρυθμίσεις ειδικές για το περιβάλλον που δεν πρέπει να εισαχθούν στον έλεγχο έκδοσης.

Ένα προεπιλεγμένο αρχείο `.env.dist` συνοδεύει το Chamilo και περιέχει τεκμηριωμένες προεπιλογές. Δημιουργήστε το `.env` (απαιτείται για την έναρξη της εγκατάστασης) για να παρακάμψετε τιμές για το περιβάλλον σας.

### Βασικές Μεταβλητές

| Μεταβλητή           | Περιγραφή                                                                                                                                                                                                            | Παράδειγμα        |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- |
| `APP_ENV`           | Το περιβάλλον εφαρμογής, σε επίπεδο Symfony. Χρησιμοποιήστε `prod` για παραγωγή, `dev` για ανάπτυξη, 'test' για δοκιμές.                                                                                             | `prod`            |
| `APP_SECRET`        | Ένα τυχαίο συμβολοσειρά που χρησιμοποιείται για διακριτικά CSRF, υπογραφή cookies και άλλες κρυπτογραφικές λειτουργίες. Το Chamilo παράγει μοναδική τιμή για κάθε εγκατάσταση. Μην το τροποποιήσετε.                 | `a1b2c3d4e5f6...` |
| `DATABASE_HOST`     | Ο κεντρικός υπολογιστής της βάσης δεδομένων. Προεπιλογή localhost                                                                                                                                                    | `localhost`       |
| `DATABASE_PORT`     | Η θύρα της βάσης δεδομένων. Προεπιλογή 3306 για MySQL/MariaDB                                                                                                                                                        | `3306`            |
| `DATABASE_NAME`     | Το όνομα της βάσης δεδομένων, όπως δόθηκε από εσάς στον οδηγό εγκατάστασης.                                                                                                                                          | Δείτε παρακάτω.   |
| `DATABASE_USER`     | Το όνομα χρήστη της βάσης δεδομένων, όπως δόθηκε από εσάς στον οδηγό εγκατάστασης.                                                                                                                                   | Δείτε παρακάτω.   |
| `DATABASE_PASSWORD` | Ο κωδικός πρόσβασης του χρήστη της βάσης δεδομένων, όπως δόθηκε από εσάς στον οδηγό εγκατάστασης.                                                                                                                    | Δείτε παρακάτω.   |
| `TRUSTED_PROXIES`   | (Προαιρετικό) Αν φιλοξενούμε το Chamilo πίσω από reverse proxy, πρέπει να παρέχετε εδώ τη(ς) διεύθυνση(εις) IP του reverse proxy ώστε το Chamilo να μπορεί να ερμηνεύει σωστά τις κλήσεις και να παράγει απαντήσεις. |                   |

Άλλες ρυθμίσεις στο .env τροποποιούνται σχετικά σπάνια.

Σημειώστε ότι, σε μελλοντικές εκδόσεις, οι ρυθμίσεις DATABASE\_\* θα συνδυαστούν σε μία ενιαία μεταβλητή `DATABASE_URL`.

Η ρύθμιση αποστολής email παρουσιάζεται κατά την εγκατάσταση, αλλά μπορεί να τροποποιηθεί αργότερα στην ενότητα `Ρυθμίσεις Πλατφόρμας` του πίνακα ελέγχου διαχείρισης.

## Ρύθμιση Symfony (Κατάλογος config/)

Η ρύθμιση σε επίπεδο Symfony βρίσκεται στον κατάλογο `config/`. Αυτά τα αρχεία YAML ελέγχουν τη συμπεριφορά του πλαισίου, ορισμούς υπηρεσιών και ρυθμίσεις ειδικές για πακέτα.

Δεν είναι συχνό να χρειάζεται να τροποποιήσετε αυτά τα αρχεία, και η αλλαγή τους μπορεί να καταστήσει την πύλη σας μη λειτουργική, οπότε παρακαλούμε μην προσπαθήσετε να τα τροποποιήσετε αν πρέπει να εξασφαλίσετε τη διαθεσιμότητα του συστήματος.

### Βασικά Αρχεία Ρύθμισης

| Αρχείο                           | Σκοπός                                                                     |
| -------------------------------- | -------------------------------------------------------------------------- |
| `config/authentication.yaml`     | Ρύθμιση μεθόδων πιστοποίησης.                                              |
| `config/packages/doctrine.yaml`  | Ρύθμιση βάσης δεδομένων και ORM.                                           |
| `config/packages/security.yaml`  | Πιστοποίηση, firewalls, έλεγχος πρόσβασης και ιεραρχίες ρόλων.             |
| `config/packages/cache.yaml`     | Ρύθμιση προσαρμογέα cache (filesystem, APCu, Redis).                       |
| `config/packages/framework.yaml` | Γενικές ρυθμίσεις πλαισίου Symfony (συνεδρία, CSRF, router, HTTP caching). |
| `config/packages/twig.yaml`      | Ρύθμιση μηχανής προτύπων.                                                  |
| `config/services.yaml`           | Ορισμοί υπηρεσιών εφαρμογής και έγχυση εξαρτήσεων.                         |

### Παρακάμψεις Ρύθμισης Ανά Περιβάλλον

Το Symfony υποστηρίζει ρύθμιση ανά περιβάλλον. Αρχεία στο `config/packages/prod/` παρακάμπτουν τις προεπιλογές όταν `APP_ENV=prod`, και `config/packages/dev/` παρακάμπτει όταν `APP_ENV=dev`.

Για παράδειγμα, το `config/packages/prod/monolog.yaml` συνήθως ρυθμίζει λιγότερο λεπτομερή καταγραφή από την αντίστοιχη ανάπτυξης.

Το Chamilo δεν ορίζει καμία ρύθμιση στο `config/packages/prod/` στο ίδιο το λογισμικό, οπότε αν θέλετε να προσαρμόσετε ρύθμιση από `config/packages/*.yaml`, απλώς δημιουργήστε ένα αντίγραφο του αρχείου yaml μέσα σε αυτόν τον κατάλογο και αλλάξτε τις ρυθμίσεις εκεί.

## Δικαιώματα Αρχείων

Κάναμε προσπάθειες στο 2.0+ να εξασφαλίσουμε ότι χρειάζεται δικαιώματα σε έναν μόνο κατάλογο. Αυτός είναι ο κατάλογος `var/`, και για να αποφύγετε σύνθετα ζητήματα, αρκεί να ορίσετε ολόκληρο τον φάκελο ως εγγράψιμο από τον χρήστη συστήματος του web server.

Ορίστε τα κατάλληλα δικαιώματα σε συστήματα βασισμένα σε Debian:

```bash
# Για συστήματα όπου ο web server εκτελείται ως www-data
chown -R www-data:www-data var/
chmod -R 775 var/
```

## Κοινές Εργασίες Ρύθμισης

### Μετάβαση σε Λειτουργία Παραγωγής

```bash
# Στο .env
APP_ENV=prod
APP_DEBUG=0
```

Στη συνέχεια, καθαρίστε και θερμάνετε την cache:

```bash
php bin/console cache:clear --env=prod
php bin/console cache:warmup --env=prod
```

### Ρύθμιση Εμπιστευμένων Proxies

Αν το Chamilo εκτελείται πίσω από reverse proxy ή load balancer, ρυθμίστε εμπιστευμένα proxies ώστε η ανίχνευση HTTPS και η ανάλυση IP πελάτη να λειτουργούν σωστά:

```yaml
# .env
TRUSTED_PROXIES='127.0.0.1,PROXY_IP'
```

### Ρύθμιση Αποθήκευσης Συνεδρίας

Εξ ορισμού, οι συνεδρίες αποθηκεύονται στο σύστημα αρχείων. Για εγκαταστάσεις πολλαπλών servers, ρυθμίστε συνεδρίες βασισμένες σε Redis ή βάση δεδομένων:

```yaml
# config/packages/framework.yaml
framework:
    session:
        handler_id: 'redis://localhost:6379'
```

***

## Συμβουλές

* **Μην επεξεργάζεστε ποτέ απευθείας το `.env.dist`** -- Χρησιμοποιείτε πάντα το `.env` για τις παραμετροποιήσεις σας. Το αρχείο `.env.dist` ενδέχεται να αντικατασταθεί κατά τις ενημερώσεις.
* **Διατηρείτε το `APP_DEBUG=0` σε παραγωγή** -- Η λειτουργία αποσφαλμάτωσης εκθέτει ευαίσθητες πληροφορίες στις σελίδες σφαλμάτων.
* **Κάντε αντιγράφων ασφαλείας του `.env`** ξεχωριστά από τον κώδικα πηγής, καθώς περιέχει διαπιστευτήρια και αποκλείεται από τον έλεγχο εκδόσεων.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.chamilo.org/2.x-el/odigos-diaxeirisis/admin-guide/installation/configuration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
