Custom Web App: problème de navigation dans un site sous Symfony

Mon serveur YunoHost

Matériel: Serveur dédié
Version de YunoHost: 4.1.6
J’ai accès à mon serveur : En SSH | Par la webadmin | En direct avec un clavier/écran | …
Êtes-vous dans un contexte particulier ou avez-vous effectué des modificiations particulières sur votre instance ? : oui
Si oui, expliquer: Installation de composer et de la cli symfony pour utiliser les commandes dédiées du framework.

Description du problème

Bonjour à toutes et tous et meilleurs voeux pour cette année 2021.

A partir de Custom Web App j’ai installé un site Symfony5.
j’ai parfaitement accès à ma page d’accueil à partir de “https://MonDomaine/MonSite/
Mais je ne peux naviguer sur mon site car tous les boutons d’actions me ramène sur la page de yunohost (https://MonDomaine/yunohost/sso/)

Voici la configuration nginx
Les logs Symfony et nginx ne font rien apparaitre de particulier.

rewrite ^/MonSite$ /MonSite/ permanent;

location /MonSite {

	# Path to source
	alias /var/www/webapp_userName/MonDomaine_MonSite/public/;

	# Force usage of https
	if ($scheme = http) {
		rewrite ^ https://$server_name$request_uri? permanent;
	}

	index index.php;

	try_files $uri $uri/ index.php;

	location ~ [^/]\.php(/|$) {
		fastcgi_split_path_info ^(.+?\.php)(/.*)$;
		fastcgi_pass unix:/var/run/php/php7.3-fpm-webapp_MonDomaine_MonSite.sock;
		fastcgi_index index.php;
		include fastcgi_params;
		#fastcgi_param REMOTE_USER 	$remote_user;
		fastcgi_param PATH_INFO 	$fastcgi_path_info;		
		fastcgi_param SCRIPT_FILENAME 	$request_filename;
		internal;
	}

	# Include SSOWAT user panel.
	include conf.d/yunohost_panel.conf.inc;
}

Cela fait maintenant quelques semaines que je sèche :sob:
Merci d’avance pour votre aide

Lionel

À mon avis il faudrait regarder les règles ssowat (dans /etc/ssowat/conf.json et conf.json.persistent) pour voir les règles qui concernent /MonSite

Si ça n’est pas évident avec ces règles, activer le logging en mettant "logging": "debug" dans conf.json.persistent, relancer nginx, et regarder ce que ça raconte dans /var/log/nginx/ssowat.log lorsque tu tentes d’accéder à la page

Merci à toi pour cette réponse encore super rapide !
Je vais regarder cela ce soir.

Il faudra également me dire comment aider le projet dans la mesure de mes petits moyens (relecture ou mise en forme de docs, traductions, …)

Lionel

Déjà ne serait-ce que documenter comment installer une app composer serait cool :wink: Ou si tu veux aller plus loin par ex. faire une app “composer template” comme pour django par ex.

Bonjour Aleks
J’ai mis plus de temps qu’annoncé pour répondre car je souhaites être le plus clair possible, mais j’avoue qu’avec tout ce que j’ai essayé depuis des semaines, mon petit cerveau s’embrume un peu.

Alors le etc/ssowat/conf.json me donne ce que j’ai configuré lors de l’installation par le panneau administrateur de Yunohost (site public et attribution de l’autorisation pour les utilisateurs de mon serveur), c’est à dire ceci :

etc/ssowat/conf.json

“multi_webapp__3.main”: {
“auth_header”: true,
“label”: “MonSite”,
“public”: true,
“show_tile”: true,
“uris”: [
gwf.ynh.fr/MonSite
],
“users”: [
“User1”,
“User2”,
“User3”,
“User4”,
“User5”
]
},

Le fichier etc/ssowat/conf.json.persistent lui ne contient que le nom de domaine

etc/ssowat/conf.json.persistent
{
“domains”: [
“MonDomaine”
]
}

Je n’avais pas différencié les logs Nginx des logs de MonSite c’est donc pour cela que je n’y voyait pas trés clair (je sais, c’est idiot, mais je ne suis pas un expert et loin de là en adminsys…).
J’ai rajouté la création de ces logs dans la configuration Nginx de MonSite et du coup j’ai cette erreur qui est pour moi du chinois :

2021/01/24 10:34:17 [error] 2227#2227: *14577 lua entry thread aborted: runtime error: /usr/share/ssowat/access.lua:23: attempt to call field 'refresh_config' (a nil value)
stack traceback:
coroutine 0:
	/usr/share/ssowat/access.lua: in function </usr/share/ssowat/access.lua:1>, client: fe80::7254:d2ff:fe44:b770, server: gwf.ynh.fr, request: "GET /MonSite/ HTTP/2.0", host: "MonDomaine", referrer: "https://MonDomaine/yunohost/sso/"

En ajoutant comme tu me l’as précisé le debbug dans le fichier etc/ssowat/conf.json.persistent j’obtient une erreur d’autorisation pour lire le fichier index.php et une redirection vers le portail Yunohost

[DEBUG Sun Jan 24 11:20:28 2021] A visitor tries to access /MonSite/favicon.ico (corresponding perm: multi_webapp__3.main)
[DEBUG Sun Jan 24 11:20:28 2021] Allowing to pass through /MonSite/favicon.ico
[DEBUG Sun Jan 24 11:20:32 2021] A visitor tries to access /MonSite/Page1 (corresponding perm: multi_webapp__3.main)
[DEBUG Sun Jan 24 11:20:32 2021] Allowing to pass through /MonSite/Page1
[DEBUG Sun Jan 24 11:20:32 2021] No permission matching request for index.php
[DEBUG Sun Jan 24 11:20:32 2021] Redirecting to https://MonDomaine/yunohost/sso/?r=aHR0cH

C’est la même erreur si j’essaie par le portail Yunohost en me connectant avec un utilisateur déclaré :

[DEBUG Sun Jan 24 10:39:10 2021] User1 tries to access /MonSite/ (corresponding perm: multi_webapp__3.main)
[DEBUG Sun Jan 24 10:39:10 2021] Allowing to pass through /MonSite/
[DEBUG Sun Jan 24 10:39:10 2021] User1 tries to access /MonSite/index.php (corresponding perm: multi_webapp__3.main)
[DEBUG Sun Jan 24 10:39:10 2021] Allowing to pass through /MonSite/index.php
[DEBUG Sun Jan 24 10:39:13 2021] User1 tries to access /MonSite/Page1(corresponding perm: multi_webapp__3.main)
[DEBUG Sun Jan 24 10:39:13 2021] Allowing to pass through /MonSite/Page1
[DEBUG Sun Jan 24 10:39:13 2021] No permission matching request for index.php
[DEBUG Sun Jan 24 10:39:13 2021] Redirecting to https://MonDomaine/yunohost/sso/
[DEBUG Sun Jan 24 10:39:14 2021] Serving portal uri /yunohost/sso/ 

Les permissions sur le fichier index.php sont positionnées à 644. Ce que je ne comprend pas c’est que pour afficher la page d’accueil de MonSite, le visiteur et le User1 ont du y accéder !

Merci d’avance pour ton éclairage et bon dimanche,

Lionel

Alors:

  • pas sur de comprendre pourquoi tu as un bidule “domain” dans /etc/ssowat/conf.json.peristent mais bon ça n’a pas l’air de poser de probleme en vrai
  • a mon avis ce qu’on voit dans tes logs c’est que le navigateur fait à un moment une requete de index.php (et non /MonSite/index.php) … faudrait confirmer avec le mode debug de ton navigateur web (F12 sous Firefox, puis onglet Reseau, puis F5 pour recharger la page en entier et voir ce qui se passe)
  • pour que ça aille plus vite de debug les choses, le plus simple serait de venir demander de l’air sur le salon de packaging d’app, c.f. YunoHost • index

Bonjour,

Pour t’aider, tu peux t’inspirer d’applications basées Symfony et qui sont déjà packagées pour yunohost comme :

J’ai l’impression que ta configuration NGINX n’est pas bonne. regarde dans le dossier conf des projets mentionnés au dessus, ça devrait t’aiguiller.

Bon courage,
Simon

1 Like

Bonjour,
Je suis effectivement à peu près sur que le problème se situe dans la config Nginx mais je découvre. Je n’avance pas vite mais c’est super intéressant !
Merci à vous deux pour ces pistes, je vais les explorer ce weekend.
Bonne semaine et merci encore

Lionel

Bonjour,
@Aleks :
En débuggant dans le navigateur, j’ai une redirection temporaire de MonSite/MaPAge
vers /yunohost/sso. C’est pareil quelle que soit la page appellée.

Pour que cela fonctionne ne devrais-je pas avoir /MonSite/MaPage en lieu et place de MaPage dans la colonne ‘File’ ?

@enuts
je suis en cours d’étude des fichiers de ‘conf’ des applications que tu as cité, mais là il faut que j’approfondisse car mon petit niveau ne me permet pas de les comprendre tout de suite de part l’utilisation des variables qui sont faites…

Je ne suis pas encore sorti le cul des ronces, comme on dit mais je ne perd pas espoir :sweat_smile:

Bonne semaine à vous,

Lionel

Bonjour Lionel,

Dans la conf NGINX des applis nommées, il faut remplacer ces variables :

  • __PATH__ : le chemin (dans l’url) vers ton app, ici /MonSite
  • __FINALPATH__ : l’emplacement des fichiers sur le serveur ici /var/www/webapp_userName/MonDomaine_MonSite
  • __NAME__ : l’id de l’app pour yunohost ici webapp ou peut-être webapp_MonDomaine_MonSite
  • __PHPVERSION__ : la version de PHP utilisé, ici php7.3

Bon courage,
Simon

Bonjour,
Merci pour ces éléments, je vais continuer à creuser.

Bon weekend

Lionel

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.