PowerAdmin

  • PHP로 제작된 PowerDNS Web 프론트엔드
  • PowerDNS의 백엔드가 MySQL로 구성되어 있어야 사용이 가능하다.
  • GPL 라이선스를 사용
  • 공식사이트 : PowerAdmin

  • PowerDNS에서 공개한 Web 프론트엔드의 목록은 아래의 링크에서 확인할 수 있다. https://github.com/PowerDNS/pdns/wiki/WebFrontends

  • PowerAdmin의 특징은 PowerDNS의 마스터/슬레이브 기능을 설정할 수 있다는 점이다. 하지만 PowerDNS의 마스터/슬레이브 기능은 완전히 구현되어 있지 않아 공식적으로 사용하지 말라고 하며, DBMS를 백엔드로 쓸 것을 권장하고 있다. 해당 기능에 대해서는 뒤에서 설명하도록 하겠다.

테스트 환경

PHP 모듈 설치

  • PowerAdmin 설치를 위해 아래의 모듈을 추가로 설치한다.
    • gettext
    • mcrypt
    • MDB2 (PowerAdmin 2.1.6 설치 시 필요)
    • pdo_mysql (PowerAdmin 2.1.7 설치 시 필요)

gettext 설치

gettext를 설치하지 않으면 아래와 같은 에러 메시지가 나타난다.



gettext 모듈 설치는 다음과 같이 진행한다.

[root@localhost work]# cd /home/work/php-5.6.31/
[root@localhost php-5.6.31]# cd ext/gettext
[root@localhost gettext]# /usr/local/php/bin/phpize
	
[root@localhost work]# cd /home/work/php-5.6.31/
[root@localhost php-5.6.31]# ./configure --help | grep gettext
--with-gettext=DIR      Include GNU gettext support
	
[root@localhost gettext]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@localhost gettext]# make
[root@localhost gettext]# make install
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20131226/

[root@localhost gettext]# vi /usr/local/php/lib/php.ini
~
[gettext]
extension=/usr/local/php/lib/php/extensions/no-debug-zts-20131226/gettext.so
~

[root@localhost gettext]# /usr/local/apache2/bin/apachectl restart

[root@localhost gettext]# /usr/local/php/bin/php -m | grep gettext
gettext

MDB2 설치

MDB2를 설치하지 않으면 PowerAdmin 설치 시 아래와 같은 에러 메시지가 나타난다.



MDB2 모듈 설치는 다음과 같이 진행한다.

[root@localhost inc]# cd /usr/local/php/bin/
[root@localhost inc]# ./pear install MDB2
[root@localhost inc]# ./pear install MDB2_Driver_mysql
[root@localhost inc]# /sbin/ldconfig
[root@localhost inc]# /usr/local/apache2/bin/httpd -t
[root@localhost inc]# /usr/local/apache2/bin/apachectl restart

MDB2 모듈 설치 중 아래와 같은 에러가 발생할 수 있다.

[root@localhost bin]# ./pear install MDB2 No releases available for package “pear.php.net/MDB2” install failed

다음과 같이 조치 후 위의 설치 방법을 다시 진행한다.

[root@localhost bin]# ./php -r "print_r(openssl_get_cert_locations());"
Array
(
    [default_cert_file] => /usr/local/openssl/ssl/cert.pem
    [default_cert_file_env] => SSL_CERT_FILE
    [default_cert_dir] => /usr/local/openssl/ssl/certs
    [default_cert_dir_env] => SSL_CERT_DIR
    [default_private_dir] => /usr/local/openssl/ssl/private
    [default_default_cert_area] => /usr/local/openssl/ssl
    [ini_cafile] => 
    [ini_capath] => 
)

[root@localhost bin]# cd /usr/local/openssl/ssl/
[root@localhost ssl]# ls
certs  man  misc  openssl.cnf  private
-> 실제 경로에 cert.pem 파일이 없다

[root@localhost bin]# cp /etc/pki/tls/cert.pem /usr/local/openssl/ssl/

pdo_mysql 설치

pdo_mysql를 설치하지 않으면 PowerAdmin 설치 시 아래와 같은 에러 메시지가 나타난다.



pdo_mysql 모듈 설치는 다음과 같이 진행한다.

[root@localhost ~]# cd /home/work/php-5.6.31/ext/pdo_mysql
[root@localhost pdo_mysql]# /usr/local/php/bin/phpize
[root@localhost pdo_mysql]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql/bin/mysql_config
[root@localhost pdo_mysql]# make
[root@localhost pdo_mysql]# make install
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20131226/

[root@localhost pdo_mysql]# ls -al /usr/local/php/lib/php/extensions/no-debug-zts-20131226/pdo_mysql.so 
-rwxr-xr-x 1 root root 174000  3월 23 19:24 /usr/local/php/lib/php/extensions/no-debug-zts-20131226/pdo_mysql.so

[root@localhost pdo_mysql]# vi /usr/local/php/lib/php.ini 
~
[pdo_mysql]
extension=/usr/local/php/lib/php/extensions/no-debug-zts-20131226/pdo_mysql.so
위의 내용 추가 후 저장

[root@localhost pdo_mysql]# /usr/local/apache2/bin/httpd -t
Syntax OK
[root@localhost pdo_mysql]# /usr/local/apache2/bin/apachectl restart

[root@localhost pdo_mysql]# /usr/local/php/bin/php -m | grep pdo_mysql
pdo_mysql

PowerAdmin 설치

아파치 설정

[root@localhost etc]# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
~
<VirtualHost *:80>
    DocumentRoot "/home/httpd/html/poweradmin"
    ServerName domain.30test.com
    ErrorLog "|/usr/local/apache2/bin/rotatelogs /var/log/apachelog/domain.30test.com-error_log.%Y%m%d 1000M"
	  CustomLog "|/usr/local/apache2/bin/rotatelogs /var/log/apachelog/domain.30test.com-access_log.%Y%m%d 1000M" common env=!IMAGE
	  <Directory "/home/httpd/html/poweradmin">
	      Options FollowSymLinks
	      AllowOverride None
	      Require all granted
	  </Directory>
</VirtualHost>
~
	
[root@localhost etc]# /usr/local/apache2/bin/httpd -t
Syntax OK
[root@localhost etc]# /usr/local/apache2/bin/apachectl restart

다운로드

[root@localhost etc]# cd /home/work

poweradmin 2.1.6

[root@localhost work]# wget https://downloads.sourceforge.net/project/poweradmin/poweradmin-2.1.6.tgz --no-check-certificate
	
[root@localhost work]# tar zxvf poweradmin-2.1.6.tgz
[root@localhost work]# mv poweradmin-2.1.6 /home/httpd/html/poweradmin

poweradmin 2.1.7

[root@localhost work]# wget https://jaist.dl.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz
	
[root@localhost work]# tar zxvf poweradmin-2.1.7.tgz
[root@localhost work]# mv poweradmin-2.1.7 /home/httpd/html/poweradmin

설치 전 필요사항

  • 웹 소스 파일을 옮기고 접속해 보면 아래와 같은 페이지가 나타난다.


  • config.inc.php 파일을 만들고 설정해준다.
    [root@localhost gettext]# cd /home/httpd/html/poweradmin/inc
    [root@localhost inc]# ls -al
    ~
    -rw-r--r--. 1 501 games  1589  5월  3  2012 config-me.inc.php
    ~
    [root@localhost inc]# cp config-me.inc.php config.inc.php
    


  • 새로고침(F5)하면 아래와 같은 페이지가 나타난다. install 링크를 눌러 설치 작업을 진행한다.


PowerAdmin 설치

  • 사용할 언어를 선택 (여기서는 영어를 선택)


  • “Go to step 3’ 클릭


  • DB 커넥션 정보를 입력한다.
    • Username : PowerDNS에서 사용하는 데이터베이스 계정
    • Password : Username에 입력한 계정의 패스워드
    • Database type : 서버에 설치된 DBMS
    • Hostname : DBMS 접속 주소
    • DB Port : DBMS 접속 포트
    • Databases : PowerDNS에서 사용하는 데이터베이스 이름
    • Poweradmin administrator password : Poweradmin의 관리자 계정 (admin)의 패스워드


  • poweradmin에서 사용할 관리자 계정 정보와 영역 생성 시 기본적으로 적용할 hostmaster와 1차/2차 네임서버를 입력한다.
    • Username : Poweradmin에서 DB에 접속하기 위해 사용하는 계정
    • Password : Username에서 입력한 계정의 패스워드
    • Hostmaster : 영역 생성 시 SOA 레코드에 기본적으로 적용할 영역 관리자의 메일 주소. ‘@’ 대신에 ‘.’ 을 사용한다 (입력하지 않아도 상관없다)
    • Primary nameserver : 영역 생성 시 SOA 레코드에 기본적으로 적용할 1차 네임서버의 도메인 주소 (입력하지 않아도 상관없다)
    • Secondary nameserver : 영역 생성 시 SOA 레코드에 기본적으로 적용할 2차 네임서버의 도메인 주소 (입력하지 않아도 상관없다)



  • 6단계에서 아래와 같이 ../inc/config.inc.php 에 내용을 쓸 수 없다는 메시지가 나타난다. 해당 파일에 아래 내용을 수동으로 입력해준다.




  • 설치가 완료되면 install 디렉터리를 삭제한다.
    [root@localhost inc]# rm -rf /home/httpd/html/poweradmin/install
    


  • 로그인 창


  • 만일 로그인후 “Error: Default session encryption key is used, please set it in your configuration file.” 메시지가 웹페이지 상단에 출력될 경우 아래의 과정은 실행하면 된다.
openssl 명령어를 이용하여 랜덤문자를 생성
$ openssl rand -base64 32
BGHfCJUh5VcB4qaRpjaXMBnXMFxyCesybeXx2h+4PCA=
	
config.inc.php파일에 아래의 내용으로 변경
$session_key = 'BGHfCJUh5VcB4qaRpjaXMBnXMFxyCesybeXx2h+4PCA=';

DNS Zone 설정 테스트













  • nslookup으로 도메인 정보 확인
[root@localhost inc]# nslookup
> server 127.0.0.1
Default server: 127.0.0.1
Address: 127.0.0.1#53

> ftp.30test.com
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   ftp.30test.com
Address: IP주소

참고 자료

Tags:

Categories:

Published:

Updated: