Установка и настройка phpMyAdmin во FreeBSD
На сервере под управлением FreeBSD 8.2-RELEASE архитектуры amd64, с работающим web-сервером apache-2.2.21, с прикрученным к нему языком php5-5.3.8 работает СУБД mysql-server-5.5.15_1. Для облегчения собственной жизни решил установить phpMyAdmin для управления сервером MySQL через web-морду. На момент написания статьи версия устанавливаемого продукта была phpMyAdmin-suphp-3.4.5. |
Установка phpMyAdmin не должна вызвать затруднений.
# cd /usr/ports/ # whereis phpmyadmin phpmyadmin: /usr/ports/databases/phpmyadmin # cd /usr/ports/databases/phpmyadmin # make config
В открывшемся окне выбора опций ставим необходимые вам [x]
, не забыв отметить php расширение MYSQLI – Improved MySQL support, которое будет осуществлять cookie-идентификацию (нажмите для увеличения).
Далее делаем:
# make install clean
Важно: если вы еще не установили пароль суперпользователя root в MySQL, сделайте это сейчас командой:
# mysqladmin -u root -h localhost password 'new-password'
где:
— параметр -u указывает пользователя, который будет входить в систему (в данном случае — root);
— параметр -h указывает узел сети (обычно это localhost, если вы настраиваете не удаленный сервер);
— new-password замените на необходимый вам пароль (запомните его).
Чтобы сделать доступным web-сайт phpMyAdmin у себя на сервере, занесите в конфигурационный файл apache22 что-то типа этих строчек:
#nano -w /usr/local/etc/apache22/httpd.conf ... Alias /phpmyadmin/ "/usr/local/www/phpMyAdmin/" <Directory "/usr/local/www/phpMyAdmin/"> Options none AllowOverride Limit Order Deny,Allow Deny from all Allow from 127.0.0.1 .example.com </Directory> ...
Или же настройте доступ к phpMyAdmin через virtualhosts.
# nano -w /usr/local/etc/apache22/Includes/server.conf <VirtualHost *:80> ServerName www.server.domain.ru ServerAlias server.domain.ru ServerAdmin admin@domain.ru ErrorLog /var/log/apache22/server-error.log CustomLog /var/log/apache22/server-access.log common DocumentRoot /usr/local/www/server <Directory "/usr/local/www/server"> Order allow,deny Allow from all </Directory> ... <Directory "/usr/local/www/server/phpMyAdmin"> Options none AllowOverride Limit Order allow,deny Allow from all </Directory> ... </VirtualHost>
Важно: В первом примере настройки apache22 измените .example.com
на имя своего хоста или на свой ip. Доступ к phpMyAdmin в таком случае будете иметь только вы! Во втором примере phpMyAdmin стоит во внутренней сети, доступ к нему я не стал ограничивать. И еще: в первом случае доступ к phpMyAdmin будет осуществляться по ссылке http://server/phpMyAdmin/
(со слешом в конце адресной строки), во втором случае – без оного: http://server/phpMyAdmin
.
Вернемся к настройке устанавливаемого продукта. Теперь нам необходимо сделать некоторые операции для внесения необходимых нам настроек в конфигурационный файл phpMyAdmin – config.inc.php – через его скрипт установки. Для этого в папке, куда установили phpMyAdmin, необходимо создать каталог config, скопировать в него пустой конфигурационный файл и дать на все это дело необходимые разрешения. Делаем:
# cd /usr/local/www/phpMyAdmin # mkdir config # chmod o+rw config # cp config.inc.php config/ # chmod o+w config/config.inc.php # chown -R www:www config/
Описание всех этих действий вы найдете в документации к установленному phpMyAdmin у себя на сервере – http://server/phpMyAdmin/Documentation.html
. Важно: если вы не выполните последнюю приведенную команду, при заходе на web-сервер http://server/phpMyAdmin/setup
вы увидите вот такую ошибку (нажмите для увеличения):
Невозможно загрузить или сохранить настройки Пожалуйста, создайте на сервере в корневой директории phpMyAdmin каталог config и установите у него разрешение на запись, как описано в документации. В противном случае вы сможете только скачать, или просмотреть его.
Если вы выполнили все вышеперечисленные действия, можете заходить к себе на web-сервер по пути: http://server/phpMyAdmin/setup
. Вы увидите следующее окно (нажмите для увеличения):
Нажмите на кнопку “Новый сервер” и в раскрывшемся окне произведите необходимые вам настройки (нажмите для увеличения):
Такие, как:
- Пользовательское имя сервера – server.domain.ru
- Порт сервера – 3306
и нажмите кнопку “Сохранить”. Вы вернетесь в предыдущее окно, где теперь сможете установить “Язык по умолчанию”, после чего не забудьте нажать на кнопку “Сохранить” (нажмите для увеличения).
В какой-то момент (извините, не помню точно), у вас выскочит вот такое предупреждение:
Ключ Blowfish Вы не установлили ключ blowfish и включили cookie идентификацию, по этой причине он был автоматически создан за вас. Данный ключ используется для кодировки cookies; вам не надо его запоминать.
Беспокоится не о чем, программа конфигурирования сама сгенерила некоторую последовательность, которую будет использовать phpMyAdmin для шифрования своих cookies при работе. Изменить его, если считаете необходимым, можно будет потом в файле config.inc.php – это настройка с ключом $cfg['blowfish_secret'] = 'abracadabra';
, где abracadabra и есть ключ Blowfish.
Нажав слева в меню кнопку ссылку “Настройка”, вы попадете в следующее окно (нажмите для увеличения):
Где вы можете указать каталоги для загрузки/выгрузки sql-скриптов. %u
– будет заменен на домашний каталог пользователя (у каждого свой). Важно: не забывайте, что загружаемые скрипты должны иметь расширение “.sql” (или “.sql.bz2”, или “.sql.gz” если вы включите поддержку сжатия данных).
Не забывайте после внесения каких-либо изменений нажимать в окнах кнопку “Сохранить”. Когда вы закончили, просто закройте окно браузера. И выполните следующее (подразумевается, что вы все еще находитесь в каталоге phpMyAdmin):
# mv config/config.inc.php . # chmod o-rw config.inc.php # chown _pma:www config.inc.php # rm -rf config
Список команд перенесет полученный вами конфигурационный файл config.inc.php в папку phpMyAdmin по пути /usr/local/www/phpMyAdmin
, даст ему надлежащие права и удалит каталог config за ненадобностью.
Теперь вам необходимо создать на сервере MySQL базу phpmyadmin, с которой будет работать установленный вами phpMyAdmin. Вам необходимо зайти на сервер MySQL:
# mysql -h localhost -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 48384 Server version: 5.5.15 Source distribution Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
И выполнить команды из sql-скрипта create_tables.sql по пути: /usr/local/www/phpMyAdmin/scripts
:
mysql> source /usr/local/www/phpMyAdmin/scripts/create_tables.sql Query OK, 1 row affected (0.01 sec) Database changed Query OK, 0 rows affected (0.01 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.01 sec) Query OK, 0 rows affected (0.01 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.01 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) mysql> quit Bye #
Если по какой-то причине вы не находите этого скрипта у себя, скачайте его у меня: create_tables.sql
Нам осталось внести в наш конфигурационный файл phpMyAdmin дополнительные строчки и настройка завершена. Файл config.inc.php в конечном счете должен выглядеть примерно вот так:
# less /usr/local/www/phpMyAdmin/config.inc.php <?php /* * Generated configuration file * Generated by: phpMyAdmin 3.4.5 setup script * Date: Fri, 13 Aug 2011 08:04:28 +0400 */ /* Servers configuration */ $i = 0; /* Server: server.domain.ru [1] */ $i++; $cfg['Servers'][$i]['verbose'] = 'server.domain.ru'; $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['port'] = 3306; $cfg['Servers'][$i]['socket'] = ''; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['extension'] = 'mysqli'; $cfg['Servers'][$i]['auth_type'] = 'cookie'; $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = ''; /* End of servers configuration */ $cfg['blowfish_secret'] = 'abracadabra'; $cfg['DefaultLang'] = 'ru-utf-8'; $cfg['ServerDefault'] = 1; $cfg['UploadDir'] = '%u'; $cfg['SaveDir'] = '%u'; /* База данных и таблицы для работы phpMyAdmin */ $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; $cfg['Servers'][$i]['relation'] = 'pma_relation'; $cfg['Servers'][$i]['table_info'] = 'pma_table_info'; $cfg['Servers'][$i]['table_coords'] = 'pma_table_coords'; $cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages'; $cfg['Servers'][$i]['column_info'] = 'pma_column_info'; $cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark'; $cfg['Servers'][$i]['history'] = 'pma_history'; $cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords'; $cfg['Servers'][$i]['tracking'] = 'pma_tracking'; $cfg['Servers'][$i]['userconfig'] = 'pma_userconfig'; ?>
Теперь вы можете, если вам необходимо, изменить ключ Blowfish $cfg['blowfish_secret'] = 'abracadabra';
.
На этом настройка phpMyadmin завершена. Вы можете попробовать зайти с помощью браузера по его пути http://server/phpMyAdmin/
. Если вы увидели окно приглашение:
И после ввода пароля root наблюдаете примерно такую картину (нажмите для увеличения):
…поздравляю, установка и настройка phpMyAdmin прошла успешно!
Добрый день.
Спасибо за статью, все здорово. Но есть один нюанс, хотя делал внимательно, вс как у Вас. При попытке захода на http://serv_ip/phpmyadmin/ выдает ошибку: Forbidden
You don’t have permission to access /phpmyadmin/ on this server.
Куда копать ?
А без слеша “/” в конце?
Без слеша по идее и не должен работать: http://serv_ip/phpmyadmin
Not Found
The requested URL /phpmyadmin was not found on this server.
Да, извиняюсь, что сразу не написал, делал по первому варианту, через алиас.
Если вы хотите, чтоб phpMyAdmin был бы доступен со всех хостов тогда уберите три строчки:
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 .example.com
Если вы хотите разрешить доступ только с определенных хостов то запишите их полные имена (имя_хоста.имя_домсйпа) или их IP адреса в строчку Allow. Если таких адресов несколько, разделяйте их пробелом.
После этого изменения вам придется перезапустить веб-сервер apache.
И так, тоже столкнулся с проблемой как и у Tony. решил так:
<Directory “/usr/local/www/phpMyAdmin/”>nano -w /usr/local/etc/apache22/httpd.conf
…
alias /phpmyadmin/ “/usr/local/www/phpMyAdmin/”
Options none
AllowOverride Limit
Order Deny,Allow
Deny from all
Allow from all
</Directory>
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
DirectoryIndex index.php index.html index.htm
</IfModule>
… после чего рестартнул апаче, и все сразу забегало !
“Если по какой-то причине вы не находите этого скрипта у себя”
Теперь он лежит в паке /usr/local/www/phpMyAdmin/examples/.
Если выдаешь ошибку You don’t have permission to access /phpmyadmin/ on this server.
а в логах
Directory index forbidden by Options directive: /usr/local/www/phpMyAdmin/
то в httpd.conf нужно
Alias /phpmyadmin/ “/usr/local/www/phpMyAdmin/”
<Directory “/usr/local/www/phpMyAdmin/”># вимательно посмотреть на строчку ниже )))
Options -Indexes FollowSymLinks MultiViews AllowOverride Limit Order Deny,Allow Allow from all </Directory>при посещении сайта вываливется сообщение на белом листе:Table ‘ЛОГИН_yumaguzha.rtlma_session’ doesn’t exist SQL=INSERT INTO `rtlma_session` (`session_id`, `client_id`, `time`) VALUES (‘48942e83e0ec0ea00e0f2948b8867d0a’, 0, ‘1367596784’) Помогите, пож !
В статье не правильно присвоены права на директорию phpMyAdmin, с такими правами всегда получите ошибку доступа 403, хоть есть слеш в конце алиаса хоть нет, а с правами 755 появляется нормальный доступ и без и со слешем в конце.
Установка phpMyAdmin не должна вызвать затруднений. # cd /usr/ports/ # whereis phpmyadmin phpmyadmin: /usr/ports/databases/phpmyadmin # cd /usr/ports/databases/phpmyadmin # make config
Скажите пожалуйста, куда всё это нужно писать?