Назад | Перейти на главную страницу

CSS & JS & images = 404 для блога WordPress в среде Rails + Nginx

Я выдергиваю волосы на этом.

Вы можете увидеть себя здесь - http://starterpad.com/blog/ - что все изображения, файлы CSS и JS содержат ошибку 404.

Главный сайт StarterPad (http://starterpad.com) работает под управлением Rails, и это нормально. Но / blog - это WordPress, и он видел лучшие времена.

Вот наш файл nginx.conf:

user  apache;
worker_processes  2;

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


events {
    worker_connections  1024;
}



http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;


    passenger_root /usr/local/rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.24;
    passenger_ruby /usr/local/rvm/wrappers/ruby-2.0.0-p247/ruby;


    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile       on;
    tcp_nopush     on;
    reset_timedout_connection on;

    keepalive_timeout  65;

    gzip  on;

#    include /etc/nginx/conf.d/*.conf;


server {
  server_name www.starterpad.com;
  return 301 $scheme://starterpad.com$request_uri;
}


  upstream starterpad {
    server unix:///var/www/starterpad.com/shared/tmp/sockets/puma.sock fail_timeout=0;
  }

  server {
    listen 80;
    server_name starterpad.com vps.starterpad.com;
    root /var/www/starterpad.com/current/public; 
    error_log /var/www/starterpad.com/shared/log/nginx_error.log;
    access_log off;

    error_page 403 404          /404.html;
    error_page 422              /422.html;
    error_page 500 502 503 504  /500.html;

    location ^~ /assets|uploads/ {
        gzip_static on;
        expires max;
        add_header Cache-Control public;
    }

    location @starterpad {
        proxy_pass http://starterpad; # match the name of upstream directive which is defined above
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    location / {
        try_files /index.html $uri.html $uri @starterpad;
    }

    location /blog/ {
        #try_files $uri $uri/ /blog/index.php?$args;
        #deny all;      
        root /var/www/starterpad.com/blog;       
        rewrite /wp-admin$ $scheme://$host$uri/ permanent;
        include wpsecure.conf;
        index index.php;
        try_files $uri $uri/ /index.php?q=$uri&$args;        
    }
    location ~ \.php {
        root /var/www/starterpad.com/blog;
        try_files $uri = 404;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi_params;
    }    
  }
}

Вот некоторые ошибки из журнала ошибок, но они мне не кажутся полезными:

2015.01.26 22:16:06 [ошибка] 11511 # 0: * 11 open () "/var/www/starterpad.com/blog/blog/wp-content/themes/sparkling/inc/css/font- awesome.min.css "не удалось (2: нет такого файла или каталога), клиент: 173.245.48.128, сервер: starterpad.com, запрос:" GET / blog / wp-content / themes / sparkling / inc / css / font- awesome.min.css? ver = 4.1 HTTP / 1.1 ", хост:" starterpad.com ", реферер:"http://starterpad.com/blog/"

2015.01.26 19:22:26 [ошибка] 10431 # 0: * 28798 FastCGI отправлено в stderr: "Невозможно открыть основной скрипт: /var/www/starterpad.com/blog/b6d767d2f8ed5d21a44b0e5886680cb9/generator.php (Нет такого файл или каталог) "при чтении заголовка ответа от восходящего потока, клиент: 108.162.215.123, сервер: starterpad.com, запрос:" POST /b6d767d2f8ed5d21a44b0e5886680cb9/generator.php HTTP / 1.1 ", восходящий поток:" fastcgi: //127.0.0.1: 9000 ", хост:" starterpad.com ", реферер:"http://starterpad.com/blog/wp-content/uploads/2014/12/SoftwareProgrammer-750x410.jpg"

Я прочитал так много страниц Stack Overflow и других, пробовал почти все в nginx.conf, но, хоть убей, не могу заставить его работать.

Любые идеи? Ты был бы моим чертовым героем!

Разобрался (спасибо Майкл Хэмптон). Измененные строки ниже выделены жирным шрифтом.


location / blog / {
корень /var/www/starterpad.com;
включить wpsecure.conf;
индекс index.php;
try_files $ uri $ uri / /index.php?q=$uri&$args;
}

местоположение ~ .php $ {
корень /var/www/starterpad.com/blog;
try_files $ uri $ uri / /index.php?q=$uri&$args;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^ (. +. php) (. *) $;
fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name;
включить fastcgi_params;
}