[resolu]NGINX 1.22.0 en local et l'url rewriting

novembre 2023 modifié dans Entraide

Bonjour,

Aprés quelques essais infructueux pour adapter : https://wiki.pluxml.org/docs/install/nginx.html

avec la config de base que j'ai en local :

fichier : php_upstream.conf

# if you want to increase the number of PHP processes, put this line (without #) on usr/laragon.ini, under [nginx]
# [nginx]
# Upstream=5
upstream php_upstream {
    server 127.0.0.1:9003 weight=1 max_fails=1 fail_timeout=1;
    server 127.0.0.1:9004 weight=1 max_fails=1 fail_timeout=1;
}

(chaque répertoire du www est traité comme un ndd différent afin de tester plusieurs version sans télescopage)
fichier : auto.plx5810-10-23.gc.conf

server {
    listen 80;
    listen 8443 ssl;
    server_name plx5810-10-23.gc *.plx5810-10-23.gc;
    root "D:/programFile/laragon/www/plx5810-10-23";

    index index.html index.htm index.php;

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
        autoindex on;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass php_upstream;      
        #fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

    # Enable SSL
    ssl_certificate "D:/programFile/laragon/etc/ssl/laragon.crt";
    ssl_certificate_key "D:/programFile/laragon/etc/ssl/laragon.key";
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
    ssl_prefer_server_ciphers on;


    charset utf-8;

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }
    location ~ /\.ht {
        deny all;
    }
}

# This file is auto-generated.
# If you want Laragon to respect your changes, just remove the [auto.] prefix

Mes essais nombreux se sont soldés avec des impossibilités de :

  • se connecter au serveur,
  • une page index avec une dizaine de // en fin d'url,
  • Coté front toute URL affiche la page d'acceuil
  • l'admin inaccessible avec core/admin/ mais okay si core/admin/xxx.php mais sans feuilles de styles ni js ...

Les tutos que j'ai trouvé soit :

  • demandent déjà un minimum de connaissance technique sur le sujet
  • se bornent à fournir des exemples sans plus d'explications ou de contexte précis.

J'ai ni le dico, ni la grammaire pour tester et refaire à ma sauce.

Cdt


Cordialement,
gcyrillus

Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

Mots clés:

Réponses

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Ma config sous Linux/Debian pour le fichier du virtual host affichée avec la commande cat :

    jpierre@berry:~$ cat /etc/nginx/sites-enabled/pluxml82 
    server {
        listen 80;
        listen [::]:80;
    
        # root /var/www/test/PluXml-master;
        root /var/www/test/PluXml-5.8.9;
    
        # Add index.php to the list if you are using PHP
        index index.php index.html index.htm;
    
        server_name berry82.lan;
    
        access_log  /var/log/nginx/test-access.log;
        error_log  /var/log/nginx/test-error.log;
    
        location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            try_files $uri $uri/ @handler;
        }
    
        # Réécriture vers l'index
        location @handler {
            rewrite ^/(.*)$ /index.php?$1 last;
        }
    
        location /download {
            autoindex on;
            autoindex_format html;
    
        }
        # pass PHP scripts to FastCGI server
    
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
        #
        #   # With php-fpm (or other unix sockets):
            fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        #   # With php-cgi (or other tcp sockets):
        #   fastcgi_pass 127.0.0.1:9000;
        }
    
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        location ~ /\.ht {
            deny all;
        }
    }
    

    Comme je n'utilise pas Window$, je dialogue avec le serveur php-fpm via un socket Unix
    La directive location @handler gère la ré-écriture des Urls
    On peut faire tourner plusieurs serveurs php-fpm avec différentes versions de PHP (5.6, 7.4, 8.2).
    Il suffit de créer des configs de virtual hosts selon les versions de PHP en changeant les valeurs server_name et fast_cgi.
    La config de Nginx est celle installée en standard sous Debian. Il suffit juste de créer les config pour chaque virtual host.
    A chaque modif de config, il faut relancer le serveur Nginx.

    Dans la directive index, placer index.php en premier.

  • novembre 2023 modifié

    Merci,

    Alors, j'ai modifier au minimum le fichier auto.plx5810-10-23.gc.conf:
    transformé:

        location / {
            try_files $uri $uri/ /index.php$is_args$args;
            autoindex on;
        }
    

    en

        location / {
            try_files $uri $uri/ @handler;
            autoindex on;
        }
    
    et en ajoutant derrière :
    
        # Réécriture vers l'index
        location @handler {
            rewrite ^/(.*)$ /index.php?$1 last;
        }
    

    Et cela suffit pour fonctionner à première vue parfaitement (de php 7.2 à 8.2.6 que j'ai actuellement de dispo)

    Je ne comprend toujours pas bien comment tout cela fonctionne , mais ces deux portions de codes sont pour le coup, bien clairs.

    Merci

    edit:
    par exemple ce que je ne comprend pas:
    Pour avoir du https , j'ai du transformé le début du script

        listen 80;
        listen 8443 ssl;
    

    en


    listen 80; listen 443 ssl http2; listen 8443 ssl;

    alors que j'ai à priori le serveur configurer sur le port 8443 et en SSL et que c'est Apache qui utilise le 443 lorsqu'il tourne ??

    Bon tant pis, ça marche ;)


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • novembre 2023 modifié

    et bien Voilà, c'est comment nginx est devenu mon ami ... :) desolé htaccess :expressionless:


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

Connectez-vous ou Inscrivez-vous pour répondre.