У меня серьезная проблема с восстановлением работы phpmyadmin (раньше он работа 16.04). Вчера я обновил Ubuntu 16.04 до 20.04 и получил следующие версии:
MySQL 8.0.23-0ubuntu0.20.04.1 for Linux on x86_64
PHP7.4-fpm
Apache 2.4.41
phpmyadmin 4:4.9.5+dfsg1-2
Когда я перехожу на свою обычную страницу phpmyadmin, например mysql.mysite.com, я получаю сообщение об ошибке 503 Service Unavailable. Остальные мои веб-сайты в основном работают нормально (за исключением несуществующих php-страниц, отображаемых как «Входной файл не указан» вместо 404).
Обратите внимание, что мой сервер web / phpmyadmin ОТДЕЛЕН от сервера MySQL, который находится на другом IP и другом экземпляре сервера (также работает на Ubuntu 20.04).
Вещи, о которых я читал на различных форумах и пробовал, но они не работали:
Я удалил и переустановил mysql-server и phpmyadmin
Я запустил / перезапустил mysql и убедился, что что он работает (остальные мои веб-сайты работают нормально)
Установить в my.cnf: default_authentication_plugin = mysql_native_password
Я запустил «sudo dpkg-reconfigure phpmyadmin». Установка TCP / IP и выбрано имя хоста в качестве IP-адреса моего сервера базы данных.Когда я использую «root» и имя пользователя admin, я получаю следующую ошибку: «ОШИБКА 1045 (28000): доступ запрещен для пользователя 'root' @ '(IP-адрес веб-сервера)'»
У меня есть другой » admin "имя пользователя в MySQL, настроенное для использования на моем IP-адресе web / phpmyadmin, и однократный ввод пароля работает, но затем программа запрашивает его во второй раз, и я получаю эту ошибку:" ОШИБКА 1045 (28000): Доступ отказано для пользователя 'phpmyadmin' @ 'web-server-IP-address' "
6 Также в apache я добавил следующее после «DocumentRoot / var / www / html» в 000-default.conf:
<Directory "/var/www/html">
AllowOverride All
</Directory>
7 Я также сделал «sudo a2enconf phpmyadmin.conf» и могу подтвердить, что это папка с поддержкой conf, и перезапустил apache2.
/etc/apache2/conf-available/phpmyadmin.conf имеет следующее содержимое:
#phpMyAdmin default Apache configuration
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
# limit libapache2-mod-php to files and directories necessary by pma
<IfModule mod_php7.c>
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/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/:/usr/share/php/PhpMyAdmin/:/usr/share/php/Symfony/:/usr/share/php/Twig/:/usr/share/php/Twig-Extensions/:/usr/share/php/ReCaptcha/:/usr/share/php/Psr/Container/:/usr/share/php/Psr/Cache/:/usr/share/php/Psr/Log/:/usr/share/php/Psr/SimpleCache/
</IfModule>
</Directory>
# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
Require all denied
</Directory>
В одном из файлов mysite.com.conf у меня есть субдомен phpmyadmin, настроенный как:
<VirtualHost *:443>
.....
ServerName mysql.mysite.com
DocumentRoot /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride None
</Directory>
.....
</VirtualHost>
Я был в течение 2 дней ничего из этого не имело никакого эффекта, и ошибка 503 service unavailable просто сохраняется на моей странице phpmyadmin mysql.mysite.com. Что мне делать дальше?
ОБНОВЛЕНИЕ:
Наконец-то я добился успеха с "sudo dpkg-reconfigure phpmyadmin". Я вручную создал пользователя phpmyadmin на сервере MySQL и дал ему все привилегии для базы данных phpmyadmin. После запуска "sudo dpkg-reconfigure phpmyadmin" на веб-сервере, он проходит до конца с результатами:
dbconfig-common: writing config to /etc/dbconfig-common/phpmyadmin.conf
phpmyadmin already exists and has privileges on phpmyadmin.
dbconfig-common: dumping mysql database phpmyadmin to
/var/tmp/phpmyadmin.phpmyadmin.2021-04-30-04.23.mysql.VeEHd6.
dbconfig-common: dropping old mysql database phpmyadmin.
dropping database phpmyadmin: success.
verifying database phpmyadmin was dropped: success.
creating database phpmyadmin: success.
verifying database phpmyadmin exists: success.
populating database via sql... done.
dbconfig-common: flushing administrative password
К сожалению, я все еще застрял с недоступной службой 503 ...
ОБНОВЛЕНИЕ 2 Сузил еще немного.Во время теста я обнаружил, что это будет работать, если DirectoryIndex является файлом HTML, а не файлом PHP:
<VirtualHost *:80>
.....
ServerName mysql.mysite.com
DocumentRoot /usr/share/TEST # test directory
<Directory /usr/share/TEST>
Options FollowSymLinks
DirectoryIndex index.html # index.html contains the text "test"
AllowOverride None
</Directory>
.....
</VirtualHost>
Однако он не будет запускать простой однострочный файл index.php, что приводит к ошибке 503 Service Unavailable. Опять же, остальные мои файлы php работают на моих основных сайтах, но он не запускает phpmyadmin или какой-либо файл php через эту настройку поддомена. Кажется, что есть действительно простое решение, но я просто недостаточно знаю о настройках apache / php.
Разобрался. Если у кого-то еще есть эта проблема, мне пришлось добавить следующий блок в мой поддомен VirtualHost, phpmyadmin снова начинает отображаться в поддомене:
<FilesMatch ".php$">
SetHandler "proxy:unix:/var/run/php/php7.4-fpm.username.sock|fcgi://localhost/"
</FilesMatch>