Jump to content

Configuration PS1.6 + Nginx


Recommended Posts

Hello,

 

Je m'arrache les cheveux depuis cet aprem pour configurer correctement PS 1.6 multishop avec Nginx.

 

J'active d'abord l'url rewriting, ca ne l'est pas par défaut.

 

J'ai d'abord repris l'exemple dispo sur la doc:

 

http://doc.prestashop.com/display/PS15/System+Administrator+Guide#SystemAdministratorGuide-NginxfriendlyURLs

 

Tout fonctionne bien sauf pour les images qui ne s'affichent pas.

 

J'ai vu dans le .htaccess une directive qu'il n'y a pas dans la doc;

rewrite ^/images_ie/?([^/]+)\.(jpe?g|png|gif)$ /js/jquery/plugins/fancybox/images/$1.$2 last;
Mais ça ne marche pas mieux :(
 
Pour le multiboutique c'est pire, il n'y a que le texte qui s'affiche, les CSS/images/etc ne chargent pas.
 
Merci d'avance!
Edited by Elitius (see edit history)
Link to comment
Share on other sites

Nouvel essai avec la 1.6.0.4 qui m'a pondu un .htaccess plus propre.

 

Voila ce que j'ai pu traduire:

    location / {
      rewrite ^/([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/$1/$1$2$3.jpg break;
      rewrite ^/([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/$1/$2/$1$2$3$4.jpg break;
      rewrite ^/([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/$1/$2/$3/$1$2$3$4$5.jpg break;
      rewrite ^/([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/$1/$2/$3/$4/$1$2$3$4$5$6.jpg break;
      rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg break;
      rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg break;
      rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg break;
      rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg break;

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

    location /api {
      rewrite ^/api/?(.*)$ /webservice/dispatcher.php?url=$1 break;
    }

    location /c {
       rewrite ^/c/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ /img/$1$2$3.jpg break;
       rewrite ^/c/([a-zA-Z_-]+)(-[0-9]+)?/.+\.jpg$ /img/$1$2.jpg break;
    }

    location /images_ie {
       rewrite ^/images_ie/?([^/]+)\.(jpe?g|png|gif)$ /js/jquery/plugins/fancybox/images/$1.$2 break;
    }

En théorie ça devrait fonctionner vu que ça marche sous Apache, mais ça coince au niveau de ça:

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

Qui pourtant me semble correct.

Edited by Elitius (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

J'ai tenté avec une 1.5 et j'ai exactement le même souci. Je penche donc pour un souci au niveau de Nginx, j'utilise la version 1.4.7.

 

L'URL rewriting fonctionne donc je pense que le souci est ailleurs.

Link to comment
Share on other sites

Bonjour

 

Ce post a été déplacé car il devait se trouver dans la section rapport de bugs je suppose. Or ce n'est porbablement qu'un problème de config de vhost.

 

Un collègue vient de me passer sa conf 1.5/1.6

server {
listen 80;

ssl off;

server_name mysite.fr;
root /home/mysite/www/public_html/prestashop/;
index index.html index.htm index.php;

access_log /var/log/nginx/mysite.fr.access.log;
error_log /var/log/nginx/mysite.fr.error.log;

location /install-dev/ {
try_files $uri $uri/ /index.php;
}

location /admin-dev/ {
try_files $uri $uri/ /index.php;
}

location / {
index /index.php;

rewrite ^/install-dev$ http://mysite.fr/install-dev/index.php last;

rewrite ^/api/?(.*)$ /webservice/dispatcher.php?url=$1 last;

rewrite ^/([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$1$2.jpg last;
rewrite ^/([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$1$2$3.jpg last;
rewrite ^/([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$1$2$3$4.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$4/$1$2$3$4$5.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9.jpg last;
rewrite ^/c/([0-9]+)(-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*.jpg$ /img/c/$1$2.jpg last;
rewrite ^/c/([a-zA-Z-]+)/[a-zA-Z0-9-]+.jpg$ /img/c/$1.jpg last;
rewrite ^/([0-9]+)(-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*.jpg$ /img/c/$1$2.jpg last;

add_header         Access-Control-Allow-Headers   Content-Type;
add_header         Access-Control-Max-Age         86400;

try_files $uri $uri/ /index.php?$args;
}

location ~ \.php(.*)$ {
try_files $uri =404;

fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;

fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm/mysock.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

}


Cordialement

Link to comment
Share on other sites

Testé sur une install avec Nginx 1.2.1 (fourni avec Debian 7) et la config donnée fonctionne parfaitement.

 

Du coup le souci vient bien de Nginx 1.4.7 mais je suis incapable de trouver la solution a ce problème..

Link to comment
Share on other sites

  • 4 months later...

Nouvel essai avec la 1.6.0.4 qui m'a pondu un .htaccess plus propre.

 

Voila ce que j'ai pu traduire:

    location / {
      rewrite ^/([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/$1/$1$2$3.jpg break;
      rewrite ^/([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/$1/$2/$1$2$3$4.jpg break;
      rewrite ^/([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/$1/$2/$3/$1$2$3$4$5.jpg break;
      rewrite ^/([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/$1/$2/$3/$4/$1$2$3$4$5$6.jpg break;
      rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg break;
      rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg break;
      rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg break;
      rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg break;

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

    location /api {
      rewrite ^/api/?(.*)$ /webservice/dispatcher.php?url=$1 break;
    }

    location /c {
       rewrite ^/c/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ /img/$1$2$3.jpg break;
       rewrite ^/c/([a-zA-Z_-]+)(-[0-9]+)?/.+\.jpg$ /img/$1$2.jpg break;
    }

    location /images_ie {
       rewrite ^/images_ie/?([^/]+)\.(jpe?g|png|gif)$ /js/jquery/plugins/fancybox/images/$1.$2 break;
    }

En théorie ça devrait fonctionner vu que ça marche sous Apache, mais ça coince au niveau de ça:

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

Qui pourtant me semble correct.

 

Il manque le ' ! ' devant -e et remplacer break par last :

 

if (!-e $request_filename){

rewrite ^(.*)$ /index.php last;

}

 

cordialement

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...