Настройка NGINX в режиме PHP-FPM для OpenCart/ocStore 2.3

Ошибки при использовании модулей, установке и использовании опенкарта
Аватара пользователя
UovoU
Сообщения: 2
Зарегистрирован: 16.12.2022
Поблагодарил: 1 раз

Настройка NGINX в режиме PHP-FPM для OpenCart/ocStore 2.3

Непрочитанное сообщение UovoU »

Здравствуйте. Делаю новый сайт на ocStore 2.3, версия PHP 7.3 и хочу перейти на PHP FastCGI (Nginx + PHP-FPM), помогите настроить фаил конфига nginx.

Моя проблема в том что у меня на сайте два языка и добавлена приставка ru и en для разных языков.
Для этого я использую модуль SEO CMS MULTILANG 2 57.0 (мультиязык / мультирегион)

Из-за этого такие ссылки не открываются и выдают ошибку 404:
domain.ru/ru/index.php?route=common/currency/currency
domain.ru/en/index.php?route=common/currency/currency

Если убираю приставку ru и en то все работает.
domain.ru/index.php?route=common/currency/currency - такая ссылка открывается.

Еще пример:
domain.ru/ru/index.php?route=information/information&information_id=4 - не открывается, выдает ошибку 404
Если убираю приставку ru то domain.ru/index.php?route=information/information&information_id=4 открывается

Если ставлю обработчик PHP CGI 7.3 то все работает так что дело не в модуле.

Код конфига:

Код: Выделить всё

server {
	server_name domain.ru www.domain.ru;
	charset off;
	index index.php index.html;
	disable_symlinks if_not_owner from=$root_path;
	include /etc/nginx/vhosts-includes/*.conf;
	include /etc/nginx/vhosts-resources/domain.ru/*.conf;
	access_log /var/www/httpd-logs/domain.ru.access.log;
	error_log /var/www/httpd-logs/domain.ru.error.log notice;
	set $root_path /var/www/user/data/www/domain.ru;
	root $root_path;
	
location / {
    #Редирект с без www на www
    if ($http_host ~ "^domain.ru"){
    rewrite ^(.*)$ https://www.domain.ru$1 redirect;
    }
	
    if (!-e $request_filename){
    rewrite ^/(.+)$ /index.php?_route_=$1 last;
    }

    location ~ [^/]\.ph(p\d*|tml)$ {
        try_files /does_not_exists @php;
    }

    location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
        expires 365d;
    }
}

	location @php {
		fastcgi_index index.php;
		fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f admin@domain.ru";
		fastcgi_pass unix:/var/www/php-fpm/3.sock;
		fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
		try_files $uri =404;
		include fastcgi_params;
	}
	return 301 https://$host:443$request_uri;
	ssi on;
	listen 185.197.160.60:80;
}
server {
	server_name domain.ru www.domain.ru;
	ssl_certificate "/var/www/httpd-cert/user/domain.ru_le1.crtca";
	ssl_certificate_key "/var/www/httpd-cert/user/domain.ru_le1.key";
	ssl_ciphers EECDH:+AES256:-3DES:RSA+AES:!NULL:!RC4;
	ssl_prefer_server_ciphers on;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
	ssl_dhparam /etc/ssl/certs/dhparam4096.pem;
	charset off;
	index index.php index.html;
	disable_symlinks if_not_owner from=$root_path;
	include /etc/nginx/vhosts-includes/*.conf;
	include /etc/nginx/vhosts-resources/domain.ru/*.conf;
	access_log /var/www/httpd-logs/domain.ru.access.log;
	error_log /var/www/httpd-logs/domain.ru.error.log notice;
	set $root_path /var/www/user/data/www/domain.ru;
	root $root_path;

location / {
    #Редирект с без www на www
    if ($http_host ~ "^domain.ru"){
    rewrite ^(.*)$ https://www.domain.ru$1 redirect;
    }
	
    if (!-e $request_filename){
    rewrite ^/(.+)$ /index.php?_route_=$1 last;
    }

    location ~ [^/]\.ph(p\d*|tml)$ {
        try_files /does_not_exists @php;
    }

    location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
        expires 365d;
    }
}

	location @php {
		fastcgi_index index.php;
		fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f admin@domain.ru";
		fastcgi_pass unix:/var/www/php-fpm/3.sock;
		fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
		try_files $uri =404;
		include fastcgi_params;
	}
	add_header Strict-Transport-Security "max-age=31536000;";
	ssi on;
	listen 185.197.160.60:443 ssl;
}
Аватара пользователя
100napb
Сообщения: 16
Зарегистрирован: 15.04.2022
Поблагодарил: 3 раз
Спасибо: 5 раз

Re: Настройка NGINX в режиме PHP-FPM для OpenCart/ocStore 2.3

Непрочитанное сообщение 100napb »

UovoU писал(а): 16 дек 2022, 13:45 Код конфига:

можете попробовать вот так. раз предложенный вариант кода на другом форуме не сработал. фиолетовым выделил критичные для Вас строки конфига. Это упрощенный пример конфига проекта, где этот модуль мультиязыка исправно работает
...
    location / {
        try_files $uri $uri/ @opencart;
        location ~ [^/]\.ph(p\d*|tml)$ {
               
if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?_route_=$1 last; }
                try_files /does_not_exists @php;
        }

        ...
    }

    location @opencart {
        rewrite ^/(.+)$ /index.php?_route_=$1 last;
    }


    location @php {
        fastcgi_index index.php;
        fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@???";
        fastcgi_pass unix:/var/www/php-fpm/1.sock;
        fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
        try_files $uri =404;
        include fastcgi_params;
    }
...
Аватара пользователя
UovoU
Сообщения: 2
Зарегистрирован: 16.12.2022
Поблагодарил: 1 раз

Re: Настройка NGINX в режиме PHP-FPM для OpenCart/ocStore 2.3

Непрочитанное сообщение UovoU »

location / {
try_files $uri $uri/ @opencart;
location ~ [^/]\.ph(p\d*|tml)$ {
if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?_route_=$1 last; }
try_files /does_not_exists @php;
}
...
}

location @opencart {
rewrite ^/(.+)$ /index.php?_route_=$1 last;
}
100napb, попробовал ваш вариант, вроде все работает без ошибок, если найду ошибки то отпишусь в теме. Большое вам спасибо!
Ответить