1 (изменено: jk3, 2007-08-17 15:50:08)

Тема: Авторизация/вход по https через 80 порт ???

Залил phpMyAdmin-2.10.2-all-languages на сайт хостера
Захожу http://host/phpadmin, появляется стандартное приглашение ввода имени и пароля, ввожу (сам логин и пароль стопудово правильные, проверял)
Нажимаю кнопку Пошел, браузер пытается перейти по адресу
https://host:80/phpadmin/index.php?lang=ru-win1251&convcharset=iso-8859-1&collation_connection=utf8_unicode_ci&token=d4fd20aae0c9ba3b0bd7f0cde45054e2&phpMyAdmin=lHqYHnxfRAZzDRSR1jEBXrW2j23
естественно, отрубает (т.к. для https может использоваться 443 порт)

MySQL 5.0.37
PHP 5.2.3
Apache 1.3.37

Пробую запустить тот же phpMyAdmin на своей машине (PHP4+MySQL4+IIS6) -- он не лезет на https, только по http
Конфиг phpMyAdmin не менял, только пользователя и пароль
Cookie в браузере включены
session.auto_start    Off
session.use_cookies    On
session.use_only_cookies    Off

Вроде все должно быть нормально, почему phpadmin лезет авторизоваться по https да еще и через 80 порт?

Поменял
$cfg['Servers'][$i]['auth_type']  с 'cookie' на 'config' и прописываю
$cfg['Servers'][$i]['user'] = 'xxx';
$cfg['Servers'][$i]['password'] = 'xxx';
тогда работает.

Почему при cookie-авторизации косяк?

2

Re: Авторизация/вход по https через 80 порт ???

$cfg['ForceSSL'] = true;
Попробуйте добавить данную конфигурационную директиву.
Если не поможет, покажите, пожалуйста, полный конфигурационный файл.

3

Re: Авторизация/вход по https через 80 порт ???

Hanut сказал:

$cfg['ForceSSL'] = true;

Пробовал, ничего не меняется.
Еще такая особенность: пишет внизу страницы авторизации "Cookies должны быть включены после этого места", в браузере стоит принимать cookie со всех сайтов.

config.inc.php

<?
$cfg['blowfish_secret'] = 'secret';

$i = 0;
$i++;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['user'] = 'user';
$cfg['Servers'][$i]['password'] = 'password';
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';

?>

И еще особенность: если все-таки зайти через config-авторизацию, то интерфейс какой-то упрощенный (даже не знаю как это описать, например, действия, которые можно произвести с таблицей показываются обычными ссылками в столбик, а не прямоугольниками с подсветкой при наведении), по сравнению с локальной машиной
Не работают некоторые функции, такие как импорт/экспорт. Пишет
import.php: Missing parameter: import_type  (FAQ 2.8)
import.php: Missing parameter: format (FAQ 2.8)

4

Re: Авторизация/вход по https через 80 порт ???

Проверьте содержимое данной директивы в php.ini, и доступность каталога указанного в ее значении.
session.save_path = "C:/php/tmp"

5

Re: Авторизация/вход по https через 80 порт ???

Hanut сказал:

session.save_path = "C:/php/tmp"

Сервак находится под линуксом (ну, или если быть еще точнее под FreeBSD 6.2) и значение этой переменной согласно phpinfo()
session.save_path    /tmp

А как проверить php-скриптом ее доступность на запись я не знаю sad

6

Re: Авторизация/вход по https через 80 порт ???

Это должно выдать права на каталог указанный в директиве session.save_path.

<?php

session_start();
echo substr(sprintf('%o', fileperms(session_save_path())), -4);

?>

Также можно просто посмотреть, создаются ли в этой директории файлы при заходе в phpMyAdmin, например. По идее, пустой каталог быть не должен.

7

Re: Авторизация/вход по https через 80 порт ???

Hanut сказал:

echo substr(sprintf('%o', fileperms(session_save_path())), -4);

Выдало значение 1777.  Значит запись разрешена. Странно, а что же тогда может обуславливать такое поведение phpAdmin? И еще вот, смотрю firefox-ом куки, которые устанавливаются. Там все правильно, только вот смущает надпись "Посылать при: Только зашифрованном соединении". Может в этом все дело, неправильно устанавливается кука?

8

Re: Авторизация/вход по https через 80 порт ???

Попробуйте заполнить данную переменную с префиксом https
$cfg['PmaAbsoluteUri']

9

Re: Авторизация/вход по https через 80 порт ???

У меня такая же проблема через cookie не хочет авторизироваться просто при входе запрашивает логин и пароль а после нажатия окей поля очищаются и возвращается таже страничка с приглашением на ввод логина и пароля Причем из консоли я свободно подключаюсь к базе со своим логином и паролем.

Версии:
MySQL 5.0.37
PHP 5.2.3
Apache 2.2.4

Если кто знает решение проблемы подскажите плиз

10

Re: Авторизация/вход по https через 80 порт ???

yda12
Не понял, вы тоже по https подключаетесь? Это удаленный сервер?

11

Re: Авторизация/вход по https через 80 порт ???

Hanut сказал:

Попробуйте заполнить данную переменную с префиксом https
$cfg['PmaAbsoluteUri']

Заполнение переменной помогло ($cfg['PmaAbsoluteUri'] = 'http://host/phpadmin/';). Спасибо. Теперь cookie-авторизация нормально работает. phpMyAdmin наконец-то приобрел свой привычный вид, импорт/экспорт и остальные функции тоже работают.

P.S. Мне и не нужно было подключение через https. Обычного http вполне достаточно. Просто было непонятно поведение phpMyAdmin, когда его не просили подключаться через https, а он пытается подключаться да еще и через 80 порт.

12

Re: Авторизация/вход по https через 80 порт ???

jk3
Проверьте настройки Apache. Не думаю, что здесь виноват phpMyAdmin.