Giter Site home page Giter Site logo

Comments (13)

maniackcrudelis avatar maniackcrudelis commented on September 26, 2024

Salut,
Brièvement, je serais d'avantage dispo la semaine prochaine.
Yunohost exploite nginx, et my_webapp également.
Les fichiers htaccess sont des fichiers pour apache, nginx ne les interprète pas.
Tu dois réécrire ces règles pour nginx.
C'est pas simple...
Tu peux voir du côté de mon app WordPress pour ynh où le cas s'est présenté.
Bon courage.

from multi_webapp_ynh.

nibreh avatar nibreh commented on September 26, 2024

Ha d'accord ! J'étais persuadé d'avoir testé my_webapp il y a quelque temps avec deux ou trois CMS qui fonctionnent avec .htaccess, d'où ma surprise. Mais ma mémoire doit être défaillante. Merci du renseignement. Je vais voir si je me débrouille à bidouiller ça tout en apprenant à utiliser / configurer nginx.

from multi_webapp_ynh.

nibreh avatar nibreh commented on September 26, 2024

Ok, alors dis moi si je me trompe, surtout si je fais une bêtise ;) J'apprends un peu tout seul à bidouiller.

Il faut modifier le fichier /etc/nginx/conf.d/sous.domain.com.d/root_webapp.conf généré par l'installation de my_webapp_ynh. Et on peut s'aider de http://winginx.com/en/htaccess pour convertir un fichier htaccess pour nginx.

Par exemple, pour installer Sassolino, une fois celui-ci dézippé dans /var/www/webapp_user

Dans root_webapp.conf, j'ai viré
if ($scheme = http) { rewrite ^ https://$server_name$request_uri? permanent; }
que j'ai remplacé par
if (!-e $request_filename){ rewrite ^(.*)$ /index.php?dir=$1; }

On redémarre nginx.

Et là du coup, ça fonctionne pour Sassolino !

from multi_webapp_ynh.

maniackcrudelis avatar maniackcrudelis commented on September 26, 2024

Salut,

les convertisseurs de htaccess ne sont pas toujours très fiable... Mais si à fonctionné pour ce cas, tant mieux.
Effectivement il faut modifier le fichier de conf nginx associé au "virtual host". Par contre, la ligne que tu as viré permet de forcer https et est compatible en général avec d'autre règles de réécriture.

from multi_webapp_ynh.

nibreh avatar nibreh commented on September 26, 2024

Autant pour moi, j'ai remis la ligne pour https !

Oui, après quelques tests, le convertisseur ne marche pas à tout les coups (pour void par exemple). Un simple copier coller serait trop beau ;)

Merci pour le retour !

Tchuss

from multi_webapp_ynh.

maniackcrudelis avatar maniackcrudelis commented on September 26, 2024

Tu dois toutefois pouvoir trouver des infos dans la dox de nginx.
http://nginx.org/en/docs/dirindex.html

Mais personnellement je me suis arraché les cheveux là dessus, ce serait plus simple si nginx pouvait interpréter les fichiers htaccess...

from multi_webapp_ynh.

nibreh avatar nibreh commented on September 26, 2024

Salut

Je reviens vers toi, car je voudrais installer Yellow (cms auquel je participe un peu), mais je sèche complètement concernant la configuration de Nginx.

Il y a bien un exemple ici (https://github.com/datenstrom/yellow/wiki/Web-server-configuration) mais je ne sais pas comment adapter ça à YunoHost.

J'ai publié un billet sur le forum de YunoHost
https://forum.yunohost.org/t/configuration-nginx-htaccess-pour-yellowcms/702

Si jamais, à tes heures perdues, tu voudrais bien y jeter un oeil.

Au plaisir

from multi_webapp_ynh.

maniackcrudelis avatar maniackcrudelis commented on September 26, 2024

Salut,

désolé j'avais pas vu ton message. Ma connexion internet est morte depuis quelques jours, donc je ne reçois plus de mail...

Déjà, le fichier htaccess tu peux le mettre de côté, il ne sera pas utilisé par nginx, et son contenu a été transféré dans la proposition de config pour nginx.

Ensuite, il faut merger le contenu de la config nginx proposée par sur le dépôt de Yellow avec la config Yunohost par défaut. Et essayer...

Le mot clé "server {" doit être supprimé, on travaille en virtual host donc il est inutile.
"listen", "server_name", "root" et "charset" pareil.

A partir du fichier de config de la web_app:
L'index yellow.php doit être ajouté à la suite des index dans la config nginx.
L' "error_page" devrait pouvoir être placé après la ligne d'index.
Les 4 locations qui suivent (sauf le dernier donc) sont, je pense, à placer en l'état juste avant "# Include SSOWAT user panel."

Le dernier location doit être mergé avec celui de la config de base.
Le mot-clé "fastcgi_pass" m'inquiète un peu tout de même, si c'est un reverse proxy, pas sûr que ça passe.

Ça devrait donner ça:

location /home {
       alias /var/www/webapp_nibreh/home/;
       if ($scheme = http) {
              rewrite ^ https://$server_name$request_uri? permanent;
       }
       index yellow.php index.php index.html index.htm;
       error_page 404 /error.html;
       default_type text/html;
       location ~ [^/]\.php(/|$) {
           fastcgi_split_path_info ^(.+?\.php)(/.*)$;
           fastcgi_pass unix:/var/run/php5-fpm.sock;
           fastcgi_pass 127.0.0.1:9000;
           fastcgi_index yellow.php;
           include fastcgi_params;
           fastcgi_param  REMOTE_USER $remote_user;
           fastcgi_param  PATH_INFO $fastcgi_path_info;
       fastcgi_param SCRIPT_FILENAME $request_filename;
       }
       location /cache {
           rewrite ^(.*)$ /error break;
       }

       location /content {
           rewrite ^(.*)$ /error break;
       }

       location /system {
           rewrite ^(.*)$ /error break;
       }

       location / {
           if (!-e $request_filename) {
               rewrite ^/(.*)$ /yellow.php last;
           break;
           }
       }
  # Include SSOWAT user panel.
  include conf.d/yunohost_panel.conf.inc;
}

"fastcgi_pass 127.0.0.1:9000;" est potentiellement un problème je pense, il faudrait essayer sans le cas échéant.

from multi_webapp_ynh.

nibreh avatar nibreh commented on September 26, 2024

Hello

Pas de problème si tu réponds en retard, t'inquiètes ;)

De mon côté, j'étais occupé courant juillet, mais j'ai finis par prendre le temps pour tester. Alors ta configuration n'as pas marché. Mais j'ai fini par obtenir un résultat positif. Voici comment:

J'ai créé un sous-domaine puis j'ai installé my_webapp à la racine.

Puis dans le fichier de conf nginx, j'ai mis ça:

error_page 404 /error.html;
location /cache {
    rewrite ^(.*)$ /error break;
}
location /content {
    rewrite ^(.*)$ /error break;
}
location /system {
    rewrite ^(.*)$ /error break;
}

location / {
   alias /var/www/webapp_name/;
   if ($scheme = http) {
          rewrite ^ https://$server_name$request_uri? permanent;
   }
   index yellow.php index.php index.html index.htm;
   default_type text/html;
   location ~ [^/]\.php(/|$) {
       fastcgi_split_path_info ^(.+?\.php)(/.*)$;
       fastcgi_pass unix:/var/run/php5-fpm.sock;
       fastcgi_index yellow.php;
       include fastcgi_params;
       fastcgi_param  REMOTE_USER $remote_user;
       fastcgi_param  PATH_INFO $fastcgi_path_info;
        fastcgi_param SCRIPT_FILENAME $request_filename;
   }

    if (!-e $request_filename) {
        rewrite ^/(.*)$ /yellow.php last;
        break;
    }

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

Enfin, j'avais une erreur de redirection / 403 pour éditer les pages en ligne, mais ça concerne le fichier de configuration de Yellow. (webinterfaceServerScheme = https et non http)

Tchuss

from multi_webapp_ynh.

nibreh avatar nibreh commented on September 26, 2024

Au final, dans domaine.com/home plutôt qu'à la racine d'un sous-domaine, voilà ce que j'ai fait:

error_page 404 /home/error.html;

location /home/cache {
    rewrite ^/home/(.*)$ /home/error break;
}
location /home/content {
    rewrite ^/home/(.*)$ /home/error break;
}
location /home/system {
    rewrite ^/home/(.*)$ /home/error break;
}

      location /home {
       alias /var/www/webapp_name/home/;
       if ($scheme = http) {
              rewrite ^ https://$server_name$request_uri? permanent;
       }
       index yellow.php index.php index.html index.htm;
       default_type text/html;
       location ~ [^/]\.php(/|$) {
           fastcgi_split_path_info ^(.+?\.php)(/.*)$;
           fastcgi_pass unix:/var/run/php5-fpm.sock;
           fastcgi_index yellow.php;
           include fastcgi_params;
           fastcgi_param  REMOTE_USER $remote_user;
           fastcgi_param  PATH_INFO $fastcgi_path_info;
            fastcgi_param SCRIPT_FILENAME $request_filename;
       }

    if (!-e $request_filename) {
        rewrite ^/home/(.*)$ /home/yellow.php last;
        break;
    }

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

from multi_webapp_ynh.

maniackcrudelis avatar maniackcrudelis commented on September 26, 2024

Salut,

je suis toujours peu réactif, car ma connexion n'est toujours pas rétablie... ;(

J'espère que le "rewrite ^/home/" ne fais pas ignorer "location /home {". Enfin, je ne suis vraiment pas expert sur nginx.

En tout cas, si le coeur t'en dit, n'hésite pas à packager l'application pour Yunohost, ainsi d'autres pourront profiter du travail que tu viens d'accomplir.

from multi_webapp_ynh.

nibreh avatar nibreh commented on September 26, 2024

yo

A priori pas de problème avec rewrite ^/home/ et location /home {

Peut-être est-ce parce que je redirige la racine du domaine vers /home ?

Je vais voir pour packager l'application, faut que je regarde comment ça se passe

from multi_webapp_ynh.

maniackcrudelis avatar maniackcrudelis commented on September 26, 2024

Si tu as besoin d'aide pour packager, n'hésite pas à me demander.
D'autant que ma connexion est rétablie depuis quelques heures.

from multi_webapp_ynh.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.