PowerDNS インストール · 3 min read · Oct 02, 2025
Fedora 10 における PowerDNS (MySQL バックエンド) と Poweradmin のインストール
Fedora 10 における PowerDNS (MySQL バックエンド) と Poweradmin のインストール
バージョン 1.0
著者: Falko Timme
この記事では、Fedora 10 システムに PowerDNS 名前サーバー (MySQL バックエンド付き) と PowerDNS 用の Poweradmin コントロールパネルをインストールする方法を示します。PowerDNS は高性能の権威のみの名前サーバーであり、ここで説明するセットアップでは MySQL データベースから DNS レコードを読み取ります (MyDNS に似ています)。ただし、PostgreSQL などの他のバックエンドもサポートされています。Poweradmin は PowerDNS のためのウェブベースのコントロールパネルです。
私はこれがあなたにとって機能するという保証はしません!
1 前提条件
この例では、ホスト名 server1.example.com と IP アドレス 192.168.0.100 を持つ Fedora 10 ホストを使用しています。このチュートリアルの最初の 6 章に従って設定されています: 完璧なサーバー - Fedora 10。
この例では、1 台の PowerDNS サーバー (マスター) のみを設定します。PowerDNS スレーブを追加することは、マスターからスレーブへの MySQL データベースレプリケーションを使用することで簡単に実現できるため、ゾーントランスファーは必要ありません (これも MyDNS に似ています)。MySQL データベースレプリケーションは、次のチュートリアルに従って設定できます: MySQL でのデータベースレプリケーションの設定方法 (PowerDNS は、MySQL レプリケーションを使用できないシナリオのためにネイティブゾーントランスファーもサポートしています - http://downloads.powerdns.com/documentation/html/replication.html を参照してください)。
2 MySQL のインストール
MySQL をインストールするには、次のようにします:
yum install mysql mysql-server次に、MySQL のシステム起動リンクを作成し (システムが起動するたびに MySQL が自動的に起動するように)、MySQL サーバーを起動します:
chkconfig –levels 235 mysqld on
/etc/init.d/mysqld start
ネットワークが有効になっているか確認します。次のコマンドを実行します:
netstat -tap | grep mysql次のような出力が表示されるはずです ( *:mysql は MySQL がすべてのインターフェースでリッスンしていることを意味し、これは MySQL レプリケーションにとって重要です!):
[root@server1 ~]# netstat -tap | grep mysql
tcp 0 0 :mysql :* LISTEN 2407/mysqld
[root@server1 ~]#
表示されない場合は、/etc/my.cnf を編集し、skip-networking オプションをコメントアウトします:
vi /etc/my.cnf| [...] #skip-networking [...] |
その後、MySQL サーバーを再起動します:
/etc/init.d/mysqld restart 次のコマンドを実行して、root ユーザーのパスワードを設定します (そうしないと、誰でもあなたの MySQL データベースにアクセスできます!):
mysqladmin -u root password yourrootsqlpassword
mysqladmin -h server1.example.com -u root password yourrootsqlpassword
最後のコマンドがエラーを返す場合…
[root@server1 named]# mysqladmin -h server1.example.com -u root password yourrootsqlpassword
mysqladmin: connect to server at ‘server1.example.com’ failed
error: ‘Access denied for user ‘root’@’localhost’ (using password: NO)’
[root@server1 named]#
… 次のようにしてパスワードを設定できます: MySQL に接続します:
mysql -u root -pMySQL root ユーザーのパスワードを入力します。次に、MySQL シェルで次の操作を行います:
mysql> USE mysql;mysql> UPDATE user SET Password = password('yourrootsqlpassword') WHERE Host = 'server1.example.com' AND User = 'root';mysql> UPDATE user SET Password = password('yourrootsqlpassword') WHERE Host = '127.0.0.1' AND User = 'root';次のコマンドを実行して、ユーザーが root のすべての行にパスワードが設定されていることを確認します:
mysql> SELECT * FROM user;すべてが正常に見える場合は、次のコマンドを実行します:
mysql> FLUSH PRIVILEGES;… そして MySQL シェルを終了します:
mysql> quit;3 PowerDNS のインストール
PowerDNS をインストールするには、次のコマンドを実行します:
yum install pdns pdns-backend-mysqlPowerDNS の設定は /etc/pdns ディレクトリにあります - それについては後で説明します。
次に、MySQL に接続します:
mysql -u root -pMySQL 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/pdns/pdns.confpdns.conf に次の行を追加します:
| [...] ################################# # launch Which backends to launch and order to query them in # # launch= launch=gmysql gmysql-host=127.0.0.1 gmysql-user=power_admin gmysql-password=power_admin_password gmysql-dbname=powerdns [...] |
次に、PowerDNS のシステム起動リンクを作成し、起動します:
chkconfig –levels 235 pdns on
/etc/init.d/pdns start
これで、PowerDNS は使用する準備が整いました。詳細については、ドキュメントを参照してください: http://downloads.powerdns.com/documentation/html/index.html
4 Poweradmin のインストール
次に、PowerDNS のためのウェブベースのコントロールパネルである Poweradmin をインストールします。Poweradmin は PHP で書かれているため、ウェブサーバー (この例では Apache2 を使用しています) と PHP をインストールする必要があります:
yum install httpd php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mhash gettext Apache2 のシステム起動リンクを作成し、起動します:
chkconfig –levels 235 httpd on
/etc/init.d/httpd start
Poweradmin には次の 2 つの PEAR パッケージも必要です:
yum install php-pear-DB php-pear-MDB2-Driver-mysqlこれで Poweradmin のすべての前提条件がインストールされ、Poweradmin のインストールを開始できます (私は /var/www/html のサブディレクトリにインストールします - /var/www/html は Fedora の Apache のデフォルトウェブサイトのドキュメントルートです; 異なるドキュメントルートで vhost を作成した場合は、パスを調整してください)。
https://www.poweradmin.org/trac/wiki/GettingPoweradmin にアクセスし、最新の Poweradmin パッケージをダウンロードします。例えば、次のようにします:
cd /tmp
wget https://www.poweradmin.org/download/poweradmin-2.1.2.tgz
次に、/var/www/html/poweradmin ディレクトリにインストールします:
tar xvfz poweradmin-2.1.2.tgz
mv poweradmin-2.1.2 /var/www/html/poweradmin
touch /var/www/html/poweradmin/inc/config.inc.php
chown -R apache:apache /var/www/html/poweradmin/
ブラウザを開き、ウェブベースの Poweradmin インストーラーを起動します (http://server1.example.com/poweradmin/install または http://192.168.0.100/poweradmin/install)。
言語を選択します (英語またはオランダ語):

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

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

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

新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。