Jirafeau è una semplice applicazione web di file hosting e condivisione costruita in PHP. Non richiede un database e fornisce un'interfaccia utente pulita e facile da usare con supporto per protezione tramite password, scadenza programmata, download una tantum (autodistruzione) e anteprima nel browser tra le altre utili funzioni.
Questo articolo ti guiderà attraverso l'installazione e la configurazione di Jirafeau su Debian 10 da zero, con Nginx e PHP-FPM.
Requisiti
- Un sistema Debian 10 su cui hai accesso come root.
- Un nome di dominio che punta al tuo server.
- Deve essere impostata la variabile di ambiente $EDITOR.
Se hai effettuato l'accesso come utente sudo non root, utilizza una shell privilegiata per eseguire i comandi mostrati in questa guida. Puoi avviare una shell di root con:
sudo -s
Installazione Jirafeau
Aggiornamento del sistema e installazione delle dipendenze
Inizia aggiornando il tuo sistema:
apt update apt upgrade -y reboot
Una volta che il sistema è di nuovo attivo, installa i pacchetti software richiesti con il seguente comando:
apt install -y nginx php php-fpm certbot git
Quindi assicurati che Nginx e PHP-FPM siano entrambi abilitati e in esecuzione:
systemctl enable --now nginx.service php7.3-fpm.service
Ottieni il certificato SSL
Prima di configurare il server web, dovrai ottenere un certificato SSL per il tuo dominio. Per farlo, usa lo strumento certbot come mostrato:
certbot certonly --webroot -m [email protected] -d your_domain --agree-tos
Dopo aver eseguito questo comando, ti verrà prima chiesto se desideri ricevere e-mail dall'EFF. Quindi, quando ti viene chiesto di inserire la webroot per il tuo dominio, inserisci /var/www/html:
Obtaining a new certificate Performing the following challenges: http-01 challenge for example.com Input the webroot for example.com: (Enter 'c' to cancel): /var/www/html
La proprietà del dominio verrà verificata e il tuo certificato e i file correlati verranno salvati in /etc/letsencrypt/live/your_domain/. Ora possiamo configurare Nginx.
Configurazione Nginx
Disabilita il file di configurazione predefinito in quanto non è necessario:
rm /etc/nginx/sites-enabled/default
Quindi crea un nuovo file di configurazione:
$EDITOR /etc/nginx/sites-available/your_domain.conf
E inserisci quanto segue:
server { listen 80; listen [::]:80; server_name your_domain; return 301 https://your_domain$request_uri; } server { listen 443 ssl; listen [::]:443 ssl; server_name your_domain; root /var/www/html/jirafeau; index index.php; ssl on; ssl_certificate /etc/letsencrypt/live/your_domain/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/your_domain/privkey.pem; location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_index index.php; fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; include fastcgi_params; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
NOTA: con la configurazione fornita, tutte le richieste HTTP verranno reindirizzate a HTTPS.
Quindi, abilita il nuovo file di configurazione creando un collegamento simbolico nella directory /etc/nginx/sites-enabled/:
ln -s /etc/nginx/sites-available/your_domain.conf /etc/nginx/sites-enabled/
Verifica la presenza di eventuali errori di configurazione con:
nginx -t
Quindi caricalo eseguendo il comando:
systemctl reload nginx.service
Installazione di Jirafeau
Scarica Jirafeau dal suo repository Gitlab:
mkdir /var/www/html/jirafeau git clone https://gitlab.com/mojo42/Jirafeau.git /var/www/html/jirafeau
Crea una directory di dati per Jirafeau. Questa directory non dovrebbe essere accessibile tramite il tuo server web (cioè dovrebbe risiedere al di fuori della directory principale web, che è /var/www/html con la nostra configurazione). Useremo /var/data/jirafeau.
mkdir -p /var/data/jirafeau
Assegna all'utente Nginx la proprietà della configurazione e delle directory dei dati utilizzate da Jirafeau. In modo ottimale, dovresti rafforzare le autorizzazioni dei file una volta completata la configurazione.
chown -R www-data:www-data /var/www/html/jirafeau/lib /var/data/jirafeau
Quindi apri il tuo browser web e vai a https://tuo_dominio/install.php. Ti verrà prima chiesto di scegliere una password per l'interfaccia di amministrazione. Immettere una password sicura e procedere al passaggio successivo. Per l'indirizzo di base, inserisci https://tuo_dominio/ e /var/data/jirafeau/ per la directory dei dati. Continua con il passaggio successivo, durante il quale il programma di installazione creerà un file di configurazione di base per Jirafeau.
Configurazione di Jirafeau
Lo script di installazione integrato configura solo l'essenziale. Per una configurazione più completa, apri il file corrispondente:
$EDITOR /var/www/html/jirafeau/lib/config.local.php
Sostituisci il nome dell'organizzazione predefinito e imposta la persona di contatto e le chiavi del titolo. I valori dell'organizzazione e della persona di contatto verranno visualizzati nei tuoi termini di servizio (https://tuo_dominio/tos.php).
'organisation' => 'Your Organisation/Company', 'contactperson' => 'Your Name <[email protected]>', 'title' => 'Title of your choice',
Per impostazione predefinita, l'accesso alla funzione di caricamento è illimitato. È possibile impostare una o più password per limitare questo accesso. Usa la sintassi mostrata:
'upload_password' => array ( 'password1', 'password2', ),
Quando si carica un file, nel modulo di caricamento sono disponibili diversi limiti di tempo. Jirafeau per impostazione predefinita consente limiti di tempo fino a un mese, dopodiché i file caricati vengono eliminati. Per modificare i periodi disponibili, modificare l'array delle disponibilità. Ad esempio, per consentire tutti i periodi di scadenza, utilizzare quanto segue:
array ( 'minute' => true, 'hour' => true, 'day' => true, 'week' => true, 'month' => true, 'quarter' => true, 'year' => true, 'none' => true, ),
Una volta che sei soddisfatto della tua configurazione, non è richiesta alcuna azione per applicare le modifiche.
Il tuo sito Web di file hosting è ora pronto per l'uso. È possibile accedere all'interfaccia di amministrazione su https://tuo_dominio/admin.php