Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Overseer
сержант
Сообщения: 221
Зарегистрирован: 2008-03-20 23:00:42

Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация

Непрочитанное сообщение Overseer » 2008-03-20 23:27:55

Apache2.2+PHP5(FastCGI)
Не работает HTTP-авторизация =( Из панели DirectAdmin или просто по урлу не пускает в phpmyadmin (не принимает логин/пароль).
Опции -pass-header HTTP_AUTHORIZATION -pass-header Authorization -pass-header Cookie что-то не помогают.. :cry:
Какие идеи?..

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация

Непрочитанное сообщение hizel » 2008-03-20 23:42:32

идея предоставить логи\конфиги :)

телепаты всем табуном упрыгали на юг :|
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Overseer
сержант
Сообщения: 221
Зарегистрирован: 2008-03-20 23:00:42

Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация

Непрочитанное сообщение Overseer » 2008-03-21 0:12:41

Код: Выделить всё

# из httpd.conf
LoadModule fastcgi_module        /usr/lib/apache/mod_fastcgi.so

User apache
Group apache

ServerAdmin admin@localhost
UseCanonicalName Off
DocumentRoot "/var/www/html"
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
SuexecUserGroup webapps webapps

Код: Выделить всё

# из fcgi.conf
<IfModule mod_fastcgi.c>

        FastCgiConfig -singleThreshold 100  -autoUpdate -idle-timeout 90 -pass-header HTTP_AUTHORIZATION -pass-header Author
        AddHandler php-fastcgi5 .php

        #This tell php to launch php-fcgi wrapper when .php5 files  are requested.
        Action php-fastcgi5 /cgi-bin/php-fcgi

        <Directory "/usr/local/php5-cgi/bin/">
           AllowOverride None
           Options ExecCGI -Includes -MultiViews -Indexes
           Order allow,deny
           Allow from all
        </Directory>

        <Files *.ini>
          Order deny,allow
          Deny from All
        </Files>

</IfModule>

Код: Выделить всё

23:09 root ~> cat /var/www/cgi-bin/php-fcgi
#!/bin/sh
PHP_FCGI_CHILDREN=4
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_MAX_REQUESTS
exec /usr/local/php5-cgi/bin/php-cgi
в логах чистенько, без ошибок :(
что еще показать?

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация

Непрочитанное сообщение zg » 2008-03-21 8:38:25

Overseer писал(а):Apache2.2+PHP5(FastCGI)
Не работает HTTP-авторизация =( Из панели DirectAdmin или просто по урлу не пускает в phpmyadmin (не принимает логин/пароль). Какие идеи?..
яндекс! http://www.yandex.ru/yandsearch?text=HT ... +validuser

Overseer
сержант
Сообщения: 221
Зарегистрирован: 2008-03-20 23:00:42

Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация

Непрочитанное сообщение Overseer » 2008-03-21 18:27:51

Тестовый скрипт:

Код: Выделить всё

<?php
  if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Текст, отправляемый в том случае,
    если пользователь нажал кнопку Cancel';

echo "<pre>";
print_r($_SERVER);
echo "</pre>";

    exit;
  } else {
    echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
    echo "<p>Вы ввели пароль {$_SERVER['PHP_AUTH_PW']}.</p>";
echo "\n\n<pre>";
print_r($_SERVER);
echo "</pre>";

  }
?>
Выводит:
Hello 112233.

Вы ввели пароль 321.

Array
(
[ORIG_SCRIPT_NAME] => /cgi-bin/php-fcgi
[ORIG_PATH_TRANSLATED] => (путь к скрипту)
[ORIG_PATH_INFO] => /a.php
[ORIG_SCRIPT_FILENAME] => (путь)/public_html/cgi-bin/php-fcgi
[GATEWAY_INTERFACE] => CGI/1.1
[HTTP_AUTHORIZATION] => Basic MTEyMjMzOjMyMQ==
[REMOTE_ADDR] => 77.77.77.77
[QUERY_STRING] =>
[REMOTE_PORT] => 7777
[DOCUMENT_ROOT] => (путь)/public_html
[HTTP_USER_AGENT] => Mozilla/9.0
[SERVER_SIGNATURE] => Apache/mod_fastcgi

[HTTP_ACCEPT] => */*
[SCRIPT_FILENAME] => (путь)/public_html/test.php
[HTTP_HOST] => хост
[REDIRECT_HANDLER] => php-fastcgi5
[REQUEST_URI] => /test.php
[HTTP_UA_CPU] => x86
[SERVER_SOFTWARE] => Apache/mod_fastcgi
[HTTP_CONNECTION] => Keep-Alive
[PHP_FCGI_MAX_REQUESTS] => 5000
[HTTP_COOKIE] => PHPSESSID=c46fc65c890b8debed6042bc2bc11e03
[REDIRECT_URL] => /test.php
[PATH] => /usr/local/bin:/usr/bin:/bin
[HTTP_ACCEPT_LANGUAGE] => ru
[SERVER_PROTOCOL] => HTTP/1.1
[HTTP_ACCEPT_ENCODING] => gzip, deflate
[REDIRECT_STATUS] => 200
[REQUEST_METHOD] => GET
[SERVER_ADMIN] => webmaster@хост
[SERVER_ADDR] => 11.11.11.11
[PHP_FCGI_CHILDREN] => 4
[PWD] => (путь)/public_html/cgi-bin
[SERVER_PORT] => 80
[SCRIPT_NAME] => /test.php
[SERVER_NAME] => хост
[PHP_SELF] => /test.php
[PHP_AUTH_USER] => 112233
[PHP_AUTH_PW] => 321
[REQUEST_TIME] => 1206093090
[argv] => Array
(
)

[argc] => 0
)
Вроде бы как все должно работать, а вот суко phpmyadmin не работает с авторизацией =(
Последний раз редактировалось Overseer 2008-03-21 18:36:26, всего редактировалось 1 раз.

Overseer
сержант
Сообщения: 221
Зарегистрирован: 2008-03-20 23:00:42

Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация

Непрочитанное сообщение Overseer » 2008-03-21 18:31:09

А вот дамп из phpmyadmin'а:
Данные для входа не верны. В доступе отказано.

Array
(
[SCRIPT_NAME] => /phpmyadmin/index.php
[ORIG_SCRIPT_NAME] => /cgi-bin/php-fcgi
[ORIG_PATH_TRANSLATED] => /var/www/html/phpMyAdmin/index.php
[ORIG_PATH_INFO] => /phpmyadmin/index.php
[SCRIPT_FILENAME] => /var/www/html/phpMyAdmin/index.php
[ORIG_SCRIPT_FILENAME] => /var/www/cgi-bin/php-fcgi
[GATEWAY_INTERFACE] => CGI/1.1
[HTTP_IF_MODIFIED_SINCE] => Sat, 08 Dec 2007 12:47:23 GMT
[REMOTE_ADDR] => 77.77.77.77
[QUERY_STRING] =>
[REMOTE_PORT] => 7777
[DOCUMENT_ROOT] => /var/www/html
[HTTP_USER_AGENT] => Mozilla
[SERVER_SIGNATURE] => Apache

[HTTP_ACCEPT] => */*
[HTTP_HOST] => 11.11.11.11
[REDIRECT_HANDLER] => php-fastcgi5
[REQUEST_URI] => /phpmyadmin/
[HTTP_UA_CPU] => x86
[SERVER_SOFTWARE] => Apache
[HTTP_CONNECTION] => Keep-Alive
[PHP_FCGI_MAX_REQUESTS] => 5000
[HTTP_COOKIE] => pmaCookieVer=4; phpMyAdmin=2u9zrAFhfCBRRuCWt6KJM6FVcY3
[REDIRECT_URL] => /phpmyadmin/index.php
[PATH] => /usr/local/bin:/usr/bin:/bin
[HTTP_ACCEPT_LANGUAGE] => ru
[SERVER_PROTOCOL] => HTTP/1.1
[HTTP_ACCEPT_ENCODING] => gzip, deflate
[REDIRECT_STATUS] => 200
[REQUEST_METHOD] => GET
[SERVER_ADMIN] => webmaster@localhost
[SERVER_ADDR] => 77.77.77.77
[PHP_FCGI_CHILDREN] => 4
[PWD] => /var/www/cgi-bin
[SERVER_PORT] => 80
[SERVER_NAME] => 77.77.77.77
[PHP_SELF] => /phpmyadmin/index.php
[REQUEST_TIME] => 1206092730
[argv] => Array
(
)

[argc] => 0
)

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация

Непрочитанное сообщение zg » 2008-03-21 18:41:34

Overseer писал(а):Вроде бы как все должно работать, а вот суко phpmyadmin не работает с авторизацией =(
у меня пашет на папке с pma
AuthType Basic
AuthName "Login, please"
AuthUserFile "/usr/www/pma/.htpasswd"
Require valid-user

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация

Непрочитанное сообщение Alex Keda » 2008-03-21 18:52:24

2 zg
вы спутали апачевую и пхп базовую...
========
вопщем.. у меня тоже не пашет.
причин не знаю =(
Убей их всех! Бог потом рассортирует...

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация

Непрочитанное сообщение zg » 2008-03-21 20:52:22

lissyara писал(а):2 zg
вы спутали апачевую и пхп базовую...
:) а в чём разница? нет такого понятия пхп базовая авторизация, авторизует апач, а не пхп

Код: Выделить всё

Array
(
    [AUTH_TYPE] => Basic
    [CHARSET] => none
    [CHARSET_DETERMINED_BY] => UserAgent
    [CHARSET_HTTP_METHOD] => http://
    [CHARSET_SERVER_NAME] => 127.0.0.1:80
    [CHARSET_SERVER_PORT] => 80
    [DOCUMENT_ROOT] => /
    [HTTP_ACCEPT] => image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, */*
    [HTTP_ACCEPT_LANGUAGE] => ru
    [HTTP_CONNECTION] => Keep-Alive
    [HTTP_HOST] => xxxx
    [HTTP_USER_AGENT] => Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)
    [PATH] => /sbin:/bin:/usr/sbin:/usr/bin
    [REMOTE_ADDR] => xxxx
    [REMOTE_PORT] => 1481
    [REMOTE_USER] => user
    [SCRIPT_FILENAME] => p.php
    [SERVER_ADDR] => 
    [SERVER_ADMIN] => 
    [SERVER_NAME] => 
    [SERVER_PORT] => 80
    [SERVER_SIGNATURE] => Apache/1.3.34 Server at Port 80

    [SERVER_SOFTWARE] => Apache/1.3.34 (Unix) PHP/4.4.4 mod_ssl/2.8.25 OpenSSL/0.9.7e-p1 rus/PL30.22
    [SOURCE_CHARSET] => none
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => GET
    [QUERY_STRING] => 
    [REQUEST_URI] => /pma/p.php
    [SCRIPT_NAME] => /pma/p.php
    [PATH_TRANSLATED] => /***/p.php
    [PHP_SELF] => /pma/p.php
    [PHP_AUTH_USER] => user
    [PHP_AUTH_PW] => *****
    [argv] => Array
        (
        )

    [argc] => 0
)
пхп НЕ УМЕЕТ, ни авторизовать, ни генерить HTTP-ошибки, он может только ФОРМИРОВАТЬ HTTP-заголовки посредствам функции header() или я заблуждаюсь? :wink:


Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация

Непрочитанное сообщение Alex Keda » 2008-03-21 22:31:24

не с путал.
просто в одном случае заголовки принимает и передаёт тока апач, а во втором до php банально не все заголовки доходят.
Убей их всех! Бог потом рассортирует...

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация

Непрочитанное сообщение zg » 2008-03-22 5:56:22

lissyara писал(а):не с путал.
просто в одном случае заголовки принимает и передаёт тока апач, а во втором до php банально не все заголовки доходят.
дак в этом и дело, вы сейчас ищете скрипт, а заблыли о том, что CGI и мод-пхп работают по-разному, CGI вообще не знает ни заголовки ни кто такой апач, ни как с ним работать?.... в режиме CGI глобальные массивы вообще не заполняются, кроме _SERVER, а он на половину. Вы хотите работать с CGI-скриптом как с обычным мод-пхп?... так не получится, максимум можно выдернуть переменную из окружения.

Рыть надо в сторону http://www.php.net/manual/ru/function.getenv.php

Overseer
сержант
Сообщения: 221
Зарегистрирован: 2008-03-20 23:00:42

Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация

Непрочитанное сообщение Overseer » 2008-03-22 15:17:27

Пардоньте, приведенный мною тестовый скрипт test.php работает ТОЛЬКО при использовании хтакцесс-файла:

Код: Выделить всё

14:06 root ~> cat .htaccess
RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
А вот в phpmyadmin такая по-дурному завернутая авторизация, что я не расковырял ее еще :?
Но проблема похоже аналогичная, заголовок не попадает до скрипта....

Overseer
сержант
Сообщения: 221
Зарегистрирован: 2008-03-20 23:00:42

Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация

Непрочитанное сообщение Overseer » 2008-03-23 14:02:13

Скачал новый phpmyadmin, распаковал его в юзерскую папку (виртхост) и, о, чудо, он работает. НО, когда я скопировал его в /var/www/html/phpmyadmin/ - он там НЕ работает. :twisted:
Не могу понять почему :?: :roll:
Вроде бы не нахожу чем принципиально отличается основной конфиг от кофига виртхоста.. :oops:
.htaccess и php-cgi те же самые, права правильные выставлены..
Бред какой-то .... :cry:

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация

Непрочитанное сообщение Alex Keda » 2008-03-23 14:33:41

что пишет когда не работает?
Убей их всех! Бог потом рассортирует...

Overseer
сержант
Сообщения: 221
Зарегистрирован: 2008-03-20 23:00:42

Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация

Непрочитанное сообщение Overseer » 2008-03-23 14:55:17

Да ничего не пишет (несколько раз спрашивает пароль и потом выдает "Данные для входа не верны. В доступе отказано."), такое впечатление, что заголовки не попадают в скрипт (а так и есть), но причину не могу понять.. В логах чисто.
:twisted:

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация

Непрочитанное сообщение zg » 2008-03-23 20:03:06

Overseer писал(а):такое впечатление, что заголовки не попадают в скрипт (а так и есть), но причину не могу понять..
а думать не пробовали? или хотя бы читать, что пишут?

первый вариант (думать) - что такое CGI-скрипт? обычный исполняемый файл, STDOUT, которого отдаётся клиенту через http-сервер. CGI-скрипт запускается сервером по типу exec, то есть он не знает каким образом скрипт выполняется, он просто его запускает как командную строку, для этого и нужно выставлять права на запуск. Каким образом http-сервер может передать что-то в пхп, который запускается как CGI? Никаким, только по средствам окружения и командной строки. Пхп-скрипт, запущенный как CGI, в свою очередь перестаёт быть вебовским языком программирования и в упор не знает, что такое HTTP и как можно с ним работать, поскольку CGI - это режим консоли. А нужны в консоли http-заголовки? Нет! Уже можно делать выводы :wink:

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

Рыть надо в сторону http://www.php.net/manual/ru/function.getenv.php

Overseer
сержант
Сообщения: 221
Зарегистрирован: 2008-03-20 23:00:42

Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация

Непрочитанное сообщение Overseer » 2008-03-23 20:24:21

zg писал(а):
Overseer писал(а):такое впечатление, что заголовки не попадают в скрипт (а так и есть), но причину не могу понять..
а думать не пробовали? или хотя бы читать, что пишут?
А вы пробовали думать, прежде, чем писать ответ? Или хотя бы читать предыдущие сообщения? :|

Я приводил ПРИМЕР работающего скрипта (скрипт+.htaccess). Еще я писал, что при установке phpmyadmin в папку юзера (/home/user1/domains/domain.tld/public_html/phpmyadmin/) - phpmyadmin РАБОТАЕТ и авторизация ПРОХОДИТ (опять же, с приведенным примером .htaccess). Но из папки, где phpmyadmin установлен по дефолту (/var/www/html/phpMyAdmin-xx.xx.xx/) при изначальной установке панели DirectAdmin - он НЕ работает. Я пытаюсь выяснить ПОЧЕМУ.
Вы же еще не дали НИ ОДНОГО толкового совета, только не в тему всех поучаете и пытаетесь куда-то ткнуть носом. :roll:

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация

Непрочитанное сообщение zg » 2008-03-23 20:44:54

Overseer писал(а):Вы же еще не дали НИ ОДНОГО толкового совета, только не в тему всех поучаете и пытаетесь куда-то ткнуть носом. :roll:
с кем не бывает :) судьба у меня такая, если тема создана не правильно, кто виноват? :wink: ладна, не сердись :P

Overseer
сержант
Сообщения: 221
Зарегистрирован: 2008-03-20 23:00:42

Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация

Непрочитанное сообщение Overseer » 2008-03-23 21:12:56

:lol: Жесть. Не поверите!!! :idea:
В php.ini сделал замену

Код: Выделить всё

;error_reporting = E_ALL
; на
error_reporting = E_ALL & ~E_NOTICE
и, о чудо, все работает! Но почему??? Не выводилось же нотайсов! :?
Когда включил лог реврайта, вывалились нотайсы о переменной (undefined index) HTTP_AUTHORIZATION и ерроры о том, что нельзя повторно отправить заголовки (ну естессно). Когда выключил нотайсы - все заработало :o