Общие Вопросы По Настройке Серверов

Здравствуйте, установили все на виртуальный сервер свой, но при попытке загрузить изображения в товар (детальные) - жмем "сохранить" - ничего не происходит, ничего не загружает... кнопка сохранить в товаре просто не реагирует после выбора изображений для загрузки... В чем может быть дело?

Скрин для понимания о чем я: http://joxi.ru/KAgBgl4Tg456o2

Здравствуйте, установили все на виртуальный сервер свой, но при попытке загрузить изображения в товар (детальные) - жмем "сохранить" - ничего не происходит, ничего не загружает... кнопка сохранить в товаре просто не реагирует после выбора изображений для загрузки... В чем может быть дело?

Скрин для понимания о чем я: http://joxi.ru/KAgBgl4Tg456o2

Здравствуйте.

Напишите нам на sales@simtechdev.com или личное сообщение с временными доступами. Постараемся посмотреть в чём может быть дело. Изображение открыть не смогли — по ссылке 404.

Здравствуйте, пытаюсь развернуть тестовую копию сайта на сервере timeweb.ru все сделано как и раньше делалось, копия базы данных, копия сайта, смена домена в конфиг, но сайт не работает - я не могу попасть в админ панель, чтоб там прописать новый домен...С хостинга ответили:

Проблем в работе сервера не наблюдается. Наблюдаем следующую ошибку при обращении к индексной странице сайта:

Tygh\Exceptions\AException

Message
No storefronts defined for this domain

Error at
app/functions/fn.init.php, line: 1015

Backtrace
File:init.php
Line:150
Function:fn_init

File:index.php
Line:24
Function:require

Подскажите, что могло пойти не так?

Кэширующий Varnish кто-нибудь использует?

Как вы решаете проблему кэширования для разных устройств?

Сейчас с базовыми настройками "кто первый встал, того и тапки": просмотрели страницу с мобилы - в кэше сохранилось и десктопам отдаётся оно же.

Погуглил - проблема известная, люди решают vcl настройками варниша.

Кто-нибудь уже делал?

Ubuntu 16.04.3, NGINX 1.12.2, PHP-FPM 7.0.22, MariaDB 10.0.31. Настраивала по оф. инструкции.

VPS 4 core, 8 ram, SSD

Постоянно падает в 504 Gateway Timeout. Сохранил пользователя — упали. Очистили кеш — упали. Потом просто упали.

До этого было одно ядро — php-fpm отжирал все 100%. Сейчас 4. Толку ноль.

Не знаю даже куда копать.

Кэширующий Varnish кто-нибудь использует?

Как вы решаете проблему кэширования для разных устройств?
Сейчас с базовыми настройками "кто первый встал, того и тапки": просмотрели страницу с мобилы - в кэше сохранилось и десктопам отдаётся оно же.
Погуглил - проблема известная, люди решают vcl настройками варниша.

Кто-нибудь уже делал?

Много серверных ресурсом надо (. У нас на хостинге и так все ок работает )

Pagespeed ругается на отсутствие сжатия html. Стоит ли добавить text/html к сжимаемым mime в конфиге nginx?

Настроил сервер FastCGI (NGINX + PHP-FPM) с панелью управления ISPManager 5 lite.

После редактирования конфига Nginx загружается главная страница и контент по ссылкам верхнего меню, однако при переходе в товар выдается ошибка 404.

Конфгиг получился такой:

server {
server_name ***.ru www.***.ru;
charset UTF-8;
index index.html;
disable_symlinks if_not_owner from=$root_path;
include /etc/nginx/vhosts-includes/*.conf;
include /etc/nginx/vhosts-resources/***.ru/*.conf;
access_log /var/www/httpd-logs/***.ru.access.log;
error_log /var/www/httpd-logs/***.ru.error.log notice;
set $root_path /var/www/***/data/www/***.ru;
root $root_path;
 
# Сжатие 
gzip on;
gzip_comp_level 8;
gzip_min_length  1100;
gzip_buffers 16 8k;
gzip_proxied any;
gzip_disable "msie6";
gzip_types text/plain application/xml application/javascript text/css text/js text/xml application/x-javascript text/javascript application/json application/xml+rss image/svg+xml;

# Прочие настройки
client_max_body_size            100m;
client_body_buffer_size         128k;
client_header_timeout           3m;
client_body_timeout             3m;
send_timeout                    3m;
client_header_buffer_size       1k;
large_client_header_buffers     4 16k;

location / {
    # Главный скрипт
    index  index.php index.html index.htm;
    # Для работы API
    rewrite ^/api/(.*)$ /api.php?_d=$1&ajax_custom=1&$args last;
    # Логика поиска скрипта по порядку: файл, папка, скрипт
    try_files $uri $uri/ @fallback;
    location ~ [^/]\.ph(p\d*|tml)$ {
        try_files /does_not_exists @php;
    }
}

# Правило rewrite для модуля SEO
location @fallback {
    rewrite  ^(.*)$ /index.php?$args last;
}

location @php {
    fastcgi_index index.php;
    fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@shopsan.ru";
    fastcgi_pass unix:/var/www/php-fpm/***.sock;
    fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
    try_files $uri =404;
    include fastcgi_params;
}

# Настройки статики, первое правило
location ~* \.(jpeg|ico|jpg|gif|png|css|js|pdf|txt|tar|gz|wof|csv|zip|xml|yml) {
    access_log off;
# Правило поиска статических файлов. Если файл не находится по адресу магазина, то ищем файл по правилу @statics.
# Например если магазин расположен в подпапке ***.ru/shop/
   try_files $uri =404;
    expires 14d;
    add_header Access-Control-Allow-Origin *;
    add_header Cache-Control public;
   root $root_path;
    location ~ [^/]\.ph(p\d*|tml)$ {
        try_files /does_not_exists @php;
    }
}

Правило поиска статических файлов для витрин. Например, если у Вас две витрины в разных подпапках: ***.ru и ***.ru/shop/

location @statics {

rewrite ^/(\w+)/(.*)$ /$2 break;

access_log off;

rewrite_log off;

expires 14d;

add_header Cache-Control public;

add_header Access-Control-Allow-Origin *;

root $root_path;

}

    location ~ \.php$  {
    fastcgi_index index.php;
    fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@***.ru";
    fastcgi_pass unix:/var/www/php-fpm/***.sock;
    fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
    try_files $uri =404;
    include fastcgi_params;
    location ~ [^/]\.ph(p\d*|tml)$ {
        try_files /does_not_exists @php;
    }
}
 
add_header Strict-Transport-Security "max-age=31536000;";
listen ***;

}

server {

server_name ***.ru www.***.ru;
charset UTF-8;
index index.html;
disable_symlinks if_not_owner from=$root_path;
include /etc/nginx/vhosts-includes/*.conf;
include /etc/nginx/vhosts-resources/***.ru/*.conf;
access_log /var/www/httpd-logs/***.ru.access.log;
error_log /var/www/httpd-logs/***.ru.error.log notice;
set $root_path /var/www/***/data/www/***.ru;
root $root_path;

# Сжатие
gzip on;
gzip_comp_level 8;
gzip_min_length  1100;
gzip_buffers 16 8k;
gzip_proxied any;
gzip_disable "msie6";
gzip_types text/plain application/xml application/javascript text/css text/js text/xml application/x-javascript text/javascript application/json application/xml+rss image/svg+xml;

# Прочие настройки
client_max_body_size            100m;
client_body_buffer_size         128k;
client_header_timeout           3m;
client_body_timeout             3m;
send_timeout                    3m;
client_header_buffer_size       1k;
large_client_header_buffers     4 16k;

location / {
    # Главный скрипт
    index  index.php index.html index.htm;
    # Для работы API
    rewrite ^/api/(.*)$ /api.php?_d=$1&ajax_custom=1&$args last;
    # Логика поиска скрипта по порядку: файл, папка, скрипт
    try_files $uri $uri/ @fallback;
    location ~ [^/]\.ph(p\d*|tml)$ {
        try_files /does_not_exists @php;
    }
}

# Правило rewrite для модуля SEO
location @fallback {
    rewrite  ^(.*)$ /index.php?$args last;
}

location @php {
    fastcgi_index index.php;
    fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@***.ru";
    fastcgi_pass unix:/var/www/php-fpm/***.sock;
    fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
    try_files $uri =404;
    include fastcgi_params;
}

# Настройки статики, первое правило
location ~* \.(jpeg|ico|jpg|gif|png|css|js|pdf|txt|tar|gz|wof|csv|zip|xml|yml) {
    access_log off;
# Правило поиска статических файлов. Если файл не находится по адресу магазина, то ищем файл по правилу @statics.
# Например если магазин расположен в подпапке ***.ru/shop/
   try_files $uri =404;
    expires 14d;
    add_header Access-Control-Allow-Origin *;
    add_header Cache-Control public;
   root $root_path;
    location ~ [^/]\.ph(p\d*|tml)$ {
        try_files /does_not_exists @php;
    }
}

Правило поиска статических файлов для витрин. Например, если у Вас две витрины в разных подпапках: ***.ru и ***.ru/shop/

location @statics {

rewrite ^/(\w+)/(.*)$ /$2 break;

access_log off;

rewrite_log off;

expires 14d;

add_header Cache-Control public;

add_header Access-Control-Allow-Origin *;

root $root_path;

}

    location ~ \.php$  {
    fastcgi_index index.php;
    fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@***.ru";
    fastcgi_pass unix:/var/www/php-fpm/kyborg.sock;
    fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
    try_files $uri =404;
    include fastcgi_params;
    location ~ [^/]\.ph(p\d*|tml)$ {
        try_files /does_not_exists @php;
    }
}

add_header Strict-Transport-Security "max-age=31536000;";
listen ***;
ssl on;
ssl_certificate "/var/www/httpd-cert/***/***.ru_le1.crtca";
ssl_certificate_key "/var/www/httpd-cert/***/***.ru_le1.key";
ssl_ciphers EECDH:***;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_dhparam /etc/ssl/certs/dhparam4096.pem; 

}

Куда копать?, я так понимаю проблема в rewrite?

После некоторых манипуляций победил ошибку 404 и товар стал открываться, но пришел к ошибкам в файле func.php в строках 85 и 154, что это может означать?

Добрый день. На сколько я понял вы написали это про Varnish. Скажите за полтора года не поменялась ситуация? Varnish по прежнему не кеширует для залогиненых пользователй? при добавлении в корзину? Гуглил, но везде какие то обрывки информации и про этот нюанс вскользь…

Varnish умеет кэштровать умеет не кэштровать, смотря как его настроить. Вопрос скорее в том что произойдет при добавлении товара в корзину при посвеместном кэшировании? -Пользователь даже не увидит своего товара в корзине, так как ему придут закэшированные данные, в которых товара в корзине нет, да и залогиниться он не сможет по той же причине. Если вам нужно разгрузить сервак от однотипных вычислений, но при этом на нем много оперативы, попросите @ecomlabs настроить вам кей-валью хранилище и скидывайте туда все в плоть до выборок по базе.

Redis настроен. Но этого мало. Надо кешировать страницы.
Наверное куплю вот это https://www.cs-commerce.com/ru/full-page-cache-addon-for-cs-cart.html
Может кто-то сталкивался и прокоментирует.

Очень медленный MYSQL.
При том на VDS есть wordpress - летает. CS-Cart умирает. До минуты грузит страницу.
Уников 0-1.

В топе висит куча процессов apache2 при обычном обновлении главной страницы.

Куда копать? Куда смотреть? Где искать причины такой заторможенной работы?
Из “левых” плагинов только один. Отключал. Нет отличий.

Не правильно сконфигурирован VDS? Стоит из коробки на timeweb. Как сконфигурировать верно? Есть какой то чек-лист?

APC и Redis стоят.

APC вообще не рекомендуют. Если все же речь о APCu, то он не работает одновременно с Redis. Они взаимоисклячающие.
У нас OpCache для файлов и Redis для данных.

Вот мануал от карта.
Но у вас чтото уж очень тяжелые симптомы - несколько минут на страницу…
Попробуйте спросить поддержку хостинга.
и
включить отображение ошибок

Redis (для сессий) нормально работает с APCu. Эта связка в принципе рекомендуема.

Еще на Apache карт еле живой, желательно настроить Nginx c php-fpm и версией php 7.

у нас на хостинге 2 сайта на карте и когда включили APCu то он начал путать их данные, тут писал

я уже запутался/забыл в разнице apc и apcu и какие в них проблемы с каким php
поэтому делали по инструкции тут читали мы

а в конфиге вообще так. настраивали zahid.host


ну и все работает бодренько

Redis для session_backend, а APCu для cache_backend. При таком раскладе конфликта между ними не будет, но если на сервере два сайта, то могуть быть косяки, как у вас, да.

image

APC – это немного другое, он мертв и юзать его не надо.

Тестил эти фичи, с APCu небольшой прирост в скорости был, а вот Redis под сессии подходит для нагруженных проектов. В ином случае сессии и в БД можно хранить.

Кстати, у Redis из-за конфигурации CS Cart есть проблема с хранением корзин незарегистрированных пользователей – они очищаются через два часа (если два часа не заходить на сайт), но это решается увеличением ttl ключей сессий. Проверьте у себя.

Спасибо за подсказку! Это важный момент!

Apache на самом деле лучше менять на Nginx c php-fpm? Или это холивары и все можно настроить грамотно?

Да, лучше менять на Nginx. Тестировал скорость работы карта на двух веб-серверах, и на Nginx+php-fpm результаты были гораздо лучше.

1 лайк