Установка phpmyadmin на CentOS 7

Phpmyadmin - популярный инструмент для управления через браузер базами данных mysql. Я почти всегда устанавливаю его на сервер, если там есть базы mysql. Мне он кажется наиболее простым и удобным средством управления. В статье опишу подробно процесс установки на web сервер apache и nginx.

Онлайн-курс по устройству компьютерных сетей

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Введение

Ранее я уже касался темы установки phpmyadmin  в статье про настройку web сервера на базе nginx. Сейчас хочу рассмотреть более подробно этот вопрос не только на nginx, но и традиционном apache (httpd).

Несколько слов о том, что же из себя представляет инструмент под названием phpmyadmin. Это набор php скриптов, которые устанавливаются на веб сервер. С их помощью можно подключиться к локальному или удаленному mysql серверу и управять им через веб браузер. Я чаще всего с помощью phpmyadmin делаю следующие операции:

  1. Создание новых баз и пользователей, назначение прав.
  2. Экспорт или импорт баз не очень большого объема, до 50-ти мегабайт. Если база большего объема, использую утилиты командной строки (mysqldump и mysql) для управления сервером БД.
  3. Просмотр содержимого баз данных или информации о них.

По сути, делаю практически все стандартные действия с базами данных. Без phpmyadmin можно обходиться, для самых простых конфигураций серверов (например голый zabbix сервер) мне хватает консольных утилит. Но если есть, к примеру, веб сервер с сайтами, я обязательно поставлю phpmyadmin. Мне так быстрее и удобнее.

Приступим к простой установке phpmyadmin на CentOS 7.

Подготовка web сервера apache

Далее я буду считать, что у вас уже есть установленный и настроенный сервер CentOS 7. Если это не так, то смотрите мои подробные инструкции с видео на тему установки и базовой настройки сервера CentOS 7.

Если на голом сервере выполнить:

# yum install phpmyadmin

Установка phpmyadmin на CentOS 7

Вы увидите полный список зависимостей, но в нем не будет самого веб сервера и интерпретатора php, только его модули. Веб сервер вам нужно предварительно установить и настроить самим. Сделем это на примере веб сервера httpd (апач). Устанавливаем его:

# yum install -y httpd

Теперь установим php, без него панель администрирования не заработает:

# yum install -y php

Запускаем веб сервер, добавляем его в автозагрузку и проверяем работу:

# systemctl enable httpd
# systemctl start httpd

Заходите по адресу http://ip-адрес-сервер. Вы должны увидеть тестовую страницу апача. Теперь проверим, работает ли php. Создаем тестовую страничку в папке /var/www/html:

# mcedit /var/www/html/index.php
<?php phpinfo(); ?>

Назначаем владельца apache на созданный файл:

# chown apache. /var/www/html/index.php

Теперь снова заходим по адресу http://ip-адрес-сервера, вы должны увидеть вывод phpinfo:

Apache php_info

Если видите такой же вывод, значит все в порядке, веб сервер готов для работы с phpmyadmin. Приступаем к его установке.

Установка phpmyadmin

Устанавливаем phpmyadmin со всеми зависимостями:

# yum install -y phpmyadmin

После установки в каталоге с конфигурациями httpd /etc/httpd/conf.d появляется файл phpMyAdmin.conf. Сохраним сразу на всякий случай оригинальный файл, перед тем как начать его редактировать:

# cp /etc/httpd/conf.d/phpMyAdmin.conf /etc/httpd/conf.d/phpMyAdmin.conf.orig

По-умолчанию, в конфиге закрыт доступ к панели управления для всех адресов, кроме 127.0.0.1. Чтобы открыть доступ для всех, приведите файл к следующему виду:

# mcedit /etc/httpd/conf.d/phpMyAdmin.conf
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin

<Directory /usr/share/phpMyAdmin/>
  AddDefaultCharset UTF-8
  Require all granted
</Directory>

<Directory /usr/share/phpMyAdmin/setup/>
  Require all granted
</Directory> 

<Directory /usr/share/phpMyAdmin/libraries/>
  Order Deny,Allow
  Deny from All
  Allow from None
</Directory>

<Directory /usr/share/phpMyAdmin/setup/lib/>
  Order Deny,Allow
  Deny from All
  Allow from None
</Directory>

<Directory /usr/share/phpMyAdmin/setup/frames/>
  Order Deny,Allow
  Deny from All
  Allow from None
</Directory>

Я удалил все лишнее из файла, в том числе настройки, которые относились к версии apache 2.2. Перезапускаем httpd:

# systemctl restart httpd

Заходим по адресу http://ip-адрес-сервера/phpmyadmin. Вы должны увидеть страницу логина:

Phpmyadmin страница входа

В этот момент я понял, что мне некуда логиниться. На тестовом сервере, где я готовлю статью, нет mysql. Если у вас та же ситуация, что у меня, установите mariadb. Подробно об установке mysql на CentOS 7 я рассказал в статье, посвещенной настройке web-сервера, все подробности можете там посмотреть. Сейчас быстро ставим базу данных и запускаем ее:

# yum install -y mariadb mariadb-server
# systemctl enable mariadb.service
# systemctl start mariadb
# /usr/bin/mysql_secure_installation

После этого можно еще раз окрыть web интерфейс phpmyadmin и зайти под учетной записью рута. Откроется главная страница панели с общей информацией о сервере:

Главное окно

На этом установка закончена, веб панелью можно пользоваться. Некоторые полезные настройки мы рассмотрим далее в соответствующем разделе, а сейчас установим phpmyadmin на веб сервере nginx.

Установка на nginx

Настроим работу phpmyadmin на веб сервере nginx + php-fpm. Подробно вопрос настройки такого сервера я рассматривал ранее в статье установка и настройка веб сервера nginx + php-fpm на CentOS 7. Там речь шла именно о веб сервере и уклон был в эту сторону. Но phpmyadmin может понадобиться не только на веб серверах. Так что рассмотрим общий случай быстрой и простой настройки phpmyadmin на nginx.

Устанавливаем nginx:

# yum install -y nginx

Устанавливаем php-fpm:

# yum install -y php-fpm

Запускаем службы и добавляем в автозагрузку:

# systemctl start nginx.service
# systemctl enable nginx.service
# systemctl start php-fpm.service
# systemctl enable php-fpm.service

Заходим по адресу http://ip-адрес-сервера и проверяем. Вы должны увидеть тестовую страницу nginx:

Nginx тестовая страница

Дальше устанавливаем phpmyadmin на web сервер с nginx:

# yum install -y phpmyadmin

Редактируем конфигурационный файл nginx для добавления установленной веб панели управления:

# mcedit /etc/nginx/nginx.conf

Приводим секцию server {} к следующему виду:

server {
         listen 80 default_server;
         listen [::]:80 default_server;
         server_name _;
         root /usr/share/nginx/html;
         index index.php index.html index.htm;

         location ~ \.php$ {
         fastcgi_pass 127.0.0.1:9000;
         fastcgi_index index.php;
         include fastcgi_params;
         fastcgi_param SCRIPT_FILENAME $request_filename;
         fastcgi_ignore_client_abort off;
         }

         include /etc/nginx/default.d/*.conf;

         location / {
         }

         error_page 404 /404.html;
         location = /40x.html {
         }

         error_page 500 502 503 504 /50x.html;
         location = /50x.html {
         }
}

Я взял стандартные параметры и добавил несколько новых строк для корректной работы. Теперь нам нужно сделать символьную ссылку (сим линк) из папки со скриптами phpmyadmin в корневой каталог веб сервера nginx:

# ln -s /usr/share/phpMyAdmin /usr/share/nginx/html/phpmyadmin

Перезапускаем nginx:

# systemctl restart nginx

Дальше по идее все должно работать, но у меня не работало, пришлось перезагрузить весь сервер, так как не работал модуль php mbstring, хотя он установлен и подключен. Перезапуск php-fpm тоже не помогал, а перезагрузка помогла. Проверил 2 раза, оба раза воспроизвел ошибку. Разбираться не стал в чем причина такого поведения, просто перезагрузите сервер и продолжайте.

Идем по адресу http://ip-адрес-сервера/phpmyadmin. Должны увидеть стандартную страницу входа. У меня на ней было предупреждение:

Warning in ./libraries/session.inc.php#105
session_start(): open(/var/lib/php/session/sess_j0r4moac0oo7oh250e6t14rn1kfkl6ta, O_RDWR) failed: No such file or directory (2)

Ошибка phpmyadmin

Это сязано с тем, что в папке /var/lib/php нет директории session. Исправляем это:

# cd /var/lib/php/
# mkdir session
# chown apache:apache session/
Обращаю внимание на то, что я назначил владельцем папки с сессиями пользователя apache, хотя у нас веб сервер nginx. Это связано с тем, что php-fpm по-умолчанию работает под пользователем apache. Логичнее изменить это и запускать его от nginx. Для этого надо отредактировать файл /etc/php-fpm.d/www.conf, изменив там параметры user и group. Я не стал этого делать сейчас для простоты. Оставляю данный параметр на ваше усмотрение.

Перезагружаем страницу, ошибка должна исчезнуть. Можно подключиться к mysql. Если сервер бд у вас не установлен, смотрите выше, как быстро его поставить и запустить. На этом установка закончена, рассматрим несколько полезных настроек phpmyadmin.

Настройка phpmyadmin

Пхпадмин готов к работе сразу после установки, дополнительные настройки не обазательны. Приведу полезный пример при использовании - ограничение доступа к phpmyadmin средствами веб-сервера. Для использования панели необходимо будет не только знать имя учетной записи mysql, но и пользователя и пароль для доступа непосредственно к панели.

Рассмотрим сначала пример с веб сервером apache. Будем использовать стандартное средство для ограничения доступа к каталогу с помощью .htaccees. Создадим такой файл в папке со скриптами phpmyadmin:

# mcedit /usr/share/phpMyAdmin/.htaccess
AuthName "Enter Password"
AuthType Basic
Require valid-user
AuthUserFile "/usr/share/phpMyAdmin/.htpasswd"

Теперь создадим файл с авторизационными данными:

# htpasswd -bc /usr/share/phpMyAdmin/.htpasswd user password
user имя пользователя
password пароль

Чтобы авторизация заработала, необходимо в файле /etc/httpd/conf.d/phpMyAdmin.conf в разделе Directory добавить параметр AllowOverride, чтобы получилось вот так:

<Directory /usr/share/phpMyAdmin/>
  AddDefaultCharset UTF-8
  Require all granted
  AllowOverride All
</Directory>

Перезапускаем апач и проверяем настройку. При обращении по адресу веб панели, должно выскочить окошко с авторизацией:

Окно авторизации

 

Проделаем то же самое на nginx. Так же создаем файл с паролем .htaccess:

# htpasswd -bc /usr/share/phpMyAdmin/.htpasswd user password

Если у вас на сервере не установлен httpd, то скорее всего вы увидите ошибку:

-bash: htpasswd: command not found

Необходимой утилиты нет в системе. Установим htpasswd на centos:

# yum install -y httpd-tools

Снова создаем файл с паролем:

# htpasswd -bc /usr/share/phpMyAdmin/.htpasswd user1 password
Adding password for user user1

Отредактируем конфигурационный файл nginx, добавив в секцию server {} новый location:

location /phpmyadmin/ {
  auth_basic "Enter password";
  auth_basic_user_file /usr/share/phpMyAdmin/.htpasswd;
}

Сохраняете конфиг, перезапускаете nginx и проверяете доступ к странице. Должно выскочить такое же, как и с apache, окно авторизации.

Рассмотрим еще несколько полезных настроек phpmyadmin. После входа в панель, в разделе Настройки вы увидите сообщение:

Ваши настройки будут сохранены только для текущей сессии. Для постоянного хранения требуется подключение модуля хранения настроек phpMyAdmin.

Подключим необходимый модуль для сохранения настроек. Модуль это громко сказано, нам всего лишь необходимо создать отдельную базу данных для хранения настроек и активации некоторых расширенных возможностей. Файл для создания базы данных хранится в директории phpmyadmin по адресу /usr/share/phpMyAdmin/sql/create_tables.sql. Копируем содержимое этого файла и выполняем его тут же, в phpmyadmin в разделе SQL:

Выполнение sql запроса в phpmyadmin

Теперь можно идти в настройки и изменять их. Я обычно отключаю проверку новой версии. Они выходят достаточно часто, обновлять мне все равно их лень, поэтому информация о новых версиях мне не нужна. Так же отключаю логотип, можно загрузить свой. Сами полистайте настройки, посмотрите, что вам интересно. Все пункты неплохо задокументированы, можно почитать за что отвечают. Иногда бывает полезно вывести отдельный столбец в списке таблиц с информацией по дате создания и обновления. Это настраивается в разеделе Настройки -> Основная панель -> Структура базы данных.

Если вы хотите подключиться к удаленному mysql серверу с помощью phpmyadmin, воспользуйтесь скриптом настройки подключения по адресу http://ip-адрес-сервера/phpmyadmin/setup/.

Заключение

Я рассмотрел основные моменты по установке и настройке phpmyadmin на веб сервер apache и nginx. Хочу подчеркнуть, что это мой личный опыт. Возможно, я где-то ошибась или поступаю не совсем верно. Если вы заметите это, прошу написать в комментариях. Я приму к сведению и исправлю статью. Я пишу статьи в том числе и для того, чтобы самому научиться чему-то новому. Комментарии к статьям мне в этом помогают.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Видео

Предалагаю посмотреть видео всего процесса установки и настройки phpmyadmin на примере веб сервера apache.

Углубленный онлайн-курс по MikroTik.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

74 комментария

  1. Владимир

    Спасибо Владимир за труд. У меня получилось панель установить только на PHP 5.4. На 5.6 не устанавливается, хотя я и пробовал информацию из комментариев. Как-нибудь ещё попытаюсь.

  2. Аноним

    Добрый день, какой пароль и логин при входе phpMyadmin?

    • Тот, который вы установили в mysql сервере. У phpmyadmin нет своих учетных данных. Используются учетки mysql сервера.

  3. Сергей

    Здравствуйте. Как сделать авторизацию, если phpmyadmin работает на отдельном виртуальном хосте. То есть site.ru для php-fpm и pma.site.ru для phpmyadmin. По данному руководству не получается. Всё сделал как написано, ошибок нет, но окно авторизации не выскакивает. Сервер на nginx.

    • Добавьте то же самое, что в примере для nginx в статье в location / своего виртуального хоста:

      auth_basic "Enter password";
      auth_basic_user_file /usr/share/phpMyAdmin/.htpasswd;

      • Сергей

        У делал конфиг согласно вашей инструкции Nginx + php-fpm на CentOS 7. Там файлы phpmyadmin копируются в отдельную директорию для виртуального домена. Исходя из это вопрос. Нужно ли менять тогда путь до файлов phpmyadmin. То есть везде прописывать не /usr/share/phpMyAdmin/.htpasswd; а /web/sites/pma.site.ru/www/.htpasswd; И еще не могу понять в какой location добавлять. Или создавать новый location? Сейчас у меня nginx ругается
        nginx: [emerg] invalid number of arguments in "auth_basic" directive in /etc/nginx/nginx.conf:105
        Вот конфиг куда я добавил

        # phpmyadmin
        server {
        listen 80;
        server_name pma.site.ru;
        root /web/sites/pma.site.ru/www/;
        index index.php index.html index.htm;
        access_log /web/sites/pma.site.ru/log/access.log main;
        error_log /web/sites/pma.site.ru/log/error.log;

        location ~ \.php$ {
        auth_basic «Enter password»;
        auth_basic_user_file /web/sites/pma.site.ru/www/.htpasswd;

      • Сергей

        Попробовал по всякому. И новый location и существующий. И название локейшена менять. И везде он ругается на неверный аргумент auth_basic. Что я не так делаю?

        • Сергей

          Исправил проблему с nvalid number of arguments in «auth_basic»
          оказывается nginx не понимает кавычки вида «» нужны кавычки вида ""
          Ошибки пропали, но окно авторизации так и не появляется

      • Сергей

        Всё разобрался, спасибо за помощь (ирония).
        auth_basic «Enter password»;
        auth_basic_user_file /usr/share/phpMyAdmin/.htpasswd;
        Оказывается для отдельного виртуального домена эти параметры нужно прописывать не в location, а сразу в секцию server.
        И ещё у меня тупо хром не сбрасывал сессию http и поэтому не выскакивало окно авторизации.

  4. Владимир

    Zerox, Здравствуйте

    По вашему мануалу я дошел до пункта, когда надо в адресную строку http://ip-адрес сервера/phpmyadmin
    и он должен открыть phpmyadmin.

    ln -s /usr/share/phpMyAdmin /usr/share/nginx/html/phpmyadmin

    выполнив это действие в моей директории показывает
    phpmyadmin -> /usr/share/phpMyadmin
    Но при попытке ввести адрес сервера/phpmyadmin, отображается ошибка 404.

    Могли бы вы подсказать, в чем может быть ошибка?

    • Где-то с путями или настройками ошиблись. Смотрите лог web сервера в /var/log/httpd, там будут подсказки по ошибке.

  5. Вячеслав

    Здравствуйте, ищущие и страждующие. Забегал подглядеть и решил почитать коменты (редко читаю).

    Суть многих проблем комментаторов в одной простой вещи Вы пользуетесь статьей как букварем переписываете все и вставляете себе без анализа, что зачем почему.

    Я например старый админ, но как не странно тоже подглядываю статьи подобные, не потому что глуп или не знаю, а потому что порой надо освежить память или сообразить где, я ошибся или что то еще.

    Поэтому приучите себя к 2-м моментам, смотреть несколько примеров и на основе этих примеров создать свое решение под свои задачи. Нельзя копи-пастом научится нужно понимать процесс.
    Отсюда второй момент, учитесь понимать суть процесса и тогда любая задача будет решаться! Вне зависимости от условий, например смена платформы вас не смутит, вам только нужно будет привыкнуть к новому расположению дерева папок например.
    Приведу пример. Вынужден был на некоторое время пересесть по работе на Солярку (операционная система Solaris) она не PC не x86 грубо говоря совсем по другому работает в физическом плане (архитектура процессора другая) но суть все равно Unix, адаптация заняла несколько минут и сводилась к чтению (освежению в памяти) манов по командам которые несколько отличаются и все. Остальное все как по маслу. Потому что зная суть Вы не ошибетесь (нет ошибаться будете но с пониманием ))) ну типа вот я дурачек запятую пропустил)
    Надеюсь не наплодил холиваров.
    Автору добра и печенек! Спасибо за статьи, полезно и качественно.

    • Да, все верно. Я сам постоянно читаю и использую руководства, но надо понимать, что они быстро устаревают, плюс, не всегда подходят один в один. Это просто шпаргалки, где можно посмотреть направление, а если не получается, то исследовать дальше.

      • Вячеслав

        Доброго времени суток. Если есть возможность хотелось бы почитать Ваш вариант настройки httpd+nginx+php-fpm+mysql+phpmyadmin и все это на ssl и несколько пользователей. Например слабый хост без панели управления. Не так давно я столкнулся и пару моментов затупил пришлось пошарить в нете. Самое банальное что меня затупило это после настройки (ssl) несколько сайтов ушли в циклическую подгрузку я целый день тупил понять не мог что мешает загрузится.

        • А зачем тут httpd, если есть php-fpm? Или наоборот, зачем php-fpm, если уже еть httpd? Обычно если httpd используется, то он с php модулем идет. Не вижу смысла комбинировать их вместе. Кейс очень специфичный и редкий. Я вообще так никогда не настраивал.

          • Вячеслав

            Это было нужно для комбинации разных вариантов для 2-х пользователей. в одном варианте как бакенд+фронт и во втором как nginx+php-fpm. тот еще велосипед ))) с гигом оперативы и одним ядром...

  6. подскажите пожалуйста куда капать начинающему.
    выходит ошибка после

    yum install -y phpmyadmin

    Ошибка: Пакет: php-tidy-5.4.16-7.el7.x86_64 (epel)
    Необходимо: php(api) = 20100412-64
    Установлено: php-common-5.6.40-7.el7.remi.x86_64 (@remi-php56)
    php(api) = 20131106-64
    Доступно: php-common-5.4.16-46.el7.x86_64 (base)
    php(api) = 20100412-64
    Ошибка: Пакет: php-process-5.4.16-46.el7.x86_64 (base)
    Необходимо: php-common(x86-64) = 5.4.16-46.el7
    Установлено: php-common-5.6.40-7.el7.remi.x86_64 (@remi-php56)
    php-common(x86-64) = 5.6.40-7.el7.remi
    Доступно: php-common-5.4.16-46.el7.x86_64 (base)
    php-common(x86-64) = 5.4.16-46.el7
    Ошибка: Пакет: php-tidy-5.4.16-7.el7.x86_64 (epel)
    Необходимо: php(zend-abi) = 20100525-64
    Установлено: php-common-5.6.40-7.el7.remi.x86_64 (@remi-php56)
    php(zend-abi) = 20131226-64
    Доступно: php-common-5.4.16-46.el7.x86_64 (base)
    php(zend-abi) = 20100525-64
    Ошибка: Пакет: php-bcmath-5.4.16-46.el7.x86_64 (base)
    Необходимо: php-common(x86-64) = 5.4.16-46.el7
    Установлено: php-common-5.6.40-7.el7.remi.x86_64 (@remi-php56)
    php-common(x86-64) = 5.6.40-7.el7.remi
    Доступно: php-common-5.4.16-46.el7.x86_64 (base)
    php-common(x86-64) = 5.4.16-46.el7
    Вы можете попробовать --skip-broken чтобы обойти проблему
    Вы можете попробовать запустить: rpm -Va --nofiles --nodigest

    • Я так понял, у вас уже стоит php5.6, а phpmyadmin из стандартной репы хочет php5.4. Я бы не заморачивался и скачал вручную скрипты phpmyadmin да распаковал в любой виртуальный хост и запустил оттуда. Так проще и быстрее. Я обычно так поступаю.
      https://www.phpmyadmin.net/downloads/

  7. Spiritofspirt

    Вопрос к сеции "Приводим секцию server {} к следующему виду:"
    стоит "index.html index.htm;"
    это лишнее "index.htm" или так должно быть?

  8. Аноним

    Вы оказались абсолютно правы.
    В логе ошибок сервера nginx видно, что обращаюсь при наборе http:///phpmyadmin НЕ в /usr/share/nginx/html/phpmyadmin , а
    директорию заббикса /usr/share/zabbix/phpmyadmin. (Заббикс ставил по Вашему описанию , но всё заработало сразу без проблем).
    Вылечил по-ленивому:
    создал ещё одну ссылку в таком виде: # ln -s /usr/share/phpMyAdmin /usr/zabbix/phpmyadmin

    Спасибо за очень интересный ресурс !

  9. Аноним

    Здравствуйте, Zerox !
    У Вас прекрасный ресурс ! Мне очень интересно его читать.

    Установил nginx, php 7.1, mariadb (всё работает), затем поставил phpmyadmin как здесь описано? но при попытке запустить phpmyadmin получаю 404 Not Found
    nginx/1.14.2

    Где искать причину?

    • Явно где-то ошибка в конфиге. По вашему урлу, по которому заходите, нет исходников phpmyadmin, поэтому и ошибка 404 Not Found. В логе с ошибками nginx можно посмотреть, в какую реально папку за скриптами он обращается при заходе через браузер на страницу с ошибкой.

  10. Привет дружище, извини что отвлекаю, не можешь помочь с phpMyAdmin?
    Как правильно настроить привилегии пользователей и как правильно настроить таблицу БД, а то я чё то запутался совсем и не могу понять что к чему. У меня проблема в том, что моему phpMyAdmin может подключиться любой пользовать по любому логину и паролю, как бы мне это исправить и что нужно настроить?

  11. Светлана

    я конечно извиняюсь что вас отвлекаю, но может и с этим поможете?
    sudo systemctl status mariadb
    ● mariadb.service - MariaDB database server
    Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
    Active: active (running) since Thu 2018-11-29 17:28:56 MSK; 2min 4s ago
    Process: 29482 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS)
    Process: 29451 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS)
    Main PID: 29481 (mysqld_safe)
    CGroup: /system.slice/mariadb.service
    ├─29481 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
    └─30036 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/...

    Nov 29 17:28:56 my-sayt.ru systemd[1]: Starting MariaDB database server...
    Nov 29 17:28:56 my-sayt.ru mariadb-prepare-db-dir[29451]: Database MariaDB is probably initiali...e.
    Nov 29 17:28:56 my-sayt.ru systemd[1]: Started MariaDB database server.
    Nov 29 17:28:57 my-sayt.ru mysqld_safe[29481]: 181129 17:28:57 mysqld_safe Logging to '/var/lo...g'.
    Nov 29 17:28:57 my-sayt.ru mysqld_safe[29481]: cat: /var/run/mariadb/mariadb.pid: Permission denied
    Nov 29 17:28:57 my-sayt.ru mysqld_safe[29481]: 181129 17:28:57 mysqld_safe Starting mysqld dae...sql
    Hint: Some lines were ellipsized, use -l to show in full.

    это что значит необходимо проверить права доступа к файлам и наличие всех необходимых таблиц в БД?
    не поможете с решением подетальней если можно.

  12. После обновления php по yum update php в centos 7 в /etc/httpd/conf.d
    появилось три файла:
    phpmyadmin.com
    phpmyadmin~.rpmnew
    phpmyadmin~rpmsave
    при переходе по адресу http://адрес-сайта.ru/phpmyadmin/
    выходит ошибка 403 You don't have permission to access /phpmyadmin/ on this server.
    помогите разобраться пожалуйста!

    • У вас файл с настройками заменен на новый, где настройки дефолтные. Либо верните обратно файл phpmyadmin~rpmsave, либо в phpmyadmin.com внесите вручную настройки из rpmsave. Надо внимательно читать, что пишет пакетный менеджер при обновлении. Он наверняка задержался на этом момента и спросил, что делать с конфигурацией. Вы выбрали заменить новой версией файла.

      • Светлана

        то есть надо отредактировать файл phpmyadmin.com
        скопировав все настройки из phpmyadmin~rpmsave так что ли получается?
        а, с двумя оставшимися файлами что делать - можно удалить?

        • Надо осмысленно скопировать именно настройки, а не весь файл. Там наверно формат поменялся, раз с обновлением пришел и новый конфигурационный файл.

          • Светлана

            Спасибо огромное!!! Очень помог и главное вовремя, даже не ожидала что так быстро ответите на мои вопросы.
            по крайней мере намного раньше и качественней моей службы поддержки.
            еще раз благодарю!!!

  13. пробую сделать дополнительную авторизацию, выскакивает окно для ввода пользователя и пароль. Но после ввода правильных данных nginx выдает что страница не найдена. Выдаёт 404 . Куда капать дальше и не знаю.

  14. Доброго дня. Спасибо автору за очень полезную статью. Всё сделал так как написано тут но только на Apache и всё отлично работает отлично.

  15. Добрый день.
    Подскажите в чём может быть проблема, установил nginx, но когда захожу, то пишет что:

    Not Found

    The requested URL /nginx was not found on this server.

  16. Аноним

    Ввденение

  17. [root@centos-7-1]# systemctl status nginx.service
    ● nginx.service - The nginx HTTP and reverse proxy server
    Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
    Active: failed (Result: exit-code) since Thu 2017-07-13 06:07:01 UTC; 24s ago
    Process: 1180 ExecStart=/usr/sbin/nginx (code=exited, status=1/FAILURE)
    Process: 1178 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
    Process: 1176 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
    Jul 13 06:06:59 centos-7-1 nginx[1180]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
    Jul 13 06:06:59 centos-7-1 nginx[1180]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
    Jul 13 06:07:00 centos-7-1 nginx[1180]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
    Jul 13 06:07:00 centos-7-1 nginx[1180]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
    Jul 13 06:07:01 centos-7-1 nginx[1180]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
    Jul 13 06:07:01 centos-7-1 systemd[1]: nginx.service: control process exited, code=exited status=1
    Jul 13 06:07:01 centos-7-1 nginx[1180]: nginx: [emerg] still could not bind()
    Jul 13 06:07:01 centos-7-1 systemd[1]: Failed to start The nginx HTTP and reverse proxy server.
    Jul 13 06:07:01 centos-7-1 systemd[1]: Unit nginx.service entered failed state.
    Jul 13 06:07:01 centos-7-1 systemd[1]: nginx.service failed.

  18. Мануалы рабочие , по крайней мере по ним поставил и настроил : Centos 7 , apache , php 5.4 , mariadb , phpmyadmin и продолжаю дальше читать статьи и знакомиться . Единственное как пишут некоторые проблема возникла когда пытался установить phpmyadmin и zabbix все как указано у автора в статьях но возникли ошибки , потому что обновил php до версии 5.6 (тоже как у автора в статье) . Я пока мало что понимаю в Linux'ax , но удалив php 5.6 и поставив 5.4 все очень даже гладко установилось .
    Автору большое спасибо за то что делится своим опытом и вкладывает в это свои силы и труд .

    • Можно не возвращаться обратно на версию 5.4, а установить из репозитория remo phpmyadmin c поддержкой php 5.6.

      yum --enablerepo=remi,remi-php56 install phpMyAdmin
      • Обратите внимание, перед enablerepo двойной дефис "yum --enablerepo=remi,remi-php56 install phpMyAdmin"

        • Спасибо за замечание, подредактировал комментарий.

          • Максим

            Добрый день.
            Спасибо за развернутые инструкции, и такое количество манов по настройке и инсталяции.

            Было бы корректней поправить статью, а не комментарий. люди тратят уйму времени на решение столь простой задачи, как было замечено выше эта статья тянется и предыдущей по настройке lamp, что стоит просто указать, если обновились до 5.6 надо ставить из репы???
            На момент написания стать, как вы заметили, это тоже не работало, по причине зависимостей пакетов, точнее их отсутcтвия.

      • спасибо! за простое решение установки актуальной версии phpmyadmin с поддержкой php56 - без этой вставочки (remi-php56) прям какой-то "затык" получался!

  19. Мануалы для самого автора! В реале выплывает то одно то другое... Ты на реальном примере делай. Например возьми хост reg.ru и покажи!

    • Возьми сам и покажи. Как я возьму реальный пример reg.ru, если этот домен мне не принадлежит. Придется все равно делать условно. Я не настаиваю, если есть лучше инструкции, пользуйся ими. И со мной поделись, я посмотрю, поучусь.

  20. А как закрыть доступ к phpmyadmin если настроил на pma.site1.ru по вашей инструкции nginx-php-fpm-na-centos-7 (все работает так что я рад, вот сейчас бы еще разобраться как там его паролем закрыть дополнительно)...

    • Разобрался используя документацию nginx оказывается если сервер указан мне надобыло location делать / и все ок.

  21. Кирилл

    Нашел свою ошибку, исправился.

  22. Кирилл

    Помогите пожалуйста, создавая базу через "SQL" прописав в ручную все с "create_tables.sql." команды не проходят и пишит ошибку

    SQL запрос:

    CREATE TABLE IF NOT EXISTS 'pma_relation' (
    'master_db' varchar(64) NOT NULL default '',
    'master_table' varchar(64) NOT NULL default '',
    'master_field' varchar(64) NOT NULL default '',
    'foreign_db' varchar(64) NOT NULL default '',
    'foreign_table' varchar(64) NOT NULL default '',
    'foreign_field' varchar(64) NOT NULL default '',
    PRIMARY KEY ('master_db','master_table','master_field'),
    KEY 'foreign_field' ('foreign_db','foreign_table')
    )
    COMMENT='Relation table'
    DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
    Ответ MySQL: Документация

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''pma_relation' (
    'master_db' varchar(64) NOT NULL default '',
    'master_' at line 1

    • Это что за запрос? По моему ошибка в синтаксисе. Где-то не хватает точки с запятой на конце ;.

      • Кирилл

        Вот запрос такой же как у Вас на фотографии на примере и тоже ошибка

        1 CREATE DATABASE IF NOT EXISTS 'phpmyadmin'
        2 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
        3USE phpmyadmin;

        Ошибка
        SQL запрос:

        CREATE DATABASE IF NOT EXISTS 'phpmyadmin'
        DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

        Ответ MySQL: Документация

        #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''phpmyadmin'
        DEFAULT CHARACTER SET utf8 COLLATE utf8_bin' at line 1

  23. Подскажите после команды yum install -y phpmyadmin получаю след ошибку You could try using --skip-broken to work around the problem, прописываю --skip-broken и снова запускаю установку но phpmyadmin не ставится как побороть?Centos 7 на нем уже поднят zabbix 3.2

    • Это не полный текст ошибки, это предлагаемый вариант решения. Покажи полный текст, может быть понятно будет в чем проблема.

      • [root@zb ~]# yum -y install phpmyadmin
        Loaded plugins: fastestmirror
        Loading mirror speeds from cached hostfile
        * base: mirror.h1host.ru
        * epel: mirror.yandex.ru
        * extras: mirror.h1host.ru
        * updates: mirror.h1host.ru
        Resolving Dependencies
        --> Running transaction check
        ---> Package phpMyAdmin.noarch 0:4.0.10.17-2.el6 will be installed
        --> Processing Dependency: php-mcrypt >= 5.2.0 for package: phpMyAdmin-4.0.10.17-2.el6.noarch
        --> Processing Dependency: php-tcpdf-dejavu-sans-fonts for package: phpMyAdmin-4.0.10.17-2.el6.noarch
        --> Processing Dependency: php-tcpdf for package: phpMyAdmin-4.0.10.17-2.el6.noarch
        --> Processing Dependency: php-php-gettext for package: phpMyAdmin-4.0.10.17-2.el6.noarch
        --> Running transaction check
        ---> Package php-mcrypt.x86_64 0:5.3.3-5.el6 will be installed
        --> Processing Dependency: php(zend-abi) = 20090626 for package: php-mcrypt-5.3.3-5.el6.x86_64
        --> Processing Dependency: php(api) = 20090626 for package: php-mcrypt-5.3.3-5.el6.x86_64
        --> Processing Dependency: libmcrypt.so.4()(64bit) for package: php-mcrypt-5.3.3-5.el6.x86_64
        ---> Package php-php-gettext.noarch 0:1.0.11-12.el6 will be installed
        ---> Package php-tcpdf.noarch 0:6.2.11-1.el6 will be installed
        --> Processing Dependency: php-tidy for package: php-tcpdf-6.2.11-1.el6.noarch
        --> Processing Dependency: php-posix for package: php-tcpdf-6.2.11-1.el6.noarch
        ---> Package php-tcpdf-dejavu-sans-fonts.noarch 0:6.2.11-1.el6 will be installed
        --> Running transaction check
        ---> Package libmcrypt.x86_64 0:2.5.8-9.el6 will be installed
        ---> Package php-mcrypt.x86_64 0:5.3.3-5.el6 will be installed
        --> Processing Dependency: php(zend-abi) = 20090626 for package: php-mcrypt-5.3.3-5.el6.x86_64
        --> Processing Dependency: php(api) = 20090626 for package: php-mcrypt-5.3.3-5.el6.x86_64
        ---> Package php-process.x86_64 0:5.4.16-36.3.el7_2 will be installed
        ---> Package php-tcpdf.noarch 0:6.2.11-1.el6 will be installed
        --> Processing Dependency: php-tidy for package: php-tcpdf-6.2.11-1.el6.noarch
        --> Finished Dependency Resolution
        Error: Package: php-mcrypt-5.3.3-5.el6.x86_64 (epel)
        Requires: php(zend-abi) = 20090626
        Installed: php-common-5.4.16-36.3.el7_2.x86_64 (@updates)
        php(zend-abi) = 20100525-64
        Available: php-common-5.4.16-36.el7_1.x86_64 (base)
        php(zend-abi) = 20100525-64
        Available: php-common-5.4.16-36.1.el7_2.1.x86_64 (updates)
        php(zend-abi) = 20100525-64
        Error: Package: php-mcrypt-5.3.3-5.el6.x86_64 (epel)
        Requires: php(api) = 20090626
        Installed: php-common-5.4.16-36.3.el7_2.x86_64 (@updates)
        php(api) = 20100412-64
        Available: php-common-5.4.16-36.el7_1.x86_64 (base)
        php(api) = 20100412-64
        Available: php-common-5.4.16-36.1.el7_2.1.x86_64 (updates)
        php(api) = 20100412-64
        Error: Package: php-tcpdf-6.2.11-1.el6.noarch (epel)
        Requires: php-tidy
        You could try using --skip-broken to work around the problem
        You could try running: rpm -Va --nofiles --nodigest

        • Ничего не понимаю. У тебя какая версия системы? В логе идет установка пакетов от версии centos 6, но при этом видно, что установлен пакет php-common-5.4.16-36.3.el7_2.x86_64 от 7-й версии. В любом случае тут на лицо проблемы с пакетами, с ними нужно внимательно разбираться. Я советую просто скачать исходники phpmyadmin с сайта и положить их в веб сервер, попробовать зайти и посмотреть, заработает или нет. Возможно все необходимые зависимости уже стоят в системе и все заработает и так.

          Не обязательно ставить phpmyadmin именно через yum. По сути это просто набор php скриптов.

          • а по какому пути положить исходник?

          • CentOS Linux release 7.2.1511

          • Возможно вам пригодится
            Решил проблему после запуска след команд
            sudo yum clean all
            sudo yum install keychecker
            sudo yum install epel-release
            sudo yum install phpmyadmin

            • Я понял, у тебя не был подключен репозиторий epel.

              • в том то и дело что был ведь я из него выкачивал zabbix...хз короче пришлось переподключить

              • Ни черта подобного. Epel ни причем. Установлено в VirtualBox 5.1:
                Centos 7.3.1611
                RAID1
                базовая настройка (по советам сайта): ssh, mc, firewall, iftop и т.п.
                Apache
                PHP 5.4 c обновлением до 5.6 (по тем же советам)
                MariaDB
                Так вот при установке тажа шняга. И мне интересно как ты, автор, описываешь, если идти по твоей инструкции, натыкаешься на такую кочку. Или опять что-то умолчено, как делают многие. И даже с предложенным параметром "--skip-broken" не получается. Файл "phpmyadmin.conf" - отсутствует.

                • Друг, сбавь обороты. Я делаю так, как пишу, и всегда проверяю написанное. Но в системном администрировании все очень быстро меняется. Универсальных инструкций не существует. Если сейчас что-то не получается, значит произошли какие-то изменения. У меня нет возможности проверять все старые инструкции на актуальность.

                  • Александр

                    Добрый день,

                    Я подозреваю что Олег имел ввиду что в статье https://serveradmin.ru/ustanovka-lamp-apache-php-mysql-v-centos-7/#_php_56_CentOS_7 был обновлен PHP с версии 5.4 до версии 5.6.

                    Я дулал по аналогии с вашей статьей, и сейчас устанавливая phpmyadmin возникла аналогичная ошибка:

                    Error: Package: php-process-5.4.16-42.el7.x86_64 (base)
                    Requires: php-common(x86-64) = 5.4.16-42.el7
                    Installed: php-common-5.6.30-1.el7.remi.x86_64 (@remi-php56)
                    php-common(x86-64) = 5.6.30-1.el7.remi
                    Available: php-common-5.4.16-42.el7.x86_64 (base)
                    php-common(x86-64) = 5.4.16-42.el7
                    Error: Package: php-bcmath-5.4.16-42.el7.x86_64 (base)
                    Requires: php-common(x86-64) = 5.4.16-42.el7
                    Installed: php-common-5.6.30-1.el7.remi.x86_64 (@remi-php56)
                    php-common(x86-64) = 5.6.30-1.el7.remi
                    Available: php-common-5.4.16-42.el7.x86_64 (base)
                    php-common(x86-64) = 5.4.16-42.el7
                    Error: Package: php-tidy-5.4.16-7.el7.x86_64 (epel)
                    Requires: php(api) = 20100412-64
                    Installed: php-common-5.6.30-1.el7.remi.x86_64 (@remi-php56)
                    php(api) = 20131106-64
                    Available: php-common-5.4.16-42.el7.x86_64 (base)
                    php(api) = 20100412-64
                    Error: Package: php-tidy-5.4.16-7.el7.x86_64 (epel)
                    Requires: php(zend-abi) = 20100525-64
                    Installed: php-common-5.6.30-1.el7.remi.x86_64 (@remi-php56)
                    php(zend-abi) = 20131226-64
                    Available: php-common-5.4.16-42.el7.x86_64 (base)
                    php(zend-abi) = 20100525-64
                    You could try using --skip-broken to work around the problem
                    You could try running: rpm -Va --nofiles --nodigest
                    [root@TEST conf.d]#

                    При этом опция "--skip-broken" не помогла.

                    В данный момент ищу решение отой ошибки.

                    Если вы с таким уже сталкивались - буду благодарен за помощь.

                    Спасибо.

                  • Александр

                    Вывод комманды yum install phpmyadmin --skip-broken:

                    Packages skipped because of dependency problems:
                    dejavu-fonts-common-2.33-6.el7.noarch from base
                    dejavu-sans-fonts-2.33-6.el7.noarch from base
                    libtidy-0.99.0-31.20091203.el7.x86_64 from epel
                    php-bcmath-5.4.16-42.el7.x86_64 from base
                    php-fedora-autoloader-1.0.0-0.1.rc1.el7.noarch from epel
                    php-php-gettext-1.0.12-1.el7.noarch from epel
                    php-process-5.4.16-42.el7.x86_64 from base
                    php-tcpdf-6.2.13-1.el7.noarch from epel
                    php-tcpdf-dejavu-sans-fonts-6.2.13-1.el7.noarch from epel
                    php-tidy-5.4.16-7.el7.x86_64 from epel
                    phpMyAdmin-4.4.15.10-1.el7.noarch from epel

                    • Александр

                      Решение проблемы: yum --enablerepo=remi,remi-test install phpMyAdmin

    • Виктор

      Автор данной статьи не предусмотрел что:
      На статью будет идти трафик с этой статьи https://serveradmin.ru/ustanovka-lamp-apache-php-mysql-v-centos-7/ и по инструкции у них php обновлен до 5.6.
      Поэтому нужно снести 5.6 через команду
      "sudo yum remove php-cli mod_php php-common"
      и заново установить PHP (5.4) и все заработает. Аналогичная проблема была у меня.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar