서버 설치 · 4 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 서버를 하나만 설정할 것입니다 (마스터); PowerDNS 슬레이브를 추가하는 것은 마스터에서 슬레이브로 MySQL 데이터베이스 복제를 사용하여 쉽게 달성할 수 있으므로 존 전송이 필요하지 않습니다 (이것은 다시 MyDNS와 유사합니다). MySQL 데이터베이스 복제는 이 튜토리얼에 따라 설정할 수 있습니다: MySQL에서 데이터베이스 복제 설정하는 방법 (PowerDNS는 또한 기본 존 전송을 지원합니다 (MySQL 복제를 사용할 수 없는 시나리오에 대해) - http://downloads.powerdns.com/documentation/html/replication.html 참조).
2 MySQL 설치하기
MySQL을 설치하기 위해 다음을 실행합니다.
apt-get install mysql-server mysql-clientMySQL 루트 사용자에 대한 비밀번호를 제공하라는 메시지가 표시됩니다 - 이 비밀번호는 root@localhost 사용자와 [email protected]에 유효하므로 나중에 MySQL 루트 비밀번호를 수동으로 지정할 필요가 없습니다:
MySQL “root” 사용자에 대한 새 비밀번호: <– yourrootsqlpassword
MySQL “root” 사용자에 대한 비밀번호 반복: <– yourrootsqlpassword
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-mysqlPowerDNS 구성은 /etc/powerdns 디렉토리에 위치합니다 - 잠시 후에 그에 대해 설명하겠습니다.
이제 MySQL에 연결합니다:
mysql -u root -pMySQL 루트 비밀번호를 입력하면 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.confpdns.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 루트 사용자에 대한 세부정보를 입력하는 것이 중요하며, 이전에 생성한 powerdns MySQL 사용자가 아닙니다! 또한 Poweradmin 웹 인터페이스의 관리자 사용자에 대한 비밀번호를 제공하십시오 (이는 나중에 사용자가 Poweradmin에 로그인하는 데 사용할 비밀번호입니다):

다음 페이지에서 power_admin MySQL 사용자에 대한 세부정보를 입력합니다. 또한 존을 생성할 때 다른 이름 서버를 제공하지 않는 한 사용될 두 개의 기본 이름 서버를 입력합니다 (일반적으로 이는 현재 시스템의 이름과 슬레이브 서버의 이름입니다 (여기서 MySQL 복제를 설정할 수 있습니다, 1장에서의 사전 참고를 참조하십시오)):

다음 화면에서 설치 프로그램은 MySQL 쿼리를 실행하라고 요청합니다. 우리는 이미 3장에서 유사한 작업을 수행했기 때문에 (두 개의 GRANT 문) 우리는 설정이 완료되었습니다. Go to step 6을 클릭합니다:

새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.