LINUX.ORG.RU

nginx + apache22 + php5.3 = phpmyadmin не авторизуется


0

1

Настроен и работает прокси через nginx на апач. На апаче обрабатывается логика (php 5.3), nginx отдает статику. Все как обычно. Проблема только с phpmyadmin: не авторизуется. При попытке авторизации на http://server.dom/phpmyadmin/ идет редирект на http://server.dom/index.php с различными параметрами. Cookie устанавливаются по какой-то причине в /php-fcgi/. Авторизация на Wordpress и прочих CMS происходит удачно. Проблема только с phpmyadmin. Конфигурация nginx на этот домен:

server {
        listen       12.34.56.78:80;
        server_name server.dom;
        error_log /home/nks/www/server.dom/error.log;
        access_log /home/nks/www/server.dom/access.log combined;
                location / {
            proxy_pass http://127.0.0.1:80/;

            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            client_max_body_size 10m;
            client_body_buffer_size 128k;

            proxy_buffer_size 4k;
            proxy_buffers 4 32k;
            proxy_busy_buffers_size 64k;
            proxy_temp_file_write_size 64k;
        }

     location ~* ^(?!/phpmyadmin/).+\.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|xml|docx|xlsx)$ {
            root /home/nks/www/server.dom/htdocs/;
            index index.html index.php
            access_log off;
        }

        location ~ /\.ht {
            deny  all;
        }
    }
Вариант без (?!/phpmyadmin/).+\. так же не работает. Конфигурация апача http://pastebin.com/HMv0mEGP. Конфигурация mod_fcgid:
 <IfModule mod_fcgid.c>
    AddHandler  fcgid-script .php
    FcgidConnectTimeout 20
    FcgidBusyTimeout 60
    FcgidBusyScanInterval 61
    SocketPath /var/run/fcgidsock
    FcgidMaxProcessesPerClass 100
    FcgidMaxProcesses 400
    FcgidPassHeader Authorization
    FcgidPassHeader Proxy-Authorization
    FcgidPassHeader HTTP_AUTHORIZATION
    AddHandler php-fcgi .php
    Action php-fcgi /php-fcgi/php.sh
    Action application/x-httpd-fastphp /php-fcgi/php.sh
    Action application/x-httpd-php /php-fcgi/php.sh
    AddType application/x-httpd-fastphp     .php
        <Location /php-fcgi/>
                 Options ExecCGI FollowSymLinks
                 SetHandler fcgid-script
        </Location>
</IfModule>
Виртуальный хост:
<VirtualHost *:80>
    ServerAdmin admin@server.dom
    DocumentRoot "/usr/home/nks/www/server.dom/htdocs"
    ServerName server.dom
    SuexecUserGroup     nks nks
    Alias       /php-fcgi/      /usr/home/nks/www/server.dom/cgi-bin/
    ErrorLog "/usr/home/nks/www/server.dom/httpd-error.log"
    CustomLog "/usr/home/nks/www/server.dom/httpd-access.log" common
</VirtualHost>
Картинки в phpmyadmin отображаются (т.е. это http://forum.lissyara.su/viewtopic.php?f=3&t=25131 <- не эта проблема) Обработку логики необходимо сделать именно на стороне apache, а не с помощью nginx. Так же работает eaccelerator (пробовал отключать).

Какие будут мысли?

P.S. Аналогичный вопрос задавал http://forum.lissyara.su/viewtopic.php?f=3&t=31763 <-здесь - ответа нет до сих пор, а проблему решить собственноручно не удается =\


Ну стандартный вопрос: есть ли что в логах интересного? Как в nginx-овом так и в апачевском. Как по мне, то запрос просто к апачу не доходит.

Komintern ★★★★★ ()
Ответ на: комментарий от Komintern

Нет, в логах ничего кроме обращения к /phpmyadmin/index.php и дальше к /index.php?variables, где variables - GET переменные для phpmyadmin нет. Если бы было бы что-то интересное в логах - я бы сразу ими поделился.

Nks ()
Ответ на: комментарий от Nks

При том до apache запросы доходят. В логах nginx (в ошибках) вообще ничего нет. apache стоит с mod_evasive и mod_rpaf (видит реальные ip после проксирования nginx).

Nks ()
Ответ на: комментарий от Komintern

Хорошо, попробую в момент спада активности посещаемости.

Nks ()

патчить надо phpmyadmin чтобы работала авторизация http через fastcgi. по сути несколько строк добавить — все это есть в гугле

Rost ★★★★★ ()
Ответ на: комментарий от Rost

Пока что решения не нашел. Если знаете хотя бы описание патча - напишите пожалуйста.

Да, авторизация идет не через http-авторизацию, а через cookie (если я правильно вас понял). Имею ввиду, что в настройках phpmyadmin выставлена переменная $cfg['Servers'][$i]['auth_type'] = 'cookie';, а не $cfg['Servers'][$i]['auth_type'] = 'http';

Nks ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.