Добавление / включение (вы называете это) капчи google в конфигурации phpmyadmin заставляет меня застревать на странице входа, токен появляется в URL-адресе, но я не получаю «панель управления», поэтому phpmyadmin становится бесполезным. Включение отчетов об ошибках php не дало мне ничего, никаких сообщений об ошибках, даже в / var / log (apache, mysql и сам php не сообщали об ошибках). Отключение SSL или доступ через виртуальный хост, для которого не настроен SSL, ничего не меняет, присутствует та же проблема.
Теперь единственный способ получить доступ к функциям phpmyadmin - удалить Google captcha (reCAPTCHA) из конфигурации, что по очевидным причинам не подходит.
Больше информации:
Я всегда запускал панель phpmyadmin только на локальном хосте, к которому я подключался через прокси-сервер ssh.
Но теперь мне нужно открыть панель другим пользователям, поэтому после добавления собственного виртуального хоста с SSL, который выглядит так:
<VirtualHost x.x.x.x:443>
ServerName somehost.tld
DocumentRoot /usr/share/phpmyadmin
#Alias /phpmyadmin /usr/share/phpmyadmin
ServerSignature Off
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/somehost.tld/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/somehost.tld/privkey.pem
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
<IfModule mod_php5.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
php_flag magic_quotes_gpc Off
php_flag track_vars On
php_flag register_globals Off
php_admin_flag allow_url_fopen Off
php_value include_path .
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/
</IfModule>
</Directory>
# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
<IfModule mod_authz_core.c>
<IfModule mod_authn_file.c>
AuthType Basic
AuthName "phpMyAdmin Setup"
AuthUserFile /etc/phpmyadmin/htpasswd.setup
</IfModule>
Require valid-user
</IfModule>
</Directory>
# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/libraries>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
Require all denied
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
(Я не трогал файл localhost virtualhost, чтобы получить доступ к этой панели в случае, если по какой-то причине эта конфигурация не будет работать, но похоже, что даже эта вещь сейчас сломана)
Итак, страница входа в систему работает нормально, но проблема в том, что после попытки входа в любой URL пользователя (даже с localhost virtualhost [старый способ]) в браузере меняется на: https: //somehost.tld/index.php? token = sometoken и я застрял на странице входа.
Поскольку эта панель подключена к серверу mysql и доступна в общедоступном Интернете, я также просматриваю google recaptcha на странице входа, добавляя эти строки в /etc/phpmyadmin/config.inc.php:
$cfg['CaptchaLoginPublicKey'] = 'mypublickey'
$cfg['CaptchaLoginPrivateKey'] = 'myprivatekey'
Когда я прокомментировал эти строки, я получил доступ ко всем функциям phpmyadmin, почему эта капча нарушает все? В настройках google recaptcha у меня есть правильный домен, добавленный к этим ключам captcha.
Хост - Debian 8, я попытался даже запустить dpkg-reconfigure phpmyadmin, чтобы убедиться, что это не просто проблема конфигурации. Это не помогло.
Я нашел решение и теперь чувствую себя немного глупо.
Поскольку на хосте установлен debian 8 (jessie), у меня действительно старые пакеты (это не удивительно, так как это debian).
Похоже, что phpmyadmin не обновлялся в debian, и когда google упал (или не упал, дело в том, что он больше не работает в этой версии) API reCAPTCHA v1 просто перестал работать, и я добавил ключи reCAPTCHA v2 в конфигурацию.
Поэтому мне пришлось загрузить более новую версию phpmyadmin из репозитория debian 9. Я не использовал debian долгое время, поэтому я не знал, как добавить репозиторий из более новой версии и сказать apt, чтобы загрузить данный пакет и его зависимости от данного репо, как в ArchLinux или SUSE. Решением моего недостатка знаний стали следующие шаги:
wget http://ftp.cz.debian.org/debian/pool/main/p/phpmyadmin/phpmyadmin_4.6.6-4_all.deb
dpkg -i ./phpmyadmin_4.6.6-4_all.deb
dpkg выдает ошибки о неудовлетворенных зависимостях и о том, что он оставляет этот пакет ненастроенным, но панель теперь работает без каких-либо других настроек ... ну ... я получаю предупреждение на панели о том, что "Хранилище конфигурации phpMyAdmin не полностью настроено, некоторые расширены функции были отключены ".
Но поскольку я использую эту панель, чтобы просто взаимодействовать с MySQL и добавлять / удалять пользователей SQL, мне это все равно не нужно ... вероятно.
Я надеюсь, что однажды кто-то отредактирует этот ответ и добавит правильный способ установки пакета из репозитория с более новой версией.
Ответ заключается в том, что вам следует выбирать не reCaptcha v2, а «невидимую reCaptcha». Работал у меня.