Magento sur Nginx – Configuration

Je travaille sur un nginx.conf pour exécuter Magento, le site fonctionne principalement, magento est exécuté en utilisant php-fpm .

Mais certaines parties ne fonctionnent toujours pas et j’ai essayé tous les wiki, blogs, etc. sur le Web.

Mon problème est que chaque fois que j’ai une fenêtre pop-up Javascript sur les pages et les blocs du CMS, principalement l’éditeur WYSIWYG de tiny_mce (/js/tiny_mce/plugins/advimage/image.htm, etc.), ils ouvrent une page not found .

Je ne sais pas ce que je dois faire pour que cet éditeur s’affiche correctement.

En outre, le téléchargeur ne s’affiche pas.

Il semble que chacun utilise son propre index.php dans un dossier différent de celui de root, alors devrais-je changer d’index pour cela?

comme $document_root/downloader/index.php ?

Je vous suggère fortement de lire et de suivre le prolog de nginx de Martin Fjordvald .

J’utilise la configuration suivante pour Magento. Cela fonctionne non seulement très bien, mais il désactive également access_log pour les images, etc. et a une configuration php-fpm spéciale. Veuillez noter que la racine du serveur est spécifiée dans le bloc du serveur. Plusieurs fichiers de configuration le spécifient incorrectement dans un bloc d’emplacement.

Fichier de configuration Magento nginx: (Veillez à remplacer tous les chemins et noms de domaine en conséquence)

 server { listen 80; #listen 443 default ssl; server_name DOMAIN.COM; #rewrite requests to www rewrite ^ $scheme://www.DOMAIN.COM$request_uri permanent; } server { listen 80; #listen 443 default ssl; #ssl_certificatee /path/to/ssl.crt; #ssl_certificatee_key /path/to/ssl.key; server_name www.DOMAIN.COM; # most likely /var/www/... root /path/to/files; include /etc/nginx/ressortingctions.conf; location / { index index.php; if ($request_uri ~* "\.(ico|css|js|gif|jpe?g|png)$") { access_log off; expires max; } try_files $uri $uri/ @handler; } # protect directories location /app/ { deny all; } location /includes/ { deny all; } location /lib/ { deny all; } location /lib/minify/ { allow all; } location /media/downloadable/ { deny all; } location /pkginfo/ { deny all; } location /report/config.xml { deny all; } location /var/ { deny all; } location /var/export/ { # ressortingct access to admins auth_basic "Ressortingcted"; auth_basic_user_file htpasswd; autoindex on; } location @handler { rewrite ^(.*) /index.php?$1 last; } # include php specific configuration include /etc/nginx/php.conf; } 

Ceci est un fichier de configuration spécifique à php-fpm qui intercepte les codes d’erreur et divise correctement les informations de chemin afin que vous ayez access aux parties correctes de PHP. J’utilise également un socket Unix plutôt qu’un port en raison des améliorations de performances. Notez également que vous n’avez pas besoin de répéter les fastcgi_params déjà spécifiés dans fastcgi_params.

 fastcgi_intercept_errors on; # this will allow Nginx to intercept 4xx/5xx error codes # Nginx will only intercept if there are error page rules defined # -- This is better placed in the http {} block as a default # -- in that virtual host's server block location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; # A handy function that became available in 0.7.31 that breaks down # The path information based on the provided regex expression # This is handy for requests such as file.php/some/paths/here/ include fastcgi_params; fastcgi_index index.php; fastcgi_pass unix:/var/run/phpfpm.sock; } 

Mon fichier de configuration fastcgi_params est optimisé pour un petit serveur (<1 Go de RAM). Veillez à ajuster le vôtre en fonction des performances de votre serveur:

 fastcgi_param QUERY_STRING $query_ssortingng; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; # PHP only, required if PHP was built with --enable-force-cgi-redirect fastcgi_param REDIRECT_STATUS 200; fastcgi_connect_timeout 90; fastcgi_send_timeout 180; fastcgi_read_timeout 360; fastcgi_buffer_size 1024k; fastcgi_buffers 8 512k; fastcgi_busy_buffers_size 1024k; fastcgi_temp_file_write_size 1024k; fastcgi_intercept_errors on; fastcgi_pass_header *; 

Nous avons installé magento sur mydomain.com/store et nous utilisons la prochaine configuration pour nginx:

 server { listen :80; server_name mydomain.com; root /www/mydomain; location ~ /\. { deny all; } location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico)$ { access_log off; expires 30d; } location /store/ { fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root/store/index.php; fastcgi_param SCRIPT_NAME /store/index.php; fastcgi_index index.php; } location /store/static/ { } location /store/skin/ { } location /store/media/ { } location /store/errors/ { } location ~* /store/errors/.*\.xml$ { deny all; } location ~* /store/errors/.*\.phtml$ { deny all; } location ~* /store/errors/.*\.php$ { fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME /store/errors$fastcgi_script_name; fastcgi_index index.php; fastcgi_read_timeout 600; } location /store/js/ { } location ~* /store/js/.*\.php$ { fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root/store/js$fastcgi_script_name; fastcgi_param SCRIPT_NAME /store/js$fastcgi_script_name; fastcgi_index index.php; fastcgi_read_timeout 600; } } 

Vous devez réécrire toutes les règles .htaccess en configuration ngnix pour que cela fonctionne. La peine de lire http://www.nbs-system.co.uk/blog-2/magento-optimization-howto-en.html