📦 h5ai
Tout d'abord il va nous falloir récupérer h5ai.
cd /var/www/votre_repertoire
wget https://release.larsjung.de/h5ai/h5ai-0.29.2.zip && unzip h5ai-0.29.2.zip
rm h5ai-0.29.2.zip
Ici le but étant d'avoir cette structure la pour lister l'ensemble de votre_dossier
/var/www/votre_dossier/
├─ _h5ai
├─ vos fichiers
└─ et vos dossier
Il va falloir configurer un minimum h5ai pour cela direction le fichier de config de h5ai : /votre_dossier/_h5ai/private/conf/options.json
.
Commencez par définir un mot de passe, celui-ci vous servira à voir les informations concernant votre h5ai depuis une page web dédié (voir en fin de tutoriel).
/* h5ai v0.29.2 - https://larsjung.de/h5ai/ */
{
/*
Password hash.
SHA512 hash of the info page password, the preset password is the empty string.
Online hash generator: http://md5hashing.net/hashing/sha512
*/
"passhash": "Votre_hash",
Vous pouvez aussi activer/désactiver le téléchargement en groupe, direction la ligne 117.
/*
Enable packaged download of selected entries.
To select files the "select"-extension needs to be enabled.
- type: string, "php-tar", "shell-tar" or "shell-zip"
- packageName: string, basename of the download package, null for current filename or foldername
- alwaysVisible: boolean, always show download button (defaults to download the current folder)
*/
"download": {
"enabled": true,
"type": "php-tar",
"packageName": null,
"alwaysVisible": false
},
h5ai permet aussi la génération de Qr code ligne 176, à activer ou pas.
/*
Enable a generic info side bar.
- show: boolean, initial visible to first time users
- qrcode: boolean, show a QR-Code
- qrColor: string, QR-Code fill color
*/
"info": {
"enabled": true,
"show": false,
"qrcode": true,
"qrFill": "#999",
"qrBack": "#fff"
},
📝 Nginx
Maintenant passons à la configuration de nginx, munissez-vous donc de votre éditeur de texte préféré (pour ma part il s'agit de vim) et créons le fichier votre_fichier.conf
.
vim /etc/nginx/conf.d/votre_fichier.conf
/etc/nginx/conf.d/
, sinon cela se passe dans /etc/nginx/site_avaible/
sans oublier par la suite de le passer dans /etc/nginx/site-enable/
.
# Configuration du HTTPS
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name your.domaine.tld;
root /var/www/your_repertory/;
index /_h5ai/public/index.php;
# Emplacements des logs
access_log /var/log/nginx/make_name-access.log;
error_log /var/log/nginx/make_name-error.log;
# Emplacement du certificat si on utilise Letsencrypt
ssl_certificate /etc/letsencrypt/live/..../fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/..../privkey.pem;
ssl_session_timeout 10m;
ssl_prefer_server_ciphers on;
ssl_stapling on;
ssl_stapling_verify on;
ssl_protocols TLSv1.1 TLSv1.2;
ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
add_header Strict-Transport-Security "max-age=31557600; includeSubDomains";
location ~ \.(jpg|jpeg|gif|png|css|js|ico|svg|eot|ttf|woff|woff2|otf)$ {
access_log off;
expires 30d;
}
# Configuartion pour PHP
location ~ \.php$ {
try_files $uri =404;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
location ^~ /var/www/your_repertory/_h5ai/private {
deny all;
return 403;
}
}
# Redirection HTTP vers HTTPS
server {
listen 80;
listen [::]:80;
server_name domaine.tld;
return 301 https://your.domaine.tld$request_uri;
}
On teste la configuration pour éviter de se manger une erreur au reboot de nginx (et de péter éventuellement tout les autres servives/sites) avec nginx -t
, qui devrait vous retourner :
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Et donc on relancer nginx
systemctl restart nginx
Pour voir si tout fonctionne correctement, direction la page index.php de h5ai : http://your.domain.tld/_h5ai/public/index.php
, et logguez-vous, normalement si tout est bon il y aura du vert partout 🎉 🎉