Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mise à jour de la documentation, configuration de référence pour nginx #1209

Open
Sekiltoyai opened this issue Sep 29, 2024 · 1 comment

Comments

@Sekiltoyai
Copy link

Sekiltoyai commented Sep 29, 2024

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 :

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?

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
@mrflos
Copy link
Contributor

mrflos commented Sep 29, 2024

Il y a une config nginx disponible dans la partie docker du code https://github.com/YesWiki/yeswiki/blob/doryphore-dev/docker/nginx.conf qui arrive a gérer la présence ou non de ? sans faire de tests sur tous les dossiers a la racine de YesWiki, je laisse l'issue ouverte afin d'y faire référence dans la doc a l'occasion.
Merci du retour

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants