Миграция мультисайта с Apache-mod_php на Nginx-php7.1-fpm

338
Sam Tyurenkov

Мне нужна помощь, пожалуйста.

Я недавно решил перенести свои сайты

  • из Debian 8 + Apache 2.4 + mod_php + Varnish
  • в Debian 9 + Nginx + php7.1-fpm + Varnish

Я успешно перенес одну установку WordPress, она работает хорошо. Затем я попытался перенести многосайтовую установку.

  • Страницы внешнего интерфейса Blog1 и Blog2 работают просто отлично.
  • Но страницы администратора сети и сайта дают 500 ошибок.

Я использовал config для поддоменов из WP Codex, но на самом деле я использую 2 разных домена в этих двух блогах.

Что я пробовал:

  • Увеличение лимита памяти php до 128 и лимита памяти wp-config до 64
  • Исключая Лак из настройки
  • Добавление map {} в nginx conf и правила WPMU из WP Codex
  • Отключение плагинов и тем

WP-админ этого мультисайта пока недоступен

1. nginx.conf

user www-data www-data;  worker_processes auto;  error_log /var/log/nginx/error.log; pid /var/run/nginx.pid;  events {  worker_connections 1024;  multi_accept on; }  http {  include /etc/nginx/mime.types; default_type application/octet-stream;  server_tokens off;  sendfile on;  sendfile_max_chunk 128k;   tcp_nopush on; tcp_nodelay on;   reset_timedout_connection on;  client_header_timeout 3; client_body_timeout 5;  send_timeout 3;   client_header_buffer_size 2k; client_body_buffer_size 256k;  client_max_body_size 12m;   access_log off;   include /etc/nginx/conf.d/*.conf; } 

2. frontend.conf

server { listen 443 ssl; server_name profispb.com www.profispb.com xn--e1ajhifc2d.xn--p1ai www.xn--e1ajhifc2d.xn--p1ai;   keepalive_timeout 60 60;   gzip on; gzip_comp_level 1; gzip_min_length 512; gzip_buffers 8 64k; gzip_types text/plain; gzip_proxied any;   ssl_prefer_server_ciphers on;  ssl_session_cache shared:TLS:2m; ssl_session_timeout 2m;   ssl_certificate XXXXXXXXXXXXXXXXXXXXXX(hidden);  ssl_certificate_key XXXXXXXXXXXXXXXXXXXXXX(hidden);   #ssl_dhparam /etc/ssl/sslforfree/privkey.pem;   ssl_protocols TLSv1.2 TLSv1.1 TLSv1;  ssl_ciphers XXXXXXXXXXXXXXXXXX(hidden)   add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains';  location / {  proxy_pass http://127.0.0.1:6081/;  proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Forwarded-Port 443; } } 

3. Backend.conf

map $http_host $blogid { default 0;  xn--e1ajhifc2d.xn--p1ai 1; profispb.com 2; }  server {  server_name profispb.com www.profispb.com xn--e1ajhifc2d.xn--p1ai www.xn--e1ajhifc2d.xn--p1ai;   listen 127.0.0.1:81;   root /var/www/vetka/profispb.com; index index.php;   gzip on; gzip_comp_level 9; gzip_min_length 512; gzip_buffers 8 64k; gzip_types text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml; gzip_proxied any;  location / { try_files $uri $uri/ /index.php$args; }  location ~ \.php$ {  try_files $fastcgi_script_name =404;  fastcgi_keep_conn on; include /etc/nginx/fastcgi_params; fastcgi_read_timeout 3600s; fastcgi_buffer_size 128k; fastcgi_buffers 4 128k; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/run/php/php7.1-fpm.sock; fastcgi_index index.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/vetka/profispb.com/wp-content/blogs.dir; access_log off; log_not_found off; expires max; }   } 

Пример журнала ошибок (повторяется)

2017/12/19 22:28:05 [error] 11039#11039: *6 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught Error: [] operator not supported for strings in /var/www/vetka/profispb.com/wp-content/plugins/revslider/includes/framework/base-admin.class.php:71 Stack trace: #0 /var/www/vetka/profispb.com/wp-content/plugins/revslider/admin/revslider-admin.class.php(552): RevSliderBaseAdmin::addMetaBox('Revolution Slid...', '', Array, NULL) #1 /var/www/vetka/profispb.com/wp-content/plugins/revslider/admin/revslider-admin.class.php(73): RevSliderAdmin->addSliderMetaBox() #2 /var/www/vetka/profispb.com/wp-content/plugins/revslider/admin/revslider-admin.class.php(44): RevSliderAdmin->init() #3 /var/www/vetka/profispb.com/wp-content/plugins/revslider/revslider.php(165): RevSliderAdmin->__construct('/var/www/vetka/...') #4 /var/www/vetka/profispb.com/wp-settings.php(305): include_once('/var/www/vetka/...') #5 /var/www/vetka/profispb.com/wp-config.php(101): require_once('/var/www/vetka/...') #6 /var/www/vetka/profispb.com/wp-load.php(37): require_once('/var/www/vetka/...') #7 /var/www/" while reading response header from upstream, client: 127.0.0.1, server: profispb.com, request: "GET /wp-admin/ HTTP/1.0", upstream: "fastcgi://unix:/run/php/php7.1-fpm.sock:", host: "xn--e1ajhifc2d.xn--p1ai", referrer: "https://xn--e1ajhifc2d.xn--p1ai/" 
0
У вас есть журнал ошибок. Что это говорит о 500 ответ? Richard Smith 6 лет назад 1
Привет, Ричард, я добавил пример блока ошибок, но не совсем понял. Вы можете посмотреть? (Добавлено в конец моего исходного сообщения). Sam Tyurenkov 6 лет назад 0

1 ответ на вопрос

0
Sam Tyurenkov

Кажется, я это решил. Ползунок революции вызывал проблему. Хотя я был уверен, что отключил все плагины, переименовав папку плагинов.

Поэтому после переименования / плагина / revslider мне удалось войти.

Похожие вопросы