web-dev-qa-db-ja.com

Nginx上のWordpressでW3 Total Cache Minifyリライトエラー

W3 Total CacheにURLを縮小ファイルに書き換えるようにしています。私は見つけることができたすべてのチュートリアルを試しました、しかし、私はそれを正しくすることができないようです。私はこれを言っているW3 Total Cacheエラーを得続けます:

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).

Nginx用の私の設定ファイルは以下の通りです: /etc/nginx/ のnginx.conf

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
}

このファイルは /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;
}

このファイル自体は /etc/nginx/conf.d/wp.conf にリンクしており、次のようになっています。

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 私のWordpressのルートフォルダに作成された nginx.conf ファイルW3 Total Cacheにもリンクしています。

# 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

私の端末でnanoからコピーペーストしている間、いくつかの行が完全に画面に表示されていませんでしたが、これらはすべて標準のW3 Total Cache設定です、私はそれらに触れませんでした。彼らは大丈夫なはずです。

ポート8080にnginx、ポート80にニス、php5-fpm、MySQLを使ってサーバーをセットアップしました。誰かがこれについて私を手伝うことができれば、それは素晴らしいだろう。あなたがより多くの情報、設定ファイルなどを必要とするならば、私に知らせてください。

3
Nick Rutten

Nginx/PHP-FPMが書き込める場所に、自分のサイト用のW3 Total Cache構成専用のファイルを作成します。このファイルをサイトのNginxサーバー構成に含めます。次に、[全般設定]ページの[その他]の下にある[Nginxサーバー設定ファイルのパス]フィールドに、このファイルへのフルパスを入力します。 W3TCはそれからこのファイルにそれが必要とするあらゆるNginx規則を書くことを知っているでしょう。

W3TC設定を変更して、希望の設定を反映させます。設定が完了したら、Nginxをリロードします。これでW3TC設定は正しく機能しているはずです。

2
Christiaan