Автор Тема: Установка Lego на Ngnix  (Прочитано 12966 раз)

sumynjc

  • Гость
Установка Lego на Ngnix
« : Марта 20, 2012, 09:09:08 pm »
Решил перейти на высокопроизводительный сервер без апача.
Используется Linux Debian+Ngnix+php-fpm

При установке на такой сервер появляется куча ошибок. Так, как фишки от апача, прописанные в .htaccess, ессно, не работают. Нужно все это перевести на язык, понятный Ngnix в конфигурации сайта.

Кто поможет это осуществить? Или уже это делал?

nictboom

  • Гость
Re: Установка Lego на Ngnix
« Ответ #1 : Марта 21, 2012, 01:19:23 am »
не мало сайтов работает на Ngnix с lego, и проблем нет, без всяких правок.
у себя, максимум, убрал/закоментил Options -Indexes.


sumynjc

  • Гость
Re: Установка Lego на Ngnix
« Ответ #2 : Марта 21, 2012, 01:31:40 pm »
После установки на главной Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Helsinki' for 'EET/2.0/no DST' instead in /home/skazkatk/www/core/core_errors.php on line 7

И "Приносим наши извинения"
В админке тоже сверху предупреждение про таймзону, ЧПУ отключил.

Вот конфиг сайта (пока в режиме отладки он не виден для внешнего мира, там еще проблемы с ДНС):

# PHP-FPM (backend)
upstream php-fpm {
   server 127.0.0.1:9000;
}

# Сервера кэширования
#upstream memcaches {
#   server 127.0.0.1:11211;
#}

# Конфиг Nginx (frontend)
server {

  # Защита от бага http://forum.nginx.org/read.php?2,154025,154036
   server_name_in_redirect off;

  # Порт, принимаемые HOST и путь к сайту
  listen 80;
  server_name   skazkatk.sumy.ua
      *.skazkatk.sumy.ua;

  set $www_folder '/home/skazkatk/';
  set $root_path '$www_folder/www';
  root $root_path;
  index index.htm index.html index.php;

  # Запросы непосредственно .php-файлов, например index.php (не кэшируются)
  location ~ \.php$ {
   include /etc/nginx/fastcgi_params;
   fastcgi_param SCRIPT_FILENAME $root_path/$fastcgi_script_name;
   fastcgi_param DOCUMENT_ROOT $root_path; # этот параметр нужен несмотря на root в секции server
        fastcgi_pass php-fpm;
  }
  # Копия предыдущего для internal переадресации
  location @phpscripts {
   include /etc/nginx/fastcgi_params;
   fastcgi_param SCRIPT_FILENAME $root_path/$fastcgi_script_name;
   fastcgi_param DOCUMENT_ROOT $root_path; # этот параметр нужен несмотря на root в секции server
        fastcgi_pass php-fpm;
  }

 # Запросы отдельных php-файлов (кэшируются)
 #location /utils {
 #default_type text/html;
 #root  $root_path;
 #set             $memcached_key   'nginx_$host$uri?$args';
 #memcached_pass  memcaches;
 #error_page      404 502 504 405 = @phpscripts;
 #}

 # Остальные запросы также идут на PHP-FPM, если $uri не существует (через memcache)
  location / {
     default_type text/html;
     root  $root_path;

     if (!-e $request_filename) {
        return 404;
     }

     error_page      404 502 504 403 405 = @php;
  }

  # Веб-приложение
  location @php {
   include /etc/nginx/fastcgi_params;
   fastcgi_param SCRIPT_FILENAME $root_path/index.php;
        fastcgi_pass php-fpm;
  }

  # Переопеределение 502 ошибки
  error_page   502 = /502.htm;
  location = /502.htm {
         root  $www_folder;
  } 

  # Для js, css, swf, ico и т.д.
  location ~* \.(css|js|swf|ico|png|jpg|gif|jpeg)$ {
   root  $root_path;
   access_log   off;
        expires      30d;
  }

  # Защита от просмотра .htaccess и .htpasswd файлов
  location ~ /\.ht {
   deny  all;
  }

  # Защита от просмотра svn-файлов
  location ~ /.svn/ {
    deny all;
  }

  # Статус запросы (/status) и пинг(/ping) запросы от системы мониторинга
  location ~ ^/(status|ping)$ {
      include fastcgi_params;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
      allow 127.0.0.1;
      deny all;
  }
}

sumynjc

  • Гость
Re: Установка Lego на Ngnix
« Ответ #3 : Марта 21, 2012, 11:22:26 pm »
Я аж удивился: все заработало после изменения всех файлов php.ini в подпапках папки  в etc/php5, прописал там date.timezone = "Europe/Kiev"
Осталось самая малость - прописать правила для ЧПУ. Это можно сделать или как?
« Последнее редактирование: Марта 21, 2012, 11:24:20 pm от sumynjc »

sumynjc

  • Гость
Re: Установка Lego на Ngnix
« Ответ #4 : Марта 22, 2012, 09:30:54 pm »
Щиро дякую, все получилось, только вот пришлось чистить от лишнего мусора типа
}
if ($rule_44 = ""){
Иначе нжникс пугается неизвестных переменных и боится запускаться )

sumynjc

  • Гость
Re: Установка Lego на Ngnix
« Ответ #5 : Января 18, 2013, 03:47:59 am »
Кстати, имейте в виду, что этот сервис неправильно обрабатывает пробелы идущие вместо табуляции.

sumynjc

  • Гость
Re: Установка Lego на Ngnix
« Ответ #6 : Января 25, 2013, 01:09:13 pm »
Еще  один важный вопрос по nginx. Что-то у меня чудит скрипт магазина и картинки категорий при загрузке не подписывает с правильным расширением *.jpg а обзывает их *-jpg. Оно бы на апаче и так работало, только в nginx с этим строго и такие файлы не отдаются, то есть не видно их. Как это лучше и проще исправить? Спасибо.

bille

  • Гость
Re: Установка Lego на Ngnix
« Ответ #7 : Января 25, 2013, 06:54:24 pm »
Еще  один важный вопрос по nginx. Что-то у меня чудит скрипт магазина и картинки категорий при загрузке не подписывает с правильным расширением *.jpg а обзывает их *-jpg. Оно бы на апаче и так работало, только в nginx с этим строго и такие файлы не отдаются, то есть не видно их. Как это лучше и проще исправить? Спасибо.
Была у меня такая проблема на 5.02 в 6.1 такой проблемы уже нет

sumynjc

  • Гость
Re: Установка Lego на Ngnix
« Ответ #8 : Января 25, 2013, 08:34:31 pm »
Кроме обновления никак не решить этот вопрос? У меня не получилось разобраться с кодировкой utf-8 после обновления  - квадратики вместо букв кругом ((

nictboom

  • Гость
Re: Установка Lego на Ngnix
« Ответ #9 : Января 25, 2013, 11:42:01 pm »
includes/admin/sub/catalog_categories_edit.php:
            //upload new photo
            $picture_name = to_url($_FILES["picture"]["name"]);
заменить на:
            //upload new photo
            $picture_name = file_url($_FILES["picture"]["name"]);


sumynjc

  • Гость
Re: Установка Lego на Ngnix
« Ответ #10 : Января 27, 2013, 05:11:56 pm »
Спасибо, pehser, выздоравливайте.

Оффлайн slon362

  • Случайный Прохожий
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: Установка Lego на Ngnix
« Ответ #11 : Декабря 06, 2013, 08:22:56 pm »
День добрый.
Не могу правильно перевести правила на nginx. 404 на адресах галереи и контактов
/info/kontakty/  /gallery/
Подскажите где ошибка?

location / {
  if ($http_host ~* "^www\.domen\.net$"){
    rewrite ^(.*)$ http://domen.net/$1 redirect;

  rewrite core/js/(.*)\.js$ /core/jscss.php last;
  rewrite css/(.*).css$ /core/jscss.php last;
  rewrite payment/$ /index.php?payment last;
  rewrite (.*)/(.*)/&sort=(.*)&order=(.*)$ /index.php?$1_hurl=$2&sort=$3&order=$4 last;
  rewrite (.*)/(.*)/&offset=(.*)$ /index.php?$1_hurl=$2&offset=$3 last;
  rewrite (.*)/(.*)/&show_all=yes$ /index.php?$1_hurl=$2&show_all=yes last;
  rewrite ru/$ /index.php?new_language=0 last;
  rewrite en/$ /index.php?new_language=1 last;
  rewrite info/(.*)$ /index.php?aux_pages=$1 last;
  rewrite contact/&send_result=(.*)$ /index.php?contact&send_result=$1 last;
  rewrite gallery/$ /index.php?gallery last;
  rewrite contact/$ /index.php?contact last;
  rewrite service/$ /index.php?aux_page=aux2 last;
  rewrite pricelist/([0-9]*)/$ /index.php?show_price=$1 last;
  rewrite pricelist/$ /index.php?show_price=yes last;
  rewrite feed.xml$ /core/core_rss.php last;
  rewrite about/$ /index.php?aux_page=aux1 last;
  rewrite grafik/$ /index.php?aux_page=aux1 last;
  rewrite adress/$ /index.php?aux_page=aux1 last;
  rewrite sitemap\.xml$ /core/sitemap.php last;
  rewrite sitemap/$ /index.php?sitemap last;
  rewrite admin$ /admin.php last;
  rewrite admin/$ /admin.php last;
  rewrite add2cart/(.*)$ /index.php?shopping_cart&add2cart=$1 last;
  rewrite cart/$ /index.php?shopping_cart=yes last;
  rewrite cart/&remove=(.*)$ /index.php?shopping_cart=yes&remove=$1 last;
  rewrite cart/&clear$ /index.php?shopping_cart=yes&clear_cart=yes last;
  rewrite cart/order/$ /index.php?order_custinfo=yes last;
  rewrite cart/order_placed/$ /index.php?order_placement_result=1 last;
  rewrite printorder/$ /core/core_printorder.php last;
  rewrite pd4/$ /core/print_pd4.php last;
  rewrite yandex\.(xml|yml)$ /core/core_yml.php last;
  rewrite search_expanded/ /index.php?search_expanded=1 last;
}

location /catalog {
  rewrite ^/catalog/(.*)/about/$ /index.php?about&category=$1/ last;
  rewrite ^/catalog/(.*)$ /index.php?catalog_hurl=$1 last;
}

location /brand {
  rewrite ^/brand/(.*)/about/$ /index.php?about&brands=$1/ last;
  rewrite ^/brand/(.*)/(.*) /index.php?brand=$1/$2 last;
}

location /product {
  rewrite ^/product/(.*)$ /index.php?product_hurl=$1 last;
}

location /news {
  rewrite ^/news/(.*)$ /index.php?news&news=$1 last;
}

location /pages {
  rewrite ^/pages/(.*)$ /index.php?pages&pages=$1 last;
}

location /tags {
  rewrite ^/tags/(.*)$ /index.php?tags_hurl=$1 last;
}

location = /price.xls {
  rewrite ^(.*)$ /core/core_xls.php last;
}

location ~ .php$ {
    fastcgi_pass  localhost:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /var/www/domen$fastcgi_script_name;
    fastcgi_param   SCRIPT_NAME             $fastcgi_script_name;
    fastcgi_param QUERY_STRING    $query_string;
    fastcgi_param REMOTE_ADDR $remote_addr;
    fastcgi_param REQUEST_METHOD  $request_method;
    fastcgi_param CONTENT_TYPE    $content_type;
    fastcgi_param CONTENT_LENGTH  $content_length;
}
}

Оффлайн Heisenberg

  • Спец
  • ***
  • Сообщений: 157
    • Просмотр профиля
Re: Установка Lego на Ngnix
« Ответ #12 : Декабря 06, 2013, 10:26:32 pm »
начните с этого