Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Правильный конфиг nginx


Recommended Posts

Перешерстил туеву кучу форумов. Переношу с хостинга на вдс сайт. Возникли проблемы, а именно не весь пхп-код выполняется. Подскажите какие проблемы в моём конфиге. Opencart 2.0

image.png.55a260f5e1bc7ac3f80c30f8c22ca163.png

 

image.thumb.png.c846f1dbcd4c057af7fa8b67354cbcf1.png

 

server {
    server_name td-domkom.ru www.td-domkom.ru;
    root /var/www/u0104241/data/www/td-domkom.ru; ## Web Root Directory
    index index.php index.html;

    access_log /var/log/nginx/myopencart_access.log;

    location /image/data {
        autoindex on;
    }
    location /admin {
        index index.php;
    }
    location / {
        try_files $uri @opencart;
    }
    location @opencart {
        rewrite ^/(.+)$ /index.php?_route_=$1 last;
    }


    location ~* \.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|\.php_ {
        deny all;
    }
    # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
    location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
    }
    location ~*  \.(jpg|jpeg|png|gif|css|js|ico)$ {
        expires max;
        log_not_found off;
    }

location ~ \.php$ {
    if (!-e $request_filename){
        rewrite ^/(.+)$ /index.php?_route_=$1 last;
    }
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;

    fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_intercept_errors on;
    fastcgi_buffer_size 16k;
    fastcgi_buffers 4 16k;
}

 

Надіслати
Поділитися на інших сайтах


Добавьте в php.ini(или измените значение)

short_open_tag = on

Змінено користувачем htmlart
Надіслати
Поділитися на інших сайтах


Только что, Taimin сказал:

Можете скинуть норм конф для 2.0?

Напишите хостеру. У вас, скорее всего, отключены короткие теги.

Надіслати
Поділитися на інших сайтах


6 минут назад, Taimin сказал:

Добавил

рестарт сервисам всем сделали?

Надіслати
Поділитися на інших сайтах

2 минуты назад, Taimin сказал:

Да я сам хостер) сайт на вдс

 

посмотри в phpinfo(), что будет у short_open_tag

Надіслати
Поділитися на інших сайтах


17 минут назад, Taimin сказал:

Да я сам хостер) сайт на вдс

Забавно )

 

25 минут назад, htmlart сказал:

short_open_tag = on

А что есть еще такое во 2-ой версии? У меня отключены и установлена версия 2.3.0.2, вроде все работает.

Надіслати
Поділитися на інших сайтах


А если взять из статьи какой-нибудь готовый вариант? Я например погуглил 'opencart nginx config' и по первой ссылке похожий на Ваш конфиг, но есть отличия, может в них дело?

Надіслати
Поділитися на інших сайтах


как пример, кусок моего

    location / {
        try_files $uri $uri/ @opencart;
        location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
            expires     max;
        }

        location ~ [^/]\.php(/|$) {
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            if (!-f $document_root$fastcgi_script_name) {
                return  404;
            }

            if_modified_since off;
            fastcgi_pass    127.0.0.1:9561;
            fastcgi_index   index.php;
            fastcgi_pass_header Last-Modified;
            include         /etc/nginx/fastcgi_params;
        }
    }

    location @opencart {
        rewrite ^/(.+)$ /index.php?_route_=$1 last;
    }
Надіслати
Поділитися на інших сайтах

А можете подсказать почему у меня в луп уходит?

https://www.td-domkom.ru/my-account/

1 hour ago, ibond said:

как пример, кусок моего


    location / {
        try_files $uri $uri/ @opencart;
        location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
            expires     max;
        }

        location ~ [^/]\.php(/|$) {
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            if (!-f $document_root$fastcgi_script_name) {
                return  404;
            }

            if_modified_since off;
            fastcgi_pass    127.0.0.1:9561;
            fastcgi_index   index.php;
            fastcgi_pass_header Last-Modified;
            include         /etc/nginx/fastcgi_params;
        }
    }

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

 

Надіслати
Поділитися на інших сайтах


1 час назад, Taimin сказал:

А можете подсказать почему у меня в луп уходит?

тут надо смотреть все настройки, сейчас гадать нет возможности, пример location – рабочий, взят с рабочего сайта

все в ваших (admin'а) руках

 

Надіслати
Поділитися на інших сайтах

1 час назад, Taimin сказал:

А можете подсказать почему у меня в луп уходит?

https://www.td-domkom.ru/my-account/

Смотрю уходит если только в конце строки слеш

Если перейти https://www.td-domkom.ru/my-account вот так, тогда праивльно переадресовывает на страницу авторизации.

 

Посмотрите в первую очередь модуль, какой обрабатывает ЧПУ и переадресацию делает. Мне кажется там проблема. Или, в самом ключе my-account, возможно втавлен в базу со слешем.

Надіслати
Поділитися на інших сайтах

15 hours ago, Fedka said:

Смотрю уходит если только в конце строки слеш

Если перейти https://www.td-domkom.ru/my-account вот так, тогда праивльно переадресовывает на страницу авторизации.

 

Посмотрите в первую очередь модуль, какой обрабатывает ЧПУ и переадресацию делает. Мне кажется там проблема. Или, в самом ключе my-account, возможно втавлен в базу со слешем.

Что интересно, любая ссылка со слешем делает переадресацию

image.thumb.png.e038b8b7c8c67e192ee9a0e1fccf4456.png

Надіслати
Поділитися на інших сайтах


2 часа назад, Taimin сказал:

Если добавить слеш в конце он хочет перейти по ссылке

 

Давайте отделим пока редиректы, которые происходят в движке Opencart (СЕО ПРО и еже с ними). Напишите в index.php первой строчкой:

exit(print_r($_GET, true));

У нас получится проверка только nginx-а. Даже можете пока вообще убрать Opencart, оставить только index.php с такой записью

При переходе по ссылке https://www.td-domkom.ru/my-account/ мы должны получить в GET параметрах:

Array ( [_route_] => my-account/ ) 

При переходе по ссылке https://www.td-domkom.ru/my-account, т.е. без слеша на конце, получить в GET параметрах:

Array ( [_route_] => my-account ) 

Можете еще примеры придумать, если все ок, тогда проблема уже в php, т.е. в движке Opencart и там надо смотреть СЕО модули. Если такого результата не получается, значит проблема в конфиге nginx

Змінено користувачем i3bepb
Все сразу не отладить
Надіслати
Поділитися на інших сайтах


48 minutes ago, i3bepb said:

 

Давайте отделим пока редиректы, которые происходят в движке Opencart (СЕО ПРО и еже с ними). Напишите в index.php первой строчкой:


exit(print_r($_GET, true));

У нас получится проверка только nginx-а. Даже можете пока вообще убрать Opencart, оставить только index.php с такой записью

При переходе по ссылке https://www.td-domkom.ru/my-account/ мы должны получить в GET параметрах:


Array ( [_route_] => my-account/ ) 

При переходе по ссылке https://www.td-domkom.ru/my-account, т.е. без слеша на конце, получить в GET параметрах:


Array ( [_route_] => my-account ) 

Можете еще примеры придумать, если все ок, тогда проблема уже в php, т.е. в движке Opencart и там надо смотреть СЕО модули. Если такого результата не получается, значит проблема в конфиге nginx

Array ( [_route_] => my-account )

 

я получил вот такую картинку

Надіслати
Поділитися на інших сайтах


13 минут назад, Taimin сказал:

Array ( [_route_] => my-account )

 

я получил вот такую картинку

 

В каком случае? Оба варианта попробовали (со слешем на конце и без него)?

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.