phpmyadmin «Служба 503 недоступна»: Unbuntu 20.04, MySQL 8.0

У меня серьезная проблема с восстановлением работы 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).

Вещи, о которых я читал на различных форумах и пробовал, но они не работали:

  1. Я удалил и переустановил mysql-server и phpmyadmin

  2. Я запустил / перезапустил mysql и убедился, что что он работает (остальные мои веб-сайты работают нормально)

  3. Установить в my.cnf: default_authentication_plugin = mysql_native_password

  4. Я запустил «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' "

  1. В apache я добавил« Включить /etc/phpmyadmin/apache.conf »в /etc/apache2/apache2.conf

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.

0
задан 1 May 2021 в 00:52

1 ответ

Разобрался. Если у кого-то еще есть эта проблема, мне пришлось добавить следующий блок в мой поддомен VirtualHost, phpmyadmin снова начинает отображаться в поддомене:

<FilesMatch ".php$">
  SetHandler "proxy:unix:/var/run/php/php7.4-fpm.username.sock|fcgi://localhost/"
</FilesMatch>
0
ответ дан 7 May 2021 в 17:42

Другие вопросы по тегам:

Похожие вопросы: