Ошибка phpMyAdmin: невозможно запустить сеанс без ошибок, если включены httponly / безопасные куки

Я просто обновляю phpmyadmin на моем LAMP-сервере в последней версии Debian wheezy до последней версии, и теперь я получаю следующую ошибку при попытке войти в систему с помощью метода проверки подлинности cookie:

phpMyAdmin - Error
Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.

Вход с использованием метода auth http работает отлично. В настоящий момент SSL отключен в обоих случаях. Погуглить об этой проблеме два дня не помогло. Наиболее упоминаемая проблема, связанная с отсутствием прав доступа к пути сохранения файлов cookie, здесь не применима. Cookies пишутся /var/lib/php5так что все разрешения вроде бы есть. Также установив их вручную chmod 777 www-data:www-data не работает.

Ошибки не регистрируются в лог-файле apache или php, когда мне не удается войти в систему. В журнале регистрируются другие ошибки (я создал test.php с нарушенным синтаксисом), поэтому сама регистрация работает.

EDIT2: я нашел что-то:
Проблема заключается в безопасных / безопасных куки. Отключение

Header set Set-Cookie HttpOnly;Secure

решает проблему. Но отключение этого не является хорошим решением. мой /etc/php5/apache2/php.ini а также /etc/php5/cli/php.ini оба файла содержат строки

session.cookie_httponly = true
session.cookie_secure = true

и php -i |grep cookie показывает, что обе опции включены.

РЕДАКТИРОВАТЬ3: D’Oh.
Проблема была в том, что я включил флаг cookie secure (= куки могут быть отправлены только через безопасное соединение), но отключен SSL. Таким образом, печенье не может быть отправлено …

0

Решение

Это происходит потому, что phpmyadmin не может записывать в папку, определенную в конфигурации php как session.save_path,

Чтобы решить проблему, сделайте:

  • Делать php -i | grep session.save_path найти папку, используемую для сессий. В моем случае я имел в качестве вывода: session.save_path => /var/lib/php/session => /var/lib/php/session
  • Убедитесь, что папка определена в session.save_path существует. В моем случае я сделал mkdir -p /var/lib/php/session

  • Убедитесь, что папка пригодна для записи по apache. В моем случае я сделал:

    • sudo setfacl -R -m u: www-data: rwX / var / lib / php / session
    • sudo setfacl -dR -m u: www-data: rwX / var / lib / php / session
    • Делать sudo chown -R www-data /var/lib/php/session если setfacl не доступен.
1

Другие решения

После тестирования этого в течение одного дня, кажется, я понял ответ:

Проблема заключалась в том, что я включил флаг cookie «Безопасный» (= куки можно отправлять только через безопасное соединение), но отключил SSL. Таким образом, никакие куки не могут быть отправлены и phpmyadmin (pma) перерывы.

Отключение безопасного флага решило проблему так же, как и включение ssl.

Это также решает еще одну проблему: Сценарий установки pma (обычно доступный в вашем домене / phpmyadmin / setup /) не работал должным образом: сам интерфейс обнаружился, но было невозможно добавить серверы или сохранить измененную вручную конфигурацию или загрузить / загрузить любые файлы.

0

По вопросам рекламы [email protected]