Я просто обновляю 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. Таким образом, печенье не может быть отправлено …
Это происходит потому, что 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 chown -R www-data /var/lib/php/session
если setfacl
не доступен.После тестирования этого в течение одного дня, кажется, я понял ответ:
Проблема заключалась в том, что я включил флаг cookie «Безопасный» (= куки можно отправлять только через безопасное соединение), но отключил SSL. Таким образом, никакие куки не могут быть отправлены и phpmyadmin (pma) перерывы.
Отключение безопасного флага решило проблему так же, как и включение ssl.
Это также решает еще одну проблему: Сценарий установки pma (обычно доступный в вашем домене / phpmyadmin / setup /) не работал должным образом: сам интерфейс обнаружился, но было невозможно добавить серверы или сохранить измененную вручную конфигурацию или загрузить / загрузить любые файлы.