Diritti di accesso alle cartelle del progetto
Questa documentazione tradotta potrebbe non essere aggiornata. Per funzionalità o requisiti più recenti, consultare la documentazione inglese.
Ambiente di test
Quando vorrete solamente testare wallabag, eseguite il comando
make run
per avviare la vostra istanza di wallabag e tutto funzionerà
correttamente poiché l’utente che ha iniziato il progetto può accedere
alla cartella corrente senza problemi.
Ambiente di produzione
Non appena userete Apache o Nginx per accedere alla vostra istanza di
wallabag, e non avviandola con il comando make run
, dovrete aver cura
di concedere i giusti diritti sulle giuste cartelle per far rimanere
sicure tutte le cartelle del progetto.
Per fare ciò, il nome della cartella, conosciuta come DocumentRoot
(per Apache) o root
(per Nginx), deve essere assolutamente accessibile
all’utente Apache/Nginx. Il suo nome è generalmente www-data
, apache
o nobody
(dipendendo dal sistema Linux utilizzato).
Quindi la cartella /var/www/wallabag/web
deve essere accessibile da
quest’ultimo. Questo tuttavia potrebbe non essere sufficiente se solo ci
importa di questa cartella poiché potremmo incontrare una pagina bianca
o un errore 500 quando cerchiamo di accedere alla homepage del progetto.
Questo è dato dal fatto che dovrete concedere gli stessi diritti di
accesso di /var/www/wallabag/web
alla cartella /var/www/wallabag/var
. Risolverete quindi il problema con il seguente comando:
chown -R www-data:www-data /var/www/wallabag/var
Deve essere tutto uguale per le seguenti cartelle:
- /var/www/wallabag/bin/
- /var/www/wallabag/app/config/
- /var/www/wallabag/vendor/
- /var/www/wallabag/data/
inserendo
chown -R www-data:www-data /var/www/wallabag/bin
chown -R www-data:www-data /var/www/wallabag/app/config
chown -R www-data:www-data /var/www/wallabag/vendor
chown -R www-data:www-data /var/www/wallabag/data/
Altrimenti prima o poi incontrerete questi messaggi di errore:
Unable to write to the "bin" directory.
file_put_contents(app/config/parameters.yml): failed to open stream: Permission denied
file_put_contents(/.../wallabag/vendor/autoload.php): failed to open stream: Permission denied
Regole aggiuntive per SELinux
se SELinux è abilitato sul vostro sistema, dovrete configurare contesti aggiuntivi in modo che wallabag funzioni correttamente. Per controllare se SELinux è abilitato, semplicemente inserite ció che segue:
getenforce
Questo mostrerà Enforcing
se SELinux è abilitato. Creare un nuovo
contesto coinvolge la seguente sintassi:
semanage fcontext -a -t <context type> <full path>
Per esempio:
semanage fcontext -a -t httpd_sys_content_t "/var/www/wallabag(/.*)?"
Questo applicherà ricorsivamente il constesto httpd_sys_content_t alla cartella wallabag e a tutti i file e cartelle sottostanti. Sono necessarie le seguenti regole:
Percorso completo | Contesto |
---|---|
/var/www/wallabag(/.*)? | httpd_sys_content_t |
/var/www/wallabag/data(/.*)? | httpd_sys_rw_content_t |
/var/www/wallabag/var/logs(/.*)? | httpd_log_t |
/var/www/wallabag/var/cache(/.*)? | httpd_cache_t |
Dopo aver creato questi contesti, inserite ciò che segue per applicare le vostre regole:
restorecon -R -v /var/www/wallabag
Potrete controllare i contesti in una cartella scrivendo ls -lZ
e
potrete vedere tutte le regole correnti con semanage fcontext -l -C
.
Se state installando il pacchetto preconfigurato latest-v2-package, è necessaria un'ulteriore regola durante la configurazione iniziale:
semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/wallabag/var"
Dopo che siate acceduti con successo al vostro wallabag e abbiate completato la configurazione iniziale, questo contesto può essere rimosso:
semanage fcontext -d -t httpd_sys_rw_content_t "/var/www/wallabag/var"
retorecon -R -v /var/www/wallabag/var