LINUX.ORG.RU

переезд с apache + mariadb 5.x на nginx + php-fpm + mariadb 10.x

 , , ,


0

1

Ранее был lighttpd на centos 7.X, всё работало корректно.

Сейчас имею nginx 1.10 с ubuntu 16.04.

Zabbix работает корректно, переходит по всем каталогам. У других веб-ресурсов не работает переход по каталогам - вместо этого возвращает значение 404, то есть, главная страница отображается, а все последующие с значением 404.

Конфиг Nginx:

server {
	root /var/www/html;

	index index.php index.html index.htm;

	server_name my_site.com;

	location / {
		try_files $uri $uri/ =404;
	}

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

Логи:

2017/03/01 02:19:53 [error] 25546#25546: *1 "/home/www/test/test2/index.php" is not found (2: No such file or directory), clie$

2017/03/01 02:19:55 [error] 25546#25546: *2 "/home/www/test/test3/index.php" is not found (2: No such file or directory), client: IP_ADDRESS, server: zom$
★★

Последнее исправление: BitSum (всего исправлений: 4)
Ответ на: комментарий от l0stparadise

Есть изменения, но теперь при обращении к любой странице идёт «редирект» к index.php - дальше главной страницы никуда перейти не могу.

Делалось так:

tar -cvvf test.tar ./
vsftpd -> filezilla -> windows -> http
wget
tar -xvvf test.tar

В секцию location / {

было добавлено try_files $uri $uri/ /index.php?$args;

а try_files $uri $uri/ =404; удалено.

BitSum ★★
() автор топика
Ответ на: комментарий от BitSum

БД переносили так:

mysqldump -u root -p dumpdb > dumpfile.sql

mysql -u root -p

CREATE DATABASE `db_name` CHARACTER SET utf8 COLLATE utf8_general_ci;

exit

mysql -u root -p db_name < dumpfile.sql
BitSum ★★
() автор топика

Есть ещё некоторый нюанс.

Не все ресурсы пишут логи, из четырёх только один. Конфиг виртуального хоста идентичен.

BitSum ★★
() автор топика

Пробовали так:

 location / {
        try_files $uri $uri/ @backend;
    }

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

в логах nginx и php-fpm пусто, но проблему это не решило.

BitSum ★★
() автор топика
Ответ на: комментарий от BitSum

содержимое snippets/fastcgi-php.conf нужно смотреть

у тебя в конфиге

«root /var/www/html;»

а ругается на отсутствие «/home/www/test/test2/index.php»

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

1. Конфиг:

# regex to split $uri to $fastcgi_script_name and $fastcgi_path
fastcgi_split_path_info ^(.+\.php)(/.+)$;

# Check that the PHP script exists before passing it
try_files $fastcgi_script_name =404;

# Bypass the fact that try_files resets $fastcgi_path_info
# see: http://trac.nginx.org/nginx/ticket/321
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;

fastcgi_index index.php;
include fastcgi.conf;

На что обратить внимание?

2. С путями всё нормально, перед постом я их переименовал. Сейчас (если меня не подводит моя теория) - не работает реврайт.

BitSum ★★
() автор топика

Что ещё можно попробовать?

Решить проблему до сих пор не могу.

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