При установки получаю 502 Bad Gateway


#1

Здравствуйте, решил попробывать cs cart, скачал бесплатную версию и пытаюсь поставить на vps с rocky 8.6 линукс и php-fpm 8.1 Проверил, php-fpm подхватыватется скриптами из директории куда пытаюсь установить cs cart. На главной странице мне сообщает, что скрипт не установлен и предлагает мне перейти на /install/ и при переходе получаю 502 Bad Gateway. Посмотрел логи, не могу понять почему при старте инсталяции получаю 502 ошибку, на форуме поиском тоже ничего особо не нашёл. Может кто сталкивался с подобным поведением. Мой конфиг такой, там я только домен заменил на example.com

server {
listen 80;
server_name example.com;

if ($host = example.com) {
    return 301 https://$host$request_uri;
} 

}

server {

listen     127.0.0.2:443 ssl http2;
server_name    example.com;
root /usr/share/nginx/example.com/html/;

charset utf-8;
index index.php;

access_log  /usr/share/nginx/example.com/log/access.log;
error_log   /usr/share/nginx/example.com/log/error.log;

ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; 
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; 
ssl_trusted_certificate "/etc/letsencrypt/live/example.com/fullchain.pem";

include conf.d/ssl.conf;
include conf.d/header.conf; 


error_page 598 = @backend;


 location @backend {
    try_files $uri $uri/ /$2$3 /$3 /index.php  =404;
    #   The path to the PHP-FPM daemon socket
    fastcgi_pass unix:/var/run/php-fpm/dev.sock;
    #
    fastcgi_index index.php;
    fastcgi_read_timeout 360;
    # Including the contents of fastcgi_params.conf
    ################################################################################
    fastcgi_param  QUERY_STRING       $query_string;
    fastcgi_param  REQUEST_METHOD     $request_method;
    fastcgi_param  CONTENT_TYPE       $content_type;
    fastcgi_param  CONTENT_LENGTH     $content_length;
    fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
    fastcgi_param  REQUEST_URI        $request_uri;
    fastcgi_param  DOCUMENT_URI       $document_uri;
    fastcgi_param  DOCUMENT_ROOT      $document_root;
    fastcgi_param  SERVER_PROTOCOL    $server_protocol;
    fastcgi_param  HTTPS              $https if_not_empty;
    fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
    fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;
    fastcgi_param  REMOTE_ADDR        $remote_addr;
    fastcgi_param  REMOTE_PORT        $remote_port;
    fastcgi_param  SERVER_ADDR        $server_addr;
    fastcgi_param  SERVER_PORT        $server_port;
    fastcgi_param  SERVER_NAME        $server_name;
    fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param  REDIRECT_STATUS    200;
    ################################################################################
}






############################################################################

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

############################################################################

location ~ ^/(\w+/)?(\w+/)?api/ {
    rewrite ^/(\w+/)?(\w+/)?api/(.*)$ /api.php?_d=$3&ajax_custom=1&$args last;
    rewrite_log off;
}

############################################################################

location ~ ^/(\w+/)?(\w+/)?var/database/ {
    return 404;
}

location ~ ^/(\w+/)?(\w+/)?var/backups/ {
    return 404;
}

location ~ ^/(\w+/)?(\w+/)?var/restore/ {
    return 404;
}

location ~ ^/(\w+/)?(\w+/)?var/themes_repository/ {
    allow all;
    location ~* \.(tpl|php.?)$ {
        return 404;
    }
}

location ~ ^/(\w+/)?(\w+/)?var/ {
    return 404;
    location ~* /(\w+/)?(\w+/)?(.+\.(js|css|png|jpe?g|gz|yml|xml))$ {
        try_files $uri $uri/ /$2$3 /$3 /index.php?$args;
        allow all;
        access_log off;
        expires 1M;
        add_header Cache-Control public;
        add_header Access-Control-Allow-Origin *;
    }
}

############################################################################

location ~ ^/(\w+/)?(\w+/)?app/payments/ {
    return 404;
    location ~ \.php$ {
        return 598;
    }
}

location ~ ^/(\w+/)?(\w+/)?app/addons/rus_exim_1c/ {
    return 404;
    location ~ \.php$ {
        return 598;
    }
}

location ~ ^/(\w+/)?(\w+/)?app/ {
    return 404;
}

############################################################################

location ~ ^/(favicon|apple-touch-icon|homescreen-|firefox-icon-|coast-icon-|mstile-).*\.(png|ico)$  {
    access_log off;
    try_files $uri =404;
    expires max;
    add_header Access-Control-Allow-Origin *;
    add_header Cache-Control public;
}

location ~* /(\w+/)?(\w+/)?(.+\.(jpe?g|jpg|ico|gif|png|css|js|pdf|txt|tar|woff|svg|ttf|eot|csv|zip|xml|yml))$ {
    access_log off;
    try_files $uri $uri/ /$2$3 /$3 /index.php?$args;
    expires max;
    add_header Access-Control-Allow-Origin *;
    add_header Cache-Control public;
}

############################################################################

location ~ ^/(\w+/)?(\w+/)?design/ {
    allow all;
    location ~* \.(tpl|php.?)$ {
        return 404;
    }
}

############################################################################

location ~ ^/(\w+/)?(\w+/)?images/ {
    allow all;
    location ~* \.(php.?)$ {
        return 404;
    }
}

############################################################################

location ~ ^/(\w+/)?(\w+/)?js/ {
    allow all;
    location ~* \.(php.?)$ {
        return 404;
    }
}

############################################################################

location ~ ^/(\w+/)?(\w+/)?init.php {
    return 404;
}

location ~* \.(tpl.?)$ {
    return 404;
}

location ~ /\.(ht|git) {
    return 404;
}

location ~* \.php$ {
    return 598 ;
}

################################################################################

#2

Так вроде php 8.1 cs-cart не поддерживает


#3

Да, там проблема в настройках nginx почему-то не хотело работать без этого в секции http

fastcgi_busy_buffers_size 512k;
fastcgi_buffer_size 512k;
fastcgi_buffers 16 512k;

ну и в php 8.1 есть баг который cs cart не позволяет работать с сессиями и в логах php такая ошибка

"PHP message: PHP Deprecated: Return type of Pimple\Container::offsetExists($id) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

что интересно, на php 7.4 тоже там проблемы были с сессиями, но как то устаканилось и скрипт установился. Странно, что поддержки 8.1 нет он уже год назад практически вышел и я даже не ожидал такого и не полез в системные требования смотреть.