ImageCMS Shop + NGINX

HS!

Мой дом здесь!
Заблокирован
Регистрация
3 Мар 2013
Сообщения
355
Реакции
355
  • Автор темы
  • Заблокирован
  • #1
Доброго времени суток
хочу поговорить про ImageCMS Shop + NGINX.
Не так давно я слез с апача и перешёл на NGINX
Сначала стоял Apache22 потом Apache 24 (лучше конечно 24) но всё же грузило сервер - во общем меня такое не устаревало.
Установил я nginx настроил конфиг и ЧПУ для ImageCMS Shop. Сайтик запорхал, сервак попустило,

но вот никак не могу запаролить админку при помощи nginx auth_basic + php-fpm

админка то работает при помощи ЧПУ и ни укак не мнгу подобрать правило к site.ru/admin

Привожу пример моего конфига nginx:

Код:
        server {
listen 80;
charset utf-8;

    server_name site.ru;

    if ($host ~* ^www\.(.+)$) {
    set $newhost $1;
    rewrite ^ http://$newhost$request_uri permanent;
}
    index index.php index.html index.htm;
    error_log  /log/error.log;
  
        autoindex on;
         autoindex_exact_size on;
        autoindex_localtime on;

    location / {
        root /www/public_html;
        if (!-e $request_filename) {
        rewrite ^(.+)$ /index.php?q=$1 last;
    }
  
    }
  
    location ~* \.(css|js|swf|ico|png|jpg|gif|jpeg)$ {
root   /www/public_html;
access_log   off;
expires      30d;
}
  
  
location ~ \.php$ {
            root           /www/public_html;
            fastcgi_pass   unix:/tmp/php5-fpm.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
            fastcgi_param PHP_VALUE "memory_limit = 700M";
        }


     location ~ /\.ht
        {
                deny all;
        }

                                }
 
Последнее редактирование:
Так у вас и нету секции аутентификации, конечно работать не будет.


Код:
location /admin {
    auth_basic           "Admin Panel";
    auth_basic_user_file conf/htpasswd;
}

htpasswd само собой надо будет создать.
 
  • Автор темы
  • Заблокирован
  • #3
Так у вас и нету секции аутентификации, конечно работать не будет.


Код:
location /admin {
    auth_basic           "Admin Panel";
    auth_basic_user_file conf/htpasswd;
}

htpasswd само собой надо будет создать.
да такое правило я создавал. логи и пароль вводишь авторизовываешся и всё... самой то папки /admin/ нет - это ЧПУ
поэтому просто белый экран
 
  • Автор темы
  • Заблокирован
  • #4
люди выручайте - как закрыть в этой ЦМС админку средствами запароливания с помощью nginx
/admin/
но самой то папки admin нет. так как это ЧПУ
и я в растерянности.
спасите помогите.
 
Могу предложить такой костыль
location ^~ /admin/ {
auth_basic "Admin Panel";
auth_basic_user_file /var/www/.htpasswd;
error_page 404 = @auth_ok;
}
location @auth_ok {
rewrite ^(.+)$ /index.php?q=$1 last;
}
должно заработать

про это я не понял
вот сюда
Код:
location ~ .php$ {
root /var/www/yoursite.com;
try_files $uri =404;
fastcgi_pass unix:/tmp/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_param AUTH_USER $remote_user;
fastcgi_param REMOTE_USER $remote_user;
}
их добавь, тогда после авторизации в /admin получишь переменные
_SERVER["REMOTE_USER"]
_SERVER["AUTH_USER"]
без них будет только
_SERVER["PHP_AUTH_USER"]
_SERVER["PHP_AUTH_PW"]
разницу обьясняют тут
Для просмотра ссылки Войди или Зарегистрируйся

У меня лимит сообщений ((((
 
Последнее редактирование:
  • Автор темы
  • Заблокирован
  • #6
Вот что я добавляю

Код:
location ^~ /admin/ {
auth_basic "Restricted";
auth_basic_user_file /var/www/.htpasswd;

        location ~ .php$ {
            root           /var/www/yoursite.com;
            try_files $uri =404;
            fastcgi_pass   unix:/tmp/php5-fpm.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
           
        }
}


перехожу на site.com/admin
мне вылетает окошко введите пароль
ввожу пороль и логин
и выдаёт
404 Not Found


если прописать
if (!-e $request_filename) {
rewrite ^(.+)$ /index.php?q=$1 last;
}

то заходит нормально но пароль не просит =))))



В локейшн к пхп допили 2 строки и должно заработать
fastcgi_param AUTH_USER $remote_user;
fastcgi_param REMOTE_USER $remote_user;
про это я не понял
 
Последнее редактирование модератором:
  • Автор темы
  • Заблокирован
  • #8
Вот такое навоял и помогло
всё работает 100%
Код:
#Паролим вход в админку.
       location /admin {
                       auth_basic "Restricted";
                       auth_basic_user_file /www/site.com/.htpasswd;
                       try_files $uri $uri/ /index.php;
  }
         location ~ ^/admin(.+\.php)$ {
                        fastcgi_split_path_info ^(.+\.php)(/.+)$;
                        fastcgi_pass unix:/var/run/php5-fpm.sock;
                        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
 
Назад
Сверху