Налаштування Nginx – PHP-FPM для роботи багато-сайтовості в WordPress

28 октября 2014

По замовчуванню, Wordpress працює в одно-сайтовому режимі. Якщо Ви бажаєте включити багато-сайтовість, то зробіть наступні дії:

1. Відкрийте файл wp-config.php. В нього додайте програмний код:

/* Multisite */ define( 'WP_ALLOW_MULTISITE', true );

2. Налаштуйте мережу. Для цього, зайдіть в Administration > Tools > Network Setup (Инструменты - Установка сети).

3. Wordpress вам повідомить скрипт, призначений для роботи в Apache2.

Скрипт для додавання в wp-config.php (він підходить як для нашого випадку, так і для Apache2).

define('MULTISITE', true); define('SUBDOMAIN_INSTALL', true); define('DOMAIN_CURRENT_SITE', 'nerusoft.com'); define('PATH_CURRENT_SITE', '/'); define('SITE_ID_CURRENT_SITE', 1); define('BLOG_ID_CURRENT_SITE', 1);

Скрипт для Apache2, який потрібно додати в файл .htaccess в корні сайту (не підходить для варіанта Nginx, бо від не виконує ці файли :))

RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L]  # add a trailing slash to /wp-admin RewriteRule ^wp-admin$ wp-admin/ [R=301,L]  RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^(wp-(content|admin|includes).*) $1 [L] RewriteRule ^(.*\.php)$ $1 [L] RewriteRule . index.php [L]

Для зв'язки Nginx - PHP-FPM необхідно вставляти інший скрипт в налаштування домену Nginx. Цей скрипт різний в залежності від вибраної Вами схеми багато-сайтовості Wordpress.

Скрипт для Nginx для багато-сайтового Wordpress, що використовує підкаталоги:

map $uri $blogname{  ~^(?P<blogpath>/[^/]+/)files/(.*) $blogpath ; }   map $blogname $blogid{  default -999;    #Ref: http://wordpress.org/extend/plugins/nginx-helper/  #include /var/www/wordpress/wp-content/plugins/nginx-helper/map.conf ; }   server {  server_name example.com ;    root /var/www/example.com/htdocs;  index index.php;    location ~ ^(/[^/]+/)?files/(.+) {   try_files /wp-content/blogs.dir/$blogid/files/$2 /wp-includes/ms-files.php?file=$2 ;   access_log off; log_not_found off; expires max;  }    #avoid php readfile()  location ^~ /blogs.dir {   internal;   alias /var/www/example.com/htdocs/wp-content/blogs.dir ;   access_log off; log_not_found off; expires max;  }    if (!-e $request_filename) {   rewrite /wp-admin$ $scheme://$host$uri/ permanent;    rewrite ^(/[^/]+)?(/wp-.*) $2 last;    rewrite ^(/[^/]+)?(/.*\.php) $2 last;   }    location / {   try_files $uri $uri/ /index.php?$args ;  }    location ~ \.php$ {   try_files $uri =404;   include fastcgi_params;   fastcgi_pass php;  }    #add some rules for static content expiry-headers here }

Скрипт для Nginx, що використовує багато-доменність для Wordpress:

map $http_host $blogid {     default       -999;       #Ref: http://wordpress.org/extend/plugins/nginx-helper/     #include /var/www/wordpress/wp-content/plugins/nginx-helper/map.conf ;   }   server {  server_name example.com *.example.com ;    root /var/www/example.com/htdocs;  index index.php;    location / {   try_files $uri $uri/ /index.php?$args ;  }    location ~ \.php$ {   try_files $uri =404;   include fastcgi_params;   fastcgi_pass php;  }    #WPMU Files         location ~ ^/files/(.*)$ {                 try_files /wp-content/blogs.dir/$blogid/$uri /wp-includes/ms-files.php?file=$1 ;                 access_log off; log_not_found off;      expires max;         }    #WPMU x-sendfile to avoid php readfile()  location ^~ /blogs.dir {   internal;   alias /var/www/example.com/htdocs/wp-content/blogs.dir;   access_log off; log_not_found off; expires max;  }    #add some rules for static content expiry-headers here }

Написать комментарий

Адрес и телефон
E-mail: rs@corp2.net Skype: rudjuk
г. Киев, ул. Белорусская 30, офис. К2Р (схема проезда)
Мы в сети
Меню
www.megastock.ru Здесь находится аттестат нашего WM идентификатора 000000000000
Проверить аттестат
Наверх