Наверняка часто разработчикам требуется установить phpMyAdmin на виртуальную машину от 1С-Битрикс. В блогах можно найти решение, как установить phpMyAdmin отдельно. Так же phpMyAdmin уже стоит на виртуалке, но нет информации по его конфигурированию.
Хотелось бы небольшой ликбез от разработчиков виртуальной машины по использованию phpMyAdmin, как лучше конфигурировать, что стоит делать, а что не стоит, особенно настройка авторизации.
имхо - это наиболее уязвимое, с точки зрения безопасности, место в проекте развернутом на WMBitrix, по незнанию можно открыть лишнего.
На виртуальной машине 2.0 phpMyAdmin не установлен. Установка его - это уже ослабление безопасности.
1. Ставим пакет:
Цитата
yum install phpmyadmin-zend-server-php-5.3
2. Через меню машины включаем контрольную панель Zend:
Цитата
3. Enable ZendServerCE control panel
После этого надо обязательно установить пароль на ZendServer: http://<ip машины>:10082
3. Обнаружил, что на CentOS в настройках php.ini ZendServer'а путь к сокету mysql не верный. Исправляется это командой:
Цитата
sed -i 's#^mysql.default_socket.*#mysql.default_socket=/var/lib/mysqld/mysqld.sock#' /usr/local/zend/gui/lighttpd/etc/php-fcgi.ini
4. Теперь вопрос безопасности: доступ к phpMyAdmin по умолчанию открыт только с локальной машины. Чтобы открыть для адреса из локальной сети, выполняем команду:
Цитата
sed -i 's#\$HTTP\["remoteip"\].*#$HTTP["remoteip"] !~ "192.168.4.5" {#' /usr/local/zend/gui/lighttpd/etc/lighttpd.conf
Здесь надо заменить "192.168.4.5" на свой IP адрес.
5. Перезапускаем ZendServer
Цитата
/etc/init.d/zend-server restart
Теперь при обращении с адреса 192.168.4.5 на http://<ip машины>:10082/phpmyadmin откроется окно ввода пароля. Вводим root без пароля и получаем доступ к базе.
Внимание! Открытая база даже для конкретного IP - это угроза безопасности! Делайте это только если хорошо осознаете, что делаете.
Denis Sharomov После этого надо обязательно установить пароль на ZendServer: http://<ip машины>:10082
https://<ip машины>:10082/ZendServer
Цитата
Denis Sharomov Теперь при обращении с адреса 192.168.4.5 на http://<ip машины>:10082/phpmyadmin откроется окно ввода пароля. Вводим root без пароля и получаем доступ к базе.
через putty соединение с сервером устанавливается:
Код
[root@localhost bin]# mysql -uroot -p*******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 205
Server version: 5.1.52 Source distribution
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> _
Файл сокета /var/lib/mysqld/mysqld.sock имеет права 777 и группа/владелец у него mysql/mysql и размер 0 байт (так должно быть?)
/usr/bin/mysqladmin показывает следующие значения переменных:
Код
Variables (--variable-name=value)
and boolean options {FALSE|TRUE} Value (after reading options)
--------------------------------- -----------------------------
count 0
debug-check FALSE
debug-info FALSE
force FALSE
compress FALSE
character-sets-dir (No default value)
default-character-set utf8
host X (No default value)
no-beep FALSE
port X 3306
relative FALSE
socket /var/lib/mysqld/mysqld.sock
sleep 0
ssl X FALSE
ssl-ca (No default value)
ssl-capath (No default value)
ssl-cert (No default value)
ssl-cipher (No default value)
ssl-key (No default value)
ssl-verify-server-cert FALSE
user X (No default value)
verbose FALSE
vertical FALSE
connect_timeout 43200
shutdown_timeout 3600
Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf
Все сделал по инструкции Дениса, но при переходе на https://:10082/phpmyadmin после ввода пароля появляется ошибка phpMyAdmin - Ошибка #2002 - Сервер не отвечает (либо сокет локального MySQL-сервера некорректно настроен)
Проверьте еще раз, все должно работать - я так делал и все работает нормально
Цитата
Denis Sharomov пишет: 3. Обнаружил, что на CentOS в настройках php.ini ZendServer'а путь к сокету mysql не верный. Исправляется это командой:
Цитата
sed -i 's#^mysql.default_socket.*#mysql.default_socket=/var/lib/mysqld/mysqld.sock#'/usr/local/zend/gui/lighttpd/etc/php-fcgi.ini
4. Теперь вопрос безопасности: доступ к phpMyAdmin по умолчанию открыт только с локальной машины. Чтобы открыть для адреса из локальной сети, выполняем команду:
Цитата
sed -i 's#\$HTTP\["remoteip"\].*#$HTTP["remoteip"] !~ "192.168.4.5" {#' /usr/local/zend/gui/lighttpd/etc/lighttpd.conf
Здесь надо заменить "192.168.4.5" на свой IP адрес.
Проблема очевидно в сокете. В первый раз тоже напоролся на данную ошибку, но позже обнаружил, что я исправил сокет для pdo_mysql группы, а не для самого mysql (в конфиге ниже). Исправил и всё заработало.
Shevtcoff_ пишет: А как поставить на виртуальную машину 3.0 phpMyAdmin? пробовал этим методом, ругается на неизвестность команд
Все очень просто: Скачайте нужный вам пакет вот отсюда Распакуйте в папке у себя на локалке и залейте на виртуалку по SSH в папку /usr/share/ или сразу залейте архив в эту папку и распакуйте на месте командой: tar -xvzf /usr/share/phpmyadmin.... У Вас должно получиться вот так: /usr/share/phpmyadmin/ Заходим в phpmyadmin и переименовываем config.sample.inc.php в config.inc.php и тут же открываем его для редактирования. В нем находим: $cfg['Servers'][$i]['auth_type'] = 'cookie'; меняем на: $cfg['Servers'][$i]['auth_type'] = 'http'; находим: $cfg['Servers'][$i]['connect_type'] = 'tcp'; меняем на: $cfg['Servers'][$i]['connect_type'] = 'socet'; находим: #$cfg['DefaultLang'] = 'en'; снимаем комменты # и меняем язык на по умолчанию ru Должно получиться: $cfg['DefaultLang'] = 'ru';
Сохраняем но оставляем открытым и идем в /etc/httpd/bx/conf/ и загружаем туда созданный в блокноте файл: phpmyadmin.conf следующего содержания:
Цитата
Alias /myadmin /usr/share/phpmyadmin/ <Directory /usr/share/phpmyadmin> AllowOverride All RemoveHandler .php AddType application/x-httpd-php .php php_admin_value open_basedir /usr/share/phpmyadmin:/etc/phpmyadmin:/etc/phpmyadmin:/tmp:.:..:./:. ./ php_admin_value upload_tmp_dir /tmp php_admin_value include_path /etc/phpmyadmin:/etc/phpmyadmin:.:.. php_admin_value session.save_path /tmp php_admin_value safe_mode off DirectoryIndex index.php Order allow,deny Allow from all </Directory>
В нем прописаны алиас на который будет отзываться Ваш phpmyadmin
В папке /etc/ создаем папку c аналогичным названием /phpmyadmin/ должно получиться: /etc/phpmyadmin/ и в неё сохраняем копию config.inc.php
ребутим индейца
service httpd restart
И запускаем phpMyAdmin, после запуска должно появиться приглашение ввести логин и пароль. Если после ввода логина и пароля открывается что то подобное:
Цитата
#2002 - Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) The server is not responding (or the local server's socket is not correctly configured).
То возвращаемся к файлу /usr/share/phpmyadmin/config.inc.php который должен у нас быть открыт и в нем меняем строчку: $cfg['Servers'][$i]['host'] = 'localhost'; на $cfg['Servers'][$i]['host'] = '127.0.0.1';
#2002 - Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) The server is not responding (or the local server's socket is not correctly configured).
Файла /var/lib/mysql/mysql.sock не оказалось, зато есть /var/lib/mysqld/mysqld.sock
Починил так:
cd /var/lib/mysql/ ln -s . ./mysqld/mysqld.sock mysql.sock
(создал ссылку /var/lib/mysql/mysql.sock на /var/lib/mysqld/mysqld.sock)
Ошибка, скорее всего, из-за кривых настроек PHP. Вижу в phpinfo():