Страница 1 из 1
Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация
Добавлено: 2008-03-20 23:27:55
Overseer
Apache2.2+PHP5(FastCGI)
Не работает HTTP-авторизация =( Из панели DirectAdmin или просто по урлу не пускает в phpmyadmin (не принимает логин/пароль).
Опции -pass-header HTTP_AUTHORIZATION -pass-header Authorization -pass-header Cookie что-то не помогают..
Какие идеи?..
Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация
Добавлено: 2008-03-20 23:42:32
hizel
идея предоставить логи\конфиги
телепаты всем табуном упрыгали на юг

Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация
Добавлено: 2008-03-21 0:12:41
Overseer
Код: Выделить всё
# из 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
в логах чистенько, без ошибок
что еще показать?
Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация
Добавлено: 2008-03-21 8:38:25
zg
Overseer писал(а):Apache2.2+PHP5(FastCGI)
Не работает HTTP-авторизация =( Из панели DirectAdmin или просто по урлу не пускает в phpmyadmin (не принимает логин/пароль). Какие идеи?..
яндекс!
http://www.yandex.ru/yandsearch?text=HT ... +validuser
Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация
Добавлено: 2008-03-21 18:27:51
Overseer
Тестовый скрипт:
Код: Выделить всё
<?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 не работает с авторизацией =(
Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация
Добавлено: 2008-03-21 18:31:09
Overseer
А вот дамп из 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
)
Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация
Добавлено: 2008-03-21 18:41:34
zg
Overseer писал(а):Вроде бы как все должно работать, а вот суко phpmyadmin не работает с авторизацией =(
у меня пашет на папке с pma
AuthType Basic
AuthName "Login, please"
AuthUserFile "/usr/www/pma/.htpasswd"
Require valid-user
Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация
Добавлено: 2008-03-21 18:52:24
Alex Keda
2 zg
вы спутали апачевую и пхп базовую...
========
вопщем.. у меня тоже не пашет.
причин не знаю =(
Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация
Добавлено: 2008-03-21 20:52:22
zg
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() или я заблуждаюсь?

Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация
Добавлено: 2008-03-21 21:23:17
Overseer
Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация
Добавлено: 2008-03-21 22:31:24
Alex Keda
не с путал.
просто в одном случае заголовки принимает и передаёт тока апач, а во втором до php банально не все заголовки доходят.
Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация
Добавлено: 2008-03-22 5:56:22
zg
lissyara писал(а):не с путал.
просто в одном случае заголовки принимает и передаёт тока апач, а во втором до php банально не все заголовки доходят.
дак в этом и дело, вы сейчас ищете скрипт, а заблыли о том, что CGI и мод-пхп работают по-разному, CGI вообще не знает ни заголовки ни кто такой апач, ни как с ним работать?.... в режиме CGI глобальные массивы вообще не заполняются, кроме _SERVER, а он на половину. Вы хотите работать с CGI-скриптом как с обычным мод-пхп?... так не получится, максимум можно выдернуть переменную из окружения.
Рыть надо в сторону
http://www.php.net/manual/ru/function.getenv.php
Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация
Добавлено: 2008-03-22 15:17:27
Overseer
Пардоньте, приведенный мною тестовый скрипт test.php работает ТОЛЬКО при использовании хтакцесс-файла:
Код: Выделить всё
14:06 root ~> cat .htaccess
RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
А вот в phpmyadmin такая по-дурному завернутая авторизация, что я не расковырял ее еще
Но проблема похоже аналогичная, заголовок не попадает до скрипта....
Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация
Добавлено: 2008-03-23 14:02:13
Overseer
Скачал новый phpmyadmin, распаковал его в юзерскую папку (виртхост) и, о, чудо, он работает. НО, когда я скопировал его в /var/www/html/phpmyadmin/ - он там НЕ работает.
Не могу понять почему
Вроде бы не нахожу чем принципиально отличается основной конфиг от кофига виртхоста..
.htaccess и php-cgi те же самые, права правильные выставлены..
Бред какой-то ....

Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация
Добавлено: 2008-03-23 14:33:41
Alex Keda
что пишет когда не работает?
Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация
Добавлено: 2008-03-23 14:55:17
Overseer
Да ничего не пишет (несколько раз спрашивает пароль и потом выдает "Данные для входа не верны. В доступе отказано."), такое впечатление, что заголовки не попадают в скрипт (а так и есть), но причину не могу понять.. В логах чисто.

Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация
Добавлено: 2008-03-23 20:03:06
zg
Overseer писал(а):такое впечатление, что заголовки не попадают в скрипт (а так и есть), но причину не могу понять..
а думать не пробовали? или хотя бы читать, что пишут?
первый вариант (думать) - что такое CGI-скрипт? обычный исполняемый файл, STDOUT, которого отдаётся клиенту через http-сервер. CGI-скрипт запускается сервером по типу exec, то есть он не знает каким образом скрипт выполняется, он просто его запускает как командную строку, для этого и нужно выставлять права на запуск. Каким образом http-сервер может передать что-то в пхп, который запускается как CGI? Никаким, только по средствам окружения и командной строки. Пхп-скрипт, запущенный как CGI, в свою очередь перестаёт быть вебовским языком программирования и в упор не знает, что такое HTTP и как можно с ним работать, поскольку CGI - это режим консоли. А нужны в консоли http-заголовки? Нет! Уже можно делать выводы
вариант второй (читать)
zg писал(а):в режиме CGI глобальные массивы вообще не заполняются, кроме _SERVER, а он на половину. Вы хотите работать с CGI-скриптом как с обычным мод-пхп?... так не получится, максимум можно выдернуть переменную из окружения.
Рыть надо в сторону
http://www.php.net/manual/ru/function.getenv.php
Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация
Добавлено: 2008-03-23 20:24:21
Overseer
zg писал(а):Overseer писал(а):такое впечатление, что заголовки не попадают в скрипт (а так и есть), но причину не могу понять..
а думать не пробовали? или хотя бы читать, что пишут?
А вы пробовали думать, прежде, чем писать ответ? Или хотя бы читать предыдущие сообщения?
Я приводил ПРИМЕР
работающего скрипта (скрипт+.htaccess). Еще я писал, что при установке phpmyadmin в папку юзера (/home/user1/domains/domain.tld/public_html/phpmyadmin/) - phpmyadmin РАБОТАЕТ и авторизация ПРОХОДИТ (опять же, с приведенным примером .htaccess). Но из папки, где phpmyadmin установлен по дефолту (/var/www/html/phpMyAdmin-xx.xx.xx/) при изначальной установке панели DirectAdmin - он НЕ работает. Я пытаюсь выяснить ПОЧЕМУ.
Вы же еще не дали
НИ ОДНОГО толкового совета, только
не в тему всех поучаете и пытаетесь куда-то ткнуть носом.

Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация
Добавлено: 2008-03-23 20:44:54
zg
Overseer писал(а):Вы же еще не дали
НИ ОДНОГО толкового совета, только
не в тему всех поучаете и пытаетесь куда-то ткнуть носом.

с кем не бывает

судьба у меня такая, если тема создана не правильно, кто виноват?

ладна, не сердись

Re: Apache2.2+PHP5(FastCGI) - не работает HTTP-авторизация
Добавлено: 2008-03-23 21:12:56
Overseer

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