이번 포스트에서는 RHEL 시스템에서 Bind9 DNS 서버를 설정하고, LAMP 스택을 활용하여 WordPress 블로그를 설치하는 과정을 단계별로 설명하겠습니다.
우선, 도메인 등록 서비스 제공업체를 통해 도메인을 등록합니다. 이 예제에서는 duckdns.org를 사용하여 무료 서브 도메인 shinhk.duckdns.org를 생성했습니다.
xxx.duckdns.org를 사용할 수 있습니다.RHEL 시스템을 업데이트하고 필요한 패키지를 설치합니다.
sudo yum update -y
sudo yum install bind bind-utils -y
/etc/named.conf 파일을 수정하여 DNS 설정을 합니다.
sudo vi /etc/named.conf
다음 내용을 추가합니다:
options {
listen-on port 53 { 127.0.0.1; 192.168.111.100; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursion yes;
dnssec-validation yes;
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "xxx.duckdns.org" IN {
type master;
file "/var/named/xxx.duckdns.org.zone";
allow-update { none; };
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
존 파일을 생성하여 도메인 설정을 합니다.
sudo vi /var/named/shinhk.duckdns.org.zone
파일 내용:
$TTL 86400
@ IN SOA xxx.duckdns.org. root.xxx.duckdns.org. (
2024060801 ; Serial
3600 ; Refresh
1800 ; Retry
1209600 ; Expire
86400 ) ; Minimum TTL
IN NS xxx.duckdns.org.
IN A 192.168.111.100
www IN A 192.168.111.100
sudo systemctl start named
sudo systemctl enable named
sudo firewall-cmd --permanent --add-port=53/udp
sudo firewall-cmd --permanent --add-port=53/tcp
sudo firewall-cmd --reload
sudo yum install httpd -y
sudo systemctl start httpd
sudo systemctl enable httpd
sudo yum install mariadb-server mariadb -y
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo mysql_secure_installation
sudo yum install php php-mysqlnd php-fpm php-json -y
sudo systemctl restart httpd
sudo mysql -u root -p
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
EXIT;
cd /var/www/html
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzvf latest.tar.gz
sudo mv wordpress/* .
sudo rm -rf wordpress latest.tar.gz
sudo cp wp-config-sample.php wp-config.php
sudo vi wp-config.php
다음 내용을 수정합니다:
define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpressuser');
define('DB_PASSWORD', 'password');
define('DB_HOST', 'localhost');
블로그에 보안 키를 추가하는 방법을 설명할 때, 실제 키를 포함하는 대신, 키를 생성하는 방법과 생성된 키를 어디에 삽입해야 하는지 설명하는 것이 좋습니다. 실제 키는 블로그에 포함하지 않고, 독자들이 직접 생성할 수 있도록 안내하는 것이 안전합니다.
아래는 블로그 포스트의 보안 키 부분을 작성하는 방법에 대한 예시입니다.
WordPress 설치 과정에서 중요한 보안 요소 중 하나는 보안 키 설정입니다. 보안 키는 WordPress의 보안을 강화하는 데 사용됩니다.
보안 키는 WordPress Secret Key API를 사용하여 생성할 수 있습니다. 이 링크를 클릭하면 자동으로 보안 키가 생성됩니다.
생성된 보안 키를 복사합니다. 예를 들어, 다음과 같은 형식으로 생성됩니다:
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
wp-config.php 파일을 엽니다. 이 파일은 WordPress 루트 디렉토리에 있습니다.
sudo vi /var/www/html/wp-config.php
파일에서 보안 키 부분을 찾아서 생성된 키로 대체합니다. 기존의 put your unique phrase here를 생성된 키로 교체합니다.
define('AUTH_KEY', 'your generated key');
define('SECURE_AUTH_KEY', 'your generated key');
define('LOGGED_IN_KEY', 'your generated key');
define('NONCE_KEY', 'your generated key');
define('AUTH_SALT', 'your generated key');
define('SECURE_AUTH_SALT', 'your generated key');
define('LOGGED_IN_SALT', 'your generated key');
define('NONCE_SALT', 'your generated key');
변경 내용을 저장하고 파일을 닫습니다.
이제 보안 키가 설정되었으며, WordPress 설치가 더 안전해졌습니다.
sudo vi /etc/httpd/conf.d/wordpress.conf
다음 내용을 추가합니다:
<VirtualHost *:80>
ServerAdmin admin@xxx.duckdns.org
DocumentRoot /var/www/html
ServerName xxx.duckdns.org
ServerAlias www.xxx.duckdns.org
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/httpd/xxx.duckdns.org-error.log
CustomLog /var/log/httpd/xxx.duckdns.org-access.log combined
</VirtualHost>
Apache를 재시작합니다.
sudo systemctl restart httpd
웹 브라우저에서 http://xxx.duckdns.org로 접속하여 WordPress 설치 마법사를 완료합니다. 데이터베이스 정보는 다음과 같이 입력합니다:
wordpresswordpressuserpasswordlocalhostwp_설치 마법사가 완료되면 관리자 계정으로 로그인하여 WordPress 대시보드에 접근할 수 있습니다.