Установка ПО · 4 min read · Oct 01, 2025
Установка PowerDNS (с MySQL бэкендом) и Poweradmin на Debian Squeeze
Установка PowerDNS (с MySQL бэкендом) и Poweradmin на Debian Squeeze
Версия 1.0
Автор: Фалко Тимме
Следите за мной в Twitter
Эта статья показывает, как установить сервер имен PowerDNS (с MySQL бэкендом) и панель управления Poweradmin для PowerDNS на системе Debian Squeeze. PowerDNS - это высокопроизводительный сервер имен только с авторитетом - в описанной здесь настройке он будет читать DNS записи из базы данных MySQL (аналогично MyDNS), хотя также поддерживаются другие бэкенды, такие как PostgreSQL. Poweradmin - это веб-панель управления для PowerDNS.
Я не даю никаких гарантий, что это сработает для вас!
1 Предварительная заметка
В этом примере я использую хост Debian Squeeze с именем сервера server1.example.com и IP-адресом 192.168.0.100, настроенный в соответствии с первыми шестью главами этого руководства: Идеальный сервер - Debian Squeeze (Debian 6.0) [ISPConfig 2].
Я настрою только один сервер PowerDNS в этом примере (мастер); добавление слейвов PowerDNS можно легко осуществить с помощью репликации базы данных MySQL от мастера к слейвам, поэтому передача зон не требуется (это снова похоже на MyDNS). Репликацию базы данных MySQL можно настроить в соответствии с этим руководством: Как настроить репликацию базы данных в MySQL (PowerDNS также поддерживает нативные передачи зон (для сценариев, когда вы не можете использовать репликацию MySQL) - см. http://downloads.powerdns.com/documentation/html/replication.html).
2 Установка MySQL
Чтобы установить MySQL, мы выполняем
apt-get install mysql-server mysql-clientВам будет предложено ввести пароль для пользователя root MySQL - этот пароль действителен для пользователя root@localhost, а также [email protected], поэтому нам не нужно будет указывать пароль root MySQL вручную позже:
Новый пароль для пользователя MySQL “root”: <– вашпарольrootsql
Повторите пароль для пользователя MySQL “root”: <– вашпарольrootsql
Мы хотим, чтобы MySQL слушал на всех интерфейсах (это важно для репликации базы данных MySQL!), а не только на localhost, поэтому мы редактируем /etc/mysql/my.cnf и комментируем строку bind-address = 127.0.0.1:
vi /etc/mysql/my.cnf| [...] #bind-address = 127.0.0.1 [...] |
Затем мы перезапускаем MySQL:
/etc/init.d/mysql restartТеперь проверьте, что сеть включена. Выполните
netstat -tap | grep mysqlВывод должен выглядеть следующим образом:
server1:~# netstat -tap | grep mysql
tcp 0 0 :mysql :* LISTEN 2453/mysqld
server1:~#
3 Установка PowerDNS
Чтобы установить PowerDNS, мы выполняем
apt-get install pdns-server pdns-backend-mysqlКонфигурация PowerDNS находится в каталоге /etc/powerdns - я к этому вернусь через мгновение.
Теперь мы подключаемся к MySQL:
mysql -u root -pВведите ваш пароль root MySQL, и вы должны оказаться в оболочке MySQL. В оболочке MySQL мы создаем базу данных для PowerDNS:
CREATE DATABASE powerdns;Затем мы создаем пользователя базы данных (powerdns) для PowerDNS:
GRANT ALL ON powerdns. TO ‘power_admin’@’localhost’ IDENTIFIED BY ‘power_admin_password’;
GRANT ALL ON powerdns. TO ‘power_admin’@’localhost.localdomain’ IDENTIFIED BY ‘power_admin_password’;
FLUSH PRIVILEGES;
(Замените power_admin_password на пароль по вашему выбору.)
Теперь мы создаем таблицы, необходимые PowerDNS…
USE powerdns;CREATE TABLE domains (
id INT auto_increment,
name VARCHAR(255) NOT NULL,
master VARCHAR(128) DEFAULT NULL,
last_check INT DEFAULT NULL,
type VARCHAR(6) NOT NULL,
notified_serial INT DEFAULT NULL,
account VARCHAR(40) DEFAULT NULL,
primary key (id)
);
CREATE UNIQUE INDEX name_index ON domains(name);CREATE TABLE records (
id INT auto_increment,
domain_id INT DEFAULT NULL,
name VARCHAR(255) DEFAULT NULL,
type VARCHAR(6) DEFAULT NULL,
content VARCHAR(255) DEFAULT NULL,
ttl INT DEFAULT NULL,
prio INT DEFAULT NULL,
change_date INT DEFAULT NULL,
primary key(id)
);
CREATE INDEX rec_name_index ON records(name);
CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);
CREATE TABLE supermasters (
ip VARCHAR(25) NOT NULL,
nameserver VARCHAR(255) NOT NULL,
account VARCHAR(40) DEFAULT NULL
);
… и наконец выходим из оболочки MySQL:
quit;Теперь мы должны настроить PowerDNS так, чтобы он использовал MySQL бэкенд:
vi /etc/powerdns/pdns.confДобавьте строку launch=gmysql в pdns.conf:
| [...] ################################# # launch Какие бэкенды запускать и в каком порядке их опрашивать # # launch= launch=gmysql [...] |
Затем откройте /etc/powerdns/pdns.d/pdns.local и сделайте его следующим:
vi /etc/powerdns/pdns.d/pdns.local | # Здесь находятся локальные изменения, которые сделал пользователь, такие как конфигурация # нескольких бэкендов, которые существуют. gmysql-host=127.0.0.1 gmysql-user=power_admin gmysql-password=power_admin_password gmysql-dbname=powerdns |
Затем перезапустите pdns:
/etc/init.d/pdns restartВот и все, PowerDNS теперь готов к использованию. Чтобы узнать больше о нем, пожалуйста, обратитесь к его документации: http://downloads.powerdns.com/documentation/html/index.html
4 Установка Poweradmin
Теперь давайте установим Poweradmin, веб-панель управления для PowerDNS. Poweradmin написан на PHP, поэтому мы должны установить веб-сервер (в этом примере я использую Apache2) и PHP:
apt-get install apache2 libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php-pear php5-imap php5-mcrypt php5-ming php5-mysql php5-xmlrpc gettext php-db php-mdb2 php-mdb2-driver-mysqlПерезапустите Apache после этого:
/etc/init.d/apache2 restart Теперь все предварительные требования для Poweradmin установлены, и мы можем начать установку Poweradmin (я установлю его в подкаталоге /var/www - /var/www является корневым каталогом документа по умолчанию для веб-сайта Apache на Debian; если вы создали виртуальный хост с другим корневым каталогом документа, пожалуйста, отрегулируйте пути).
Перейдите на https://www.poweradmin.org/trac/wiki/GettingPoweradmin и загрузите последний пакет Poweradmin, например, следующим образом:
cd /tmp
wget https://www.poweradmin.org/download/poweradmin-2.1.5.tgz
Затем установите его в каталог /var/www/poweradmin следующим образом:
tar xvfz poweradmin-2.1.5.tgz
mv poweradmin-2.1.5 /var/www/poweradmin
touch /var/www/poweradmin/inc/config.inc.php
chown -R www-data:www-data /var/www/poweradmin/
Теперь откройте браузер и запустите веб-установщик Poweradmin (http://server1.example.com/poweradmin/install/index.php или http://192.168.0.100/poweradmin/install/index.php).
Выберите ваш язык (английский или голландский):

Нажмите кнопку Перейти к шагу 3, чтобы продолжить:

Теперь заполните данные вашей базы данных. Важно, чтобы вы заполнили данные для пользователя root MySQL, а не для пользователя MySQL powerdns, которого мы создали ранее! Также укажите пароль для администратора для веб-интерфейса Poweradmin (это тот пароль, который пользователь admin будет использовать для входа в Poweradmin позже):

На следующей странице заполните данные для пользователя MySQL power_admin, которого мы создали в главе 3. Также заполните два основных сервера имен, которые будут использоваться в ваших зонах, если вы не укажете другие серверы имен при создании зоны (обычно это имена текущей системы и слейв-сервера (для которого вы можете настроить репликацию MySQL, см. мои предварительные заметки в главе 1)):

На следующем экране установщик просит вас выполнить запрос MySQL. Нам не нужно этого делать, потому что мы уже сделали что-то подобное в главе 3 (две команды GRANT), так что мы готовы. Нажмите на Перейти к шагу 6:

Get new posts in your inbox
No spam. Unsubscribe anytime.