web-dev-qa-db-fra.com

W3 Total Cache Minify Error Rewrite Error avec Wordpress sur nginx

J'essaie de faire en sorte que W3 Total Cache réécrive les URL en fichiers minifiés. J'ai essayé tous les tutoriels que j'ai pu trouver mais je ne semble pas être capable de le faire correctement. Je continue à avoir une erreur W3 Total Cache en disant ceci:

It appears Minify URL rewriting is not working. If using Apache, verify that the server configuration allows .htaccess. Or if using nginx verify all configuration files are included in the main configuration fail (and that you have reloaded / restarted nginx).

Mes fichiers de configuration pour nginx sont les suivants: nginx.conf dans/etc/nginx/

user nginx;
worker_processes 2;

error_log       /var/log/nginx/error.log;
pid             /var/run/nginx.pid;

events {
        worker_connections 1024;
        multi_accept on;
}

http {
        include mime.types;
        default_type            application/octet-stream;
        access_log              off;
        sendfile                on;
        keepalive_timeout       20;
        client_max_body_size    15m;
        upstream php {
                server unix:/dev/shm/php-fpm-www.sock;
        }
        include /etc/nginx/conf.d/default.conf
}

Ce fichier est lié à /etc/nginx/conf.d/default.conf :

server {
        server_name mydomain.com www.mydomain.com;
        listen 8080;
        root /var/www/;
        index index.php index.html index.htm;

        include /var/www/nginx.conf;
        include /etc/nginx/conf.d/wp.conf;
}

Ce fichier lui-même est lié à /etc/nginx/conf.d/wp.conf qui se présente comme suit:

error_page 404 = @wordpress;
log_not_found off;

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

rewrite /wp-admin$ $scheme://$Host$uri/ permanent;

location @wordpress {
    fastcgi_pass php;
    fastcgi_param SCRIPT_FILENAME $document_root/index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_NAME /index.php;
}

location ~ \.php$ {
    fastcgi_max_temp_file_size 1M;
    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_index  index.php;
    fastcgi_pass php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    try_files $uri @wordpress;
}

/etc/nginx/conf.d/default.conf renvoie également au nginx.conf fichier W3 Total Cache créé dans mon dossier racine Wordpress, qui se présente comme suit:

# BEGIN W3TC Minify cache
location ~ /wp-content/cache/minify.*\.js$ {
    types {}
    default_type application/x-javascript;
    expires modified 604800s;
    add_header X-Powered-By "W3 Total Cache/0.9.2.8";
    add_header Vary "Accept-Encoding";
    add_header Pragma "public";
    add_header Cache-Control "max-age=604800, public";
}
location ~ /wp-content/cache/minify.*\.css$ {
    types {}
    default_type text/css;
    expires modified 604800s;
    add_header X-Powered-By "W3 Total Cache/0.9.2.8";
    add_header Vary "Accept-Encoding";
    add_header Pragma "public";
    add_header Cache-Control "max-age=604800, public";
}
location ~ /wp-content/cache/minify.*js\.gzip$ {
    gzip off;
    types {}
    default_type application/x-javascript;
    expires modified 604800s;
    add_header X-Powered-By "W3 Total Cache/0.9.2.8";
    add_header Vary "Accept-Encoding";
    add_header Pragma "public";
    add_header Cache-Control "max-age=604800, public";
    add_header Content-Encoding gzip;
}
location ~ /wp-content/cache/minify.*css\.gzip$ {
    gzip off;
    types {}
    default_type text/css;
    expires modified 604800s;
    add_header X-Powered-By "W3 Total Cache/0.9.2.8";
    add_header Vary "Accept-Encoding";
    add_header Pragma "public";
    add_header Cache-Control "max-age=604800, public";
    add_header Content-Encoding gzip;
}
# END W3TC Minify cache
# BEGIN W3TC Page Cache cache
location ~ /wp-content/cache/page_enhanced.*html$ {
    expires modified 3600s;
    add_header X-Powered-By "W3 Total Cache/0.9.2.8";
    add_header Vary "Accept-Encoding, Cookie";
    add_header Pragma "public";
    add_header Cache-Control "max-age=3600, public";
}
location ~ /wp-content/cache/page_enhanced.*gzip$ {
    gzip off;
    types {}
    default_type text/html;
    expires modified 3600s;
    add_header X-Powered-By "W3 Total Cache/0.9.2.8";
    add_header Vary "Accept-Encoding, Cookie";
    add_header Pragma "public";
    add_header Cache-Control "max-age=3600, public";
    add_header Content-Encoding gzip;
}
# END W3TC Page Cache cache
# BEGIN W3TC Browser Cache
gzip on;
gzip_types text/css text/x-component application/x-javascript application/javascript text/javascri$
location ~ \.(css|htc|js|js2|js3|js4)$ {
    expires 604800s;
    add_header Pragma "public";
    add_header Cache-Control "max-age=604800, public";
    add_header X-Powered-By "W3 Total Cache/0.9.2.8";
}
location ~ \.(html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml)$ {
    expires 3600s;
    add_header Pragma "public";
    add_header Cache-Control "max-age=3600, public";
    add_header X-Powered-By "W3 Total Cache/0.9.2.8";
    try_files $uri $uri/ $uri.html /index.php?$args;
}
location ~ \.(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe$
    expires 604800s;
    add_header Pragma "public";
    add_header Cache-Control "max-age=604800, public";
   add_header Link "<$scheme://$Host$uri>; rel=\"canonical\"";
    add_header X-Powered-By "W3 Total Cache/0.9.2.8";
}
# END W3TC Browser Cache
# BEGIN W3TC Minify core
rewrite ^/wp-content/cache/minify.*/w3tc_rewrite_test$ /wp-content/plugins/w3-total-cache/pub/mini$
set $w3tc_enc "";
if ($http_accept_encoding ~ gzip) {
    set $w3tc_enc .gzip;
}
if (-f $request_filename$w3tc_enc) {
    rewrite (.*) $1$w3tc_enc break;
}
rewrite ^/wp-content/cache/minify/(.+\.(css|js))$ /wp-content/plugins/w3-total-cache/pub/minify.ph$
# END W3TC Minify core
# BEGIN W3TC Page Cache core
set $w3tc_rewrite 1;
if ($request_method = POST) {
    set $w3tc_rewrite 0;
}
if ($query_string != "") {
    set $w3tc_rewrite 0;
}
if ($http_cookie ~* "(comment_author|wp\-postpass|w3tc_logged_out|wordpress_logged_in|wptouch_swit$
    set $w3tc_rewrite 0;
}
set $w3tc_enc "";
if ($http_accept_encoding ~ gzip) {
    set $w3tc_enc _gzip;
}
set $w3tc_ext "";
if (-f "$document_root/wp-content/cache/page_enhanced/$http_Host/$request_uri/_index.html$w3tc_enc$
    set $w3tc_ext .html;
}
if (-f "$document_root/wp-content/cache/page_enhanced/$http_Host/$request_uri/_index.xml$w3tc_enc"$
    set $w3tc_ext .xml;
}
if ($w3tc_ext = "") {
  set $w3tc_rewrite 0;
}
if ($w3tc_rewrite = 1) {
    rewrite .* "/wp-content/cache/page_enhanced/$http_Host/$request_uri/_index$w3tc_ext$w3tc_enc" $
}
# END W3TC Page Cache core
# BEGIN W3TC CDN
location ~ \.(ttf|otf|eot|woff)$ {
   add_header Access-Control-Allow-Origin "*";
}
# END W3TC CDN

Lors du copier-coller de nano dans mon terminal, certaines lignes n'étaient pas entièrement affichées à l'écran, mais ce sont tous les paramètres standard du cache total W3, je ne les ai pas touchés. Ils devraient être ok.

J'ai configuré mon serveur avec nginx sur le port 8080, vernis sur le port 80, php5-fpm et MySQL. Si quelqu'un pouvait m'aider à ce sujet, ce serait génial. Si vous avez besoin de plus d'informations, de fichiers de configuration, etc., faites-le moi savoir.

3
Nick Rutten

Créez un fichier spécifique à la configuration W3 Total Cache pour votre site, dans un emplacement où Nginx/PHP-FPM peut écrire. Incluez ce fichier dans la configuration du serveur Nginx de votre site. Ensuite, sur la page Paramètres généraux, sous Divers, indiquez le chemin complet de ce fichier dans le champ "Chemin du fichier de configuration du serveur Nginx". W3TC saura alors écrire toutes les règles Nginx nécessaires dans ce fichier.

Modifiez les paramètres W3TC afin de refléter la configuration souhaitée. Une fois que vous êtes satisfait des paramètres, rechargez Nginx. Votre configuration W3TC devrait maintenant fonctionner correctement.

2
Christiaan