Налаштування Nginx – PHP-FPM для роботи багато-сайтовості в WordPress
По замовчуванню, Wordpress працює в одно-сайтовому режимі. Якщо Ви бажаєте включити багато-сайтовість, то зробіть наступні дії:
1. Відкрийте файл wp-config.php. В нього додайте програмний код:
3. Wordpress вам повідомить скрипт, призначений для роботи в Apache2.
Скрипт для додавання в wp-config.php (він підходить як для нашого випадку, так і для Apache2).
Скрипт для Nginx для багато-сайтового 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 }
По замовчуванню,
WordPress працює в одно-сайтовому режимі. Якщо Ви бажаєте включити
багато-сайтовість, то зробіть наступні дії:
1. Відкрийте файл wp-config.php. В нього додайте програмний код:
/* Multisite */ define( 'WP_ALLOW_MULTISITE', true );
1
2
/* 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);
1
2
3
4
5
6
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]
1
2
3
4
5
6
7
8
9
10
11
12
13
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/[^/]+/)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 }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
map $uri $blogname{
~^(?P/[^/]+/)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 }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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
}
© 2014, rudjuk.kiev.ua. Все права защищены. Rudyuk Sergey. К2®
Read more at: http://rudjuk.kiev.ua/ | Сайт Рудюка Сергея
WordPress працює в одно-сайтовому режимі. Якщо Ви бажаєте включити
багато-сайтовість, то зробіть наступні дії:
1. Відкрийте файл wp-config.php. В нього додайте програмний код:
/* Multisite */ define( 'WP_ALLOW_MULTISITE', true );
1
2
/* 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);
1
2
3
4
5
6
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]
1
2
3
4
5
6
7
8
9
10
11
12
13
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/[^/]+/)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 }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
map $uri $blogname{
~^(?P/[^/]+/)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 }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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
}
© 2014, rudjuk.kiev.ua. Все права защищены. Rudyuk Sergey. К2®
Read more at: http://rudjuk.kiev.ua/ | Сайт Рудюка Сергея
Комментарии