yeswiki
yeswiki copied to clipboard
Mise à jour de la documentation, configuration de référence pour nginx
Description
La documentation ne fournit pas de configuration détaillée pour nginx. Afin de faciliter l'adoption de Yeswiki, je pense qu'il serait utile de mettre à jour la documentation avec des configurations de référence.
Après des tests basiques, j'ai élaboré des configurations pour les cas suivants :
- Base URL de la forme 'https://www.example.net/test-yeswiki/?'
- Base URL de la forme 'https://www.example.net/test-yeswiki/'
Dans la mesure où je suis actuellement en phase de test, yeswiki n'est pas installé à la racine du domaine. Si mes tests sont concluants, je déploierai à la racine du domaine et je serai en mesure de fournir les configurations pour ces cas là.
Base URL de la forme 'https://www.example.net/test-yeswiki/?'
location /test-yeswiki/ {
alias /var/www/yeswiki/;
try_files $uri $uri/ index.php;
location ~* /(.*/)?private/ {
deny all;
return 403;
}
location ~ ^(.+\.php)(.*)$ {
fastcgi_split_path_info ^(.+\.php)(.+)$;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
}
Base URL de la forme 'https://www.example.net/test-yeswiki/'
location /test-yeswiki/ {
alias /var/www/yeswiki/;
try_files $uri $uri/ index.php;
location ~* /(.*/)?private/ {
deny all;
return 403;
}
location ~ ^/test-yeswiki/(?!(actions/|cache/|custom/|docs/|files/|formatters/|handlers/|javascripts/|styles/|themes/|tools/|vendor/|index.php)) {
rewrite ^/(.*) /test-yeswiki/index.php?$1;
}
location ~ ^(.+\.php)(.*)$ {
fastcgi_split_path_info ^(.+\.php)(.+)$;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
}
Note : Pour cette seconde configuration, on utilise une règle de réécriture :
- si on matche dans l'URL les dossiers actions, cache, custom, docs, files, formatters, handlers, javascripts, styles, themes, tools, vendor ou le fichier index.php, on conserve l'URL telle quelle
- si on ne matche pas ces mots clés, on réécrit l'URL vers index.php?<URL>
En d'autres termes, dans cette configuration, il n'est pas possible de créer une page s'appelant "vendor" ou "actions" par exemple. Ne connaissant pas suffisamment yeswiki, j'ai mis tous les dossiers qui semblaient être susceptibles de recevoir des requêtes HTTP. Si on me donne une liste plus précise, je peux mettre à jour la configuration.
Afin de vérifier que la configuration était fonctionnelle, j'ai réalisé les tests suivants :
- Navigation dans le site
- Modification de page
Additionnal informations / Informations complémentaires
- yeswiki version 4.4.4