LINUX.ORG.RU

Помогите с настройкой nginx

 , ,


0

1

Потребовалось поднять сервер nginx для нескольких сайтов на wordpress. Сейчас ещё php7 появился, возможно с ним дело. С предыдущими версиями php, проблем не было. Хотя, это может я такой криворукий.

В общем, вместо второго сайта у меня отдаются файлы.

Конфиг первого сайта, он без домена(чисто на ip) и всё работает нормально:

server {
  listen [::]:80;
  listen 80;

  server_name my_IP/site1;

  access_log /var/log/nginx/site1.access.log;
  error_log /var/log/nginx/site1.error.log;

  root /srv/site1;
  index index.html index.htm index.php;

  location /site1/ {
    index index.php;
    try_files $uri $uri/ /site1/index.php?$args;
  }

  charset utf-8;

  rewrite /wp-admin$ $scheme://$host$uri/ permanent;

  error_page 404 /404.html;
  
  location = /favicon.ico { log_not_found off; access_log off; }
  location = /robots.txt { log_not_found off; access_log off; allow all; }
  location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
  expires max;
  log_not_found off;
  }


  location ~ /\. {
          deny all;
  }

  location ~* /(?:uploads|files)/.*\.php$ {
          deny all;
  }

  

}

Конфиг второго сайта. Он практически похожий на первый, но отдаются файлы, вместо открытия сайта.

server {
  listen [::]:80;
  listen 80;

  server_name site2.com;

  access_log /var/log/nginx/site2.com.access.log;
  error_log /var/log/nginx/site2.com.error.log;

  root /srv/site2.com;

  location / {
    index index.php;
    try_files $uri $uri/ /index.php?$args;
  }


  charset utf-8;

  rewrite /wp-admin$ $scheme://$host$uri/ permanent;

  error_page 404 /404.html;

  location = /favicon.ico { log_not_found off; access_log off; }
  location = /robots.txt { log_not_found off; access_log off; allow all; }
  location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
  expires max;
  log_not_found off;
  }


  location ~ /\. {
          deny all;
  }

  location ~* /(?:uploads|files)/.*\.php$ {
          deny all;
  }


}

Конфиг default:

server {
	listen 80 default_server;
	listen [::]:80 default_server;

	root /srv;

	# Add index.php to the list if you are using PHP
	index index.php index.html index.htm index.nginx-debian.html;

	server_name _;

	location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
		try_files $uri $uri/ =404;
	}


        #Lets Encrypt
        location ~ /.well-known {
                allow all;
        }

        location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }

        location ~ /\.ht {
        deny all;
        }
        
}

nginx.conf не трогал, по умолчанию. php-fpm - тоже ничего не трогал после установки.

Ужас. Как это у тебя только работает.

Добавь к каждому server свой обработчик:


location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
 }

Deleted ()
Ответ на: комментарий от Deleted

Самому стыдно) Но как узнать правильный рецепт настройки? Документацию пробовал читать. В гугле куча вариантов.

Добавил, но при переходе на сайт site2.ru - опять отдаёт файл, но ещё сейчас попробовал: site2.com/wp-admin/install.php - открылась установка Wordpress(да, он ещё не установлен). Попробую установить, может главная нормально отдаваться начнёт.

loopergood ()
Ответ на: комментарий от Deleted

А, всё ок. Спасибо!

В Firefox заработало нормально, наверное Chrome как-то закешировал ответ сервера первоначальный. Т.к. в Chrome инкогнито нормально открывается сайт.

loopergood ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.