PowerDNS インストール · 2 min read · Oct 01, 2025

Debian Squeeze に PowerDNS (MySQL バックエンド) と Poweradmin をインストールする

Debian Squeeze に PowerDNS (MySQL バックエンド) と Poweradmin をインストールする

バージョン 1.0
著者: Falko Timme
Twitter でフォローしてください

この記事では、Debian Squeeze システムに PowerDNS 名前サーバー (MySQL バックエンド付き) と PowerDNS 用の Poweradmin コントロールパネルをインストールする方法を示します。PowerDNS は高性能の権威のみの名前サーバーであり、ここで説明するセットアップでは MySQL データベースから DNS レコードを読み取ります (MyDNS に似ています)。ただし、PostgreSQL などの他のバックエンドもサポートされています。Poweradmin は PowerDNS 用のウェブベースのコントロールパネルです。

これがあなたにとって機能するという保証はありません!

1 前提条件

この例では、ホスト名 server1.example.com と IP アドレス 192.168.0.100 を持つ Debian Squeeze ホストを使用しています。このチュートリアルの最初の 6 章に従って設定されています: 完璧なサーバー - Debian Squeeze (Debian 6.0) [ISPConfig 2]。

この例では、PowerDNS サーバーを 1 台 (マスター) のみ設定します。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

MySQL の root ユーザーのパスワードを提供するように求められます。このパスワードは、ユーザー root@localhost および [email protected] に対して有効ですので、後で手動で MySQL root パスワードを指定する必要はありません:

MySQL “root” ユーザーの新しいパスワード: <– yourrootsqlpassword
MySQL “root” ユーザーのパスワードを繰り返してください: <– yourrootsqlpassword

MySQL がすべてのインターフェースでリッスンするようにしたい (これは MySQL データベースレプリケーションにとって重要です!)。したがって、/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

MySQL root パスワードを入力すると、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

pdns.conf に launch=gmysql の行を追加します:

| [...] ################################# # launch Which backends to launch and order to query them in # # 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 のインストール

次に、PowerDNS 用のウェブベースのコントロールパネルである Poweradmin をインストールします。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 は Debian の Apache のデフォルトウェブサイトのドキュメントルートです。異なるドキュメントルートで vhost を作成した場合は、パスを調整してください)。

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)。

言語を選択します (英語またはオランダ語):

次のステップに進むには、Go to step 3 ボタンをクリックします:

次に、データベースの詳細を入力します。MySQL root ユーザーの詳細を入力することが重要です。以前に作成した powerdns MySQL ユーザーではありません!また、Poweradmin ウェブインターフェースの管理ユーザーのパスワードも提供してください (これは、ユーザー admin が後で Poweradmin にログインするために使用するパスワードです):

次のページでは、chapter 3 で作成した power_admin MySQL ユーザーの詳細を入力します。また、ゾーンを作成する際に異なる名前サーバーを提供しない限り、ゾーンで使用される 2 つのデフォルトの名前サーバーも入力します (通常、これらは現在のシステムの名前とスレーブサーバーの名前です (MySQL レプリケーションを設定できます。chapter 1 の前提条件を参照してください)):

次の画面では、インストーラーが MySQL クエリを実行するように求めます。chapter 3 で既に似たようなことを行ったので (2 つの GRANT ステートメント)、問題ありません。Go to step 6 をクリックします:

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。