Phpmyadmin - популярный инструмент для управления через браузер базами данных mysql. Я почти всегда устанавливаю его на сервер, если там есть базы mysql. Мне он кажется наиболее простым и удобным средством управления. В статье опишу подробно процесс установки на web сервер apache и nginx.
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Содержание:
Введение
Ранее я уже касался темы установки phpmyadmin в статье про настройку web сервера на базе nginx. Сейчас хочу рассмотреть более подробно этот вопрос не только на nginx, но и традиционном apache (httpd).
Несколько слов о том, что же из себя представляет инструмент под названием phpmyadmin. Это набор php скриптов, которые устанавливаются на веб сервер. С их помощью можно подключиться к локальному или удаленному mysql серверу и управять им через веб браузер. Я чаще всего с помощью phpmyadmin делаю следующие операции:
- Создание новых баз и пользователей, назначение прав.
- Экспорт или импорт баз не очень большого объема, до 50-ти мегабайт. Если база большего объема, использую утилиты командной строки (mysqldump и mysql) для управления сервером БД.
- Просмотр содержимого баз данных или информации о них.
По сути, делаю практически все стандартные действия с базами данных. Без phpmyadmin можно обходиться, для самых простых конфигураций серверов (например голый zabbix сервер) мне хватает консольных утилит. Но если есть, к примеру, веб сервер с сайтами, я обязательно поставлю phpmyadmin. Мне так быстрее и удобнее.
Приступим к простой установке phpmyadmin на CentOS 7.
Подготовка web сервера apache
Далее я буду считать, что у вас уже есть установленный и настроенный сервер CentOS 7. Если это не так, то смотрите мои подробные инструкции с видео на тему установки и базовой настройки сервера CentOS 7.
Если на голом сервере выполнить:
# yum install phpmyadmin
Вы увидите полный список зависимостей, но в нем не будет самого веб сервера и интерпретатора 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:
Если видите такой же вывод, значит все в порядке, веб сервер готов для работы с 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. Вы должны увидеть страницу логина:
В этот момент я понял, что мне некуда логиниться. На тестовом сервере, где я готовлю статью, нет 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:
Дальше устанавливаем 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)
Это сязано с тем, что в папке /var/lib/php нет директории session. Исправляем это:
# cd /var/lib/php/ # mkdir session # chown apache:apache session/
Перезагружаем страницу, ошибка должна исчезнуть. Можно подключиться к 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:
Теперь можно идти в настройки и изменять их. Я обычно отключаю проверку новой версии. Они выходят достаточно часто, обновлять мне все равно их лень, поэтому информация о новых версиях мне не нужна. Так же отключаю логотип, можно загрузить свой. Сами полистайте настройки, посмотрите, что вам интересно. Все пункты неплохо задокументированы, можно почитать за что отвечают. Иногда бывает полезно вывести отдельный столбец в списке таблиц с информацией по дате создания и обновления. Это настраивается в разеделе Настройки -> Основная панель -> Структура базы данных.
Если вы хотите подключиться к удаленному mysql серверу с помощью phpmyadmin, воспользуйтесь скриптом настройки подключения по адресу http://ip-адрес-сервера/phpmyadmin/setup/.
Заключение
Я рассмотрел основные моменты по установке и настройке phpmyadmin на веб сервер apache и nginx. Хочу подчеркнуть, что это мой личный опыт. Возможно, я где-то ошибась или поступаю не совсем верно. Если вы заметите это, прошу написать в комментариях. Я приму к сведению и исправлю статью. Я пишу статьи в том числе и для того, чтобы самому научиться чему-то новому. Комментарии к статьям мне в этом помогают.
Помогла статья? Подписывайся на telegram канал автора
Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.Видео
Предалагаю посмотреть видео всего процесса установки и настройки phpmyadmin на примере веб сервера apache.
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Спасибо Владимир за труд. У меня получилось панель установить только на PHP 5.4. На 5.6 не устанавливается, хотя я и пробовал информацию из комментариев. Как-нибудь ещё попытаюсь.
Добрый день, какой пароль и логин при входе phpMyadmin?
Тот, который вы установили в mysql сервере. У phpmyadmin нет своих учетных данных. Используются учетки mysql сервера.
Здравствуйте. Как сделать авторизацию, если 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 и поэтому не выскакивало окно авторизации.
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, там будут подсказки по ошибке.
Здравствуйте, ищущие и страждующие. Забегал подглядеть и решил почитать коменты (редко читаю).
Суть многих проблем комментаторов в одной простой вещи Вы пользуетесь статьей как букварем переписываете все и вставляете себе без анализа, что зачем почему.
Я например старый админ, но как не странно тоже подглядываю статьи подобные, не потому что глуп или не знаю, а потому что порой надо освежить память или сообразить где, я ошибся или что то еще.
Поэтому приучите себя к 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. тот еще велосипед ))) с гигом оперативы и одним ядром...
подскажите пожалуйста куда капать начинающему.
выходит ошибка после
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/
phpMyAdmin 4.9.11 должен работать с php5.6
Вопрос к сеции "Приводим секцию server {} к следующему виду:"
стоит "index.html index.htm;"
это лишнее "index.htm" или так должно быть?
Вы оказались абсолютно правы.
В логе ошибок сервера nginx видно, что обращаюсь при наборе http:///phpmyadmin НЕ в /usr/share/nginx/html/phpmyadmin , а
директорию заббикса /usr/share/zabbix/phpmyadmin. (Заббикс ставил по Вашему описанию , но всё заработало сразу без проблем).
Вылечил по-ленивому:
создал ещё одну ссылку в таком виде: # ln -s /usr/share/phpMyAdmin /usr/zabbix/phpmyadmin
Спасибо за очень интересный ресурс !
Здравствуйте, Zerox !
У Вас прекрасный ресурс ! Мне очень интересно его читать.
Установил nginx, php 7.1, mariadb (всё работает), затем поставил phpmyadmin как здесь описано? но при попытке запустить phpmyadmin получаю 404 Not Found
nginx/1.14.2
Где искать причину?
Явно где-то ошибка в конфиге. По вашему урлу, по которому заходите, нет исходников phpmyadmin, поэтому и ошибка 404 Not Found. В логе с ошибками nginx можно посмотреть, в какую реально папку за скриптами он обращается при заходе через браузер на страницу с ошибкой.
Спасибо!)
Привет дружище, извини что отвлекаю, не можешь помочь с phpMyAdmin?
Как правильно настроить привилегии пользователей и как правильно настроить таблицу БД, а то я чё то запутался совсем и не могу понять что к чему. У меня проблема в том, что моему phpMyAdmin может подключиться любой пользовать по любому логину и паролю, как бы мне это исправить и что нужно настроить?
я конечно извиняюсь что вас отвлекаю, но может и с этим поможете?
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.
это что значит необходимо проверить права доступа к файлам и наличие всех необходимых таблиц в БД?
не поможете с решением подетальней если можно.
Тут логи обрезаны, ничего не понятно. Но я вижу, что сервис работает.
После обновления 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 так что ли получается?
а, с двумя оставшимися файлами что делать - можно удалить?
Надо осмысленно скопировать именно настройки, а не весь файл. Там наверно формат поменялся, раз с обновлением пришел и новый конфигурационный файл.
Спасибо огромное!!! Очень помог и главное вовремя, даже не ожидала что так быстро ответите на мои вопросы.
по крайней мере намного раньше и качественней моей службы поддержки.
еще раз благодарю!!!
пробую сделать дополнительную авторизацию, выскакивает окно для ввода пользователя и пароль. Но после ввода правильных данных nginx выдает что страница не найдена. Выдаёт 404 . Куда капать дальше и не знаю.
Доброго дня. Спасибо автору за очень полезную статью. Всё сделал так как написано тут но только на Apache и всё отлично работает отлично.
Добрый день.
Подскажите в чём может быть проблема, установил nginx, но когда захожу, то пишет что:
Not Found
The requested URL /nginx was not found on this server.
Ввденение
[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.
Мануалы рабочие , по крайней мере по ним поставил и настроил : 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.
Обратите внимание, перед enablerepo двойной дефис "yum --enablerepo=remi,remi-php56 install phpMyAdmin"
Спасибо за замечание, подредактировал комментарий.
Добрый день.
Спасибо за развернутые инструкции, и такое количество манов по настройке и инсталяции.
Было бы корректней поправить статью, а не комментарий. люди тратят уйму времени на решение столь простой задачи, как было замечено выше эта статья тянется и предыдущей по настройке lamp, что стоит просто указать, если обновились до 5.6 надо ставить из репы???
На момент написания стать, как вы заметили, это тоже не работало, по причине зависимостей пакетов, точнее их отсутcтвия.
спасибо! за простое решение установки актуальной версии phpmyadmin с поддержкой php56 - без этой вставочки (remi-php56) прям какой-то "затык" получался!
Мануалы для самого автора! В реале выплывает то одно то другое... Ты на реальном примере делай. Например возьми хост reg.ru и покажи!
Возьми сам и покажи. Как я возьму реальный пример reg.ru, если этот домен мне не принадлежит. Придется все равно делать условно. Я не настаиваю, если есть лучше инструкции, пользуйся ими. И со мной поделись, я посмотрю, поучусь.
А как закрыть доступ к phpmyadmin если настроил на pma.site1.ru по вашей инструкции nginx-php-fpm-na-centos-7 (все работает так что я рад, вот сейчас бы еще разобраться как там его паролем закрыть дополнительно)...
Разобрался используя документацию nginx оказывается если сервер указан мне надобыло location делать / и все ок.
Нашел свою ошибку, исправился.
В чем была проблема?
В запятых)
Помогите пожалуйста, создавая базу через "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
Подскажите после команды 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) и все заработает. Аналогичная проблема была у меня.
Спасибо за комментарий, я это не учел.
неплохо бы этот момент обозначить в статье, сэкономит время многим :))