makerskorean.kr
- Hostname → server.makerskorean.kr 설정
우분투 서버 24.04.3 LTS이고 변경 명령어
우분투 24.04.3 LTS에서 호스트네임을 server.makerskorean.kr로 변경하려면 다음 명령어들을 사용하면 됩니다:
1️⃣ 호스트네임 변경
sudo hostnamectl set-hostname server.makerskorean.kr
2️⃣ /etc/hosts 파일 수정
호스트네임이 제대로 인식되도록 /etc/hosts 파일에 추가/수정해야 합니다.
예시:
sudo nano /etc/hosts
내용에 다음 줄을 추가하거나 기존 줄을 수정:
127.0.0.1 localhost
127.0.1.1 server.makerskorean.kr server
3️⃣ 변경 확인
hostnamectl
또는
hostname
4️⃣ 적용 확인 (재부팅 없이도 반영됨)
ping server.makerskorean.kr
👉 이렇게 하면 시스템 호스트네임이 server.makerskorean.kr로 설정됩니다.
혹시 내부 DNS 환경도 함께 쓰고 계신가요? 그렇다면 /etc/hosts 수정 외에도 DNS 서버에 해당 호스트네임을 등록해야 외부에서 접근 가능합니다.
현재 makerskorean.kr도메인은 클라우드플레어 프리프랜 사용중인데
/etc/hosts 수정 외에도 DNS 서버에 해당 호스트네임을 등록해야 외부에서 접근 가능
맞습니다 👍 /etc/hosts 수정은 로컬 서버 내부에서만 호스트네임을 인식하게 하는 설정이고, 외부에서 server.makerskorean.kr로 접속하려면 DNS 서버(지금은 Cloudflare) 에서 해당 호스트네임을 등록해야 합니다.
🌐 Cloudflare에서 호스트네임 등록 방법 (Free Plan 기준)
- Cloudflare 로그인
→ makerskorean.kr 도메인을 선택합니다. - DNS 관리 메뉴로 이동
→ “DNS” 탭을 클릭합니다. - 새 레코드 추가
- Type:
A(IPv4 주소) 또는AAAA(IPv6 주소) - Name:
server(즉,server.makerskorean.kr이 됩니다) - IPv4 address: 서버의 공인 IP 주소 입력
- Proxy status:
- 켜면(주황색 구름) Cloudflare 프록시를 통해 접속 → DDoS 보호, 캐싱 가능
- 끄면(회색 구름) 직접 서버로 접속 → 단순 DNS만 사용
- Type:
- 저장 후 적용 확인
- DNS 전파는 보통 수분~수시간 내에 완료됩니다.
- 확인 방법:
dig server.makerskorean.kr nslookup server.makerskorean.kr ping server.makerskorean.kr
📌 정리
/etc/hosts→ 서버 내부에서만 유효- Cloudflare DNS → 외부 클라이언트가
server.makerskorean.kr로 접속 가능하게 만드는 핵심 - 반드시 서버의 공인 IP를 Cloudflare DNS에 등록해야 외부 접근이 가능합니다.
혹시 이 서버가 웹 서비스용인지, 아니면 내부 관리용(예: SSH 접속)인지에 따라 Cloudflare 프록시 설정을 다르게 하는 게 좋습니다. 원하시면 제가 웹 서비스용 vs 관리용에 맞는 설정 차이를 정리해드릴까요?
자동 업데이트 설정
→ 기본 환경 준비 완료
2. Virtual Server 생성
- Virtualmin → Create Virtual Server
- Domain name:
makerskorean.kr - 옵션 체크:
- Setup website for domain ✅
- Setup DNS zone ✅
- Setup mail for domain ✅
- Setup SSL certificate ✅
- Setup MySQL database ✅
3. Sub-server 생성 (폴더 → 서브도메인)
- Virtualmin → Create Sub-server
- Domain name:
subdomain.makerskorean.kr - Document root:
/var/www/html/subdomain지정- 기존 워드프레스 설치 폴더 그대로 사용
- SSL 인증서 발급 (Let’s Encrypt)
- 데이터베이스 연결 확인
4. Cloudflare DNS 설정
- Cloudflare 무료 플랜 사용 중이므로 DNS 레코드 추가 필요
- makerskorean.kr Zone에서 다음 레코드 추가:
- Proxy(구름 아이콘) → 필요 시 끄기 (워드프레스 설치 시 HTTP-01 인증 필요)
5. 워드프레스 설정 변경
/var/www/html/subdomain/wp-config.php확인- 워드프레스 관리자 페이지 접속 → 설정 → 일반
- WordPress 주소(URL):
https://subdomain.makerskorean.kr - 사이트 주소(URL):
https://subdomain.makerskorean.kr
- WordPress 주소(URL):
- 저장 후 로그인 재시도
6. SSL 인증서 적용
- Virtualmin →
Server Configuration → SSL Certificate - Let’s Encrypt →
Request Certificate - 도메인:
subdomain.makerskorean.kr포함
7. 테스트 및 검증
- 브라우저에서
https://subdomain.makerskorean.kr접속 → 워드프레스 정상 표시 dig subdomain.makerskorean.kr A→ 서버 IP 확인- SSL Labs → 인증서 유효성 검사
- 워드프레스 내부 링크가 모두 새 URL로 변경되었는지 확인
✅ 최종 운영 체크리스트
- [ ] Virtualmin Wizard 완료
- [ ] makerskorean.kr Virtual Server 생성
- [ ] subdomain.makerskorean.kr Sub-server 생성 및 Document root 매핑
- [ ] Cloudflare DNS 레코드 추가
- [ ] 워드프레스 URL 변경
- [ ] SSL 인증서 발급 및 적용
- [ ] 접속 테스트 및 링크 정상 확인
이 절차를 따르면 기존 /var/www/html/subdomain 구조를 그대로 유지하면서, https://subdomain.makerskorean.kr 형태로 서비스할 수 있습니다.
👉 원하시면 제가 여러 개의 서브도메인을 한 번에 Virtualmin Sub-server로 등록하는 자동화 전략까지 정리해드릴 수 있습니다.
메일 서버(Postfix/Dovecot) 활성
좋습니다 👍 우분투 24.04.3 LTS 환경에서 메일 서버(Postfix + Dovecot) 를 활성화하려면 다음 단계로 진행하면 됩니다.
📌 1. 패키지 설치
sudo apt update
sudo apt install postfix dovecot-core dovecot-imapd dovecot-pop3d -y
- Postfix → 메일 송신(MTA) 담당
- Dovecot → 메일 수신(IMAP/POP3) 담당
📌 2. Postfix 기본 설정
설치 중에 “메일 서버 구성 유형”을 묻습니다.
- Internet Site 선택
- System mail name →
makerskorean.kr입력
설치 후 /etc/postfix/main.cf 파일을 열어 주요 설정을 확인/수정합니다:
sudo nano /etc/postfix/main.cf
예시 설정:
myhostname = server.makerskorean.kr
mydomain = makerskorean.kr
myorigin = /etc/mailname
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost
relayhost =
mynetworks = 127.0.0.0/8
home_mailbox = Maildir/
📌 3. Dovecot 설정
메일박스를 Maildir 형식으로 사용하도록 설정합니다.
/etc/dovecot/conf.d/10-mail.conf 수정:
mail_location = maildir:~/Maildir
사용자별 Maildir 생성:
sudo mkdir -p /etc/skel/Maildir/{cur,new,tmp}
sudo chmod -R 700 /etc/skel/Maildir
기존 사용자 홈에도 적용:
mkdir -p ~/Maildir/{cur,new,tmp}
chmod -R 700 ~/Maildir
📌 4. 서비스 활성화 및 재시작
sudo systemctl enable postfix
sudo systemctl enable dovecot
sudo systemctl restart postfix
sudo systemctl restart dovecot
📌 5. 방화벽 설정 (UFW 사용 시)
sudo ufw allow 25/tcp # SMTP
sudo ufw allow 587/tcp # Submission
sudo ufw allow 143/tcp # IMAP
sudo ufw allow 993/tcp # IMAPS
sudo ufw allow 110/tcp # POP3
sudo ufw allow 995/tcp # POP3S
📌 6. DNS 레코드 설정 (Cloudflare에서)
외부에서 정상적으로 메일 송수신하려면 반드시 DNS 레코드가 필요합니다:
- MX 레코드 →
makerskorean.kr→server.makerskorean.kr - A 레코드 →
server.makerskorean.kr→ 서버 공인 IP - SPF 레코드 (TXT) →
v=spf1 a mx ~all - DKIM/DMARC → 보안 및 스팸 방지용 (추가 설정 필요)
✅ 여기까지 하면 기본적인 Postfix/Dovecot 메일 서버가 활성화됩니다.
다만 실제 운영 시에는 SSL/TLS 인증서(Let’s Encrypt), 스팸 필터(SpamAssassin, Rspamd), DKIM/DMARC 설정까지 해주셔야 외부 메일 서비스(Gmail, Naver, Daum 등)에서 정상적으로 신뢰받습니다.
👉 원하시면 제가 보안 강화를 위한 SSL/TLS + DKIM/DMARC 설정 단계까지 이어서 정리해드릴까요?
ufw는 우분투에서 기본 방화벽 관리 도구이지만, 모든 배포판에 기본 설치되어 있지는 않습니다. 메시지에 나온 것처럼 “command not found”가 뜨는 이유는 아직 설치되지 않았기 때문이에요.
🔧 해결 방법
1. UFW 설치
sudo apt update
sudo apt install ufw -y
2. UFW 활성화
sudo ufw enable
3. 메일 서버 포트 열기
sudo ufw allow 25/tcp # SMTP
sudo ufw allow 587/tcp # Submission
sudo ufw allow 143/tcp # IMAP
sudo ufw allow 993/tcp # IMAPS
sudo ufw allow 110/tcp # POP3
sudo ufw allow 995/tcp # POP3S
4. 상태 확인
sudo ufw status verbose
📌 대안 (UFW 대신 iptables/nftables 사용)
만약 UFW 대신 직접 iptables/nftables를 쓰고 싶다면, 우분투 24.04에서는 기본적으로 nftables가 권장됩니다. 예시:
sudo iptables -A INPUT -p tcp --dport 25 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 587 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 143 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 993 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 110 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 995 -j ACCEPT
👉 운영 환경에 따라 UFW 설치 후 간단히 관리하는 방법이 편리하고, 보안 정책을 세밀하게 제어하려면 nftables/iptables를 직접 쓰는 게 좋습니다.
혹시 서버가 외부 서비스용(메일 송수신)인지, 아니면 내부 테스트용인지 알려주시면 방화벽 정책을 더 구체적으로 추천해드릴 수 있어요.
ub2020@makerskorean:~$ sudo hostnamectl set-hostname server.makerskorean.kr
[sudo] password for ub2020:
ub2020@makerskorean:~$ sudo nano /etc/hosts
ub2020@makerskorean:~$ hostnamectl
Static hostname: server.makerskorean.kr
Icon name: computer-desktop
Chassis: desktop 🖥️
Machine ID: d793135f40e344dd86694bad80d34fdb
Boot ID: 519e7fa5993f444b831e5a3752bf928a
Operating System: Ubuntu 24.04.3 LTS
Kernel: Linux 6.8.0-90-generic
Architecture: x86-64
Hardware Vendor: Dell Inc.
Hardware Model: Inspiron 3268
Firmware Version: 1.9.0
Firmware Date: Fri 2018-07-13
Firmware Age: 7y 6month 2d
ub2020@makerskorean:~$ ping server.makerskorean.kr
PING server.makerskorean.kr (127.0.1.1) 56(84) bytes of data.
64 bytes from server.makerskorean.kr (127.0.1.1): icmp_seq=1 ttl=64 time=0.072 ms
64 bytes from server.makerskorean.kr (127.0.1.1): icmp_seq=2 ttl=64 time=0.085 ms
64 bytes from server.makerskorean.kr (127.0.1.1): icmp_seq=3 ttl=64 time=0.069 ms
64 bytes from server.makerskorean.kr (127.0.1.1): icmp_seq=4 ttl=64 time=0.072 ms
64 bytes from server.makerskorean.kr (127.0.1.1): icmp_seq=5 ttl=64 time=0.074 ms
64 bytes from server.makerskorean.kr (127.0.1.1): icmp_seq=6 ttl=64 time=0.069 ms
64 bytes from server.makerskorean.kr (127.0.1.1): icmp_seq=7 ttl=64 time=0.071 ms
^C
— server.makerskorean.kr ping statistics —
7 packets transmitted, 7 received, 0% packet loss, time 6121ms
rtt min/avg/max/mdev = 0.069/0.073/0.085/0.005 ms
ub2020@makerskorean:~$ sudo apt update
[sudo] password for ub2020:
Hit:1 http://kr.archive.ubuntu.com/ubuntu noble InRelease
Hit:2 http://kr.archive.ubuntu.com/ubuntu noble-updates InRelease
Hit:3 http://kr.archive.ubuntu.com/ubuntu noble-backports InRelease
Hit:4 http://security.ubuntu.com/ubuntu noble-security InRelease
Hit:5 https://ppa.launchpadcontent.net/ondrej/php/ubuntu noble InRelease
Hit:6 https://download.webmin.com/download/newkey/repository stable InRelease
Hit:7 https://software.virtualmin.com/vm/7/gpl/apt virtualmin InRelease
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
All packages are up to date.
ub2020@makerskorean:~$ sudo apt install postfix dovecot-core dovecot-imapd dovecot-pop3d -y
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
postfix is already the newest version (3.8.6-1build2).
postfix set to manually installed.
dovecot-core is already the newest version (1:2.3.21+dfsg1-2ubuntu6.1).
dovecot-core set to manually installed.
dovecot-imapd is already the newest version (1:2.3.21+dfsg1-2ubuntu6.1).
dovecot-imapd set to manually installed.
dovecot-pop3d is already the newest version (1:2.3.21+dfsg1-2ubuntu6.1).
dovecot-pop3d set to manually installed.
The following packages were automatically installed and are no longer required:
lockfile-progs m4 sendmail-base sendmail-cf sensible-mda
Use ‘sudo apt autoremove’ to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
ub2020@makerskorean:~$ sudo apt autoremove
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
The following packages will be REMOVED:
lockfile-progs m4 sendmail-base sendmail-cf sensible-mda
0 upgraded, 0 newly installed, 5 to remove and 0 not upgraded.
After this operation, 2,515 kB disk space will be freed.
Do you want to continue? [Y/n] y
Auto packing the repository in background for optimum performance.
See “git help gc” for manual housekeeping.
[master f6d3a76] saving uncommitted changes in /etc prior to apt run
Author: ub2020 ub2020@server.makerskorean.kr
5 files changed, 5 insertions(+), 6 deletions(-)
(Reading database … 372877 files and directories currently installed.)
Removing sendmail-base (8.18.1-2) …
Removing lockfile-progs (0.1.19build2) …
Removing sendmail-cf (8.18.1-2) …
Removing m4 (1.4.19-4build1) …
Removing sensible-mda (8.18.1-2) …
Processing triggers for install-info (7.1-3build2) …
Processing triggers for man-db (2.12.0-4build2) …
[master 0174324] committing changes in /etc made by “apt autoremove”
Author: ub2020 ub2020@server.makerskorean.kr
21 files changed, 4254 deletions(-)
delete mode 100755 mail/Makefile
delete mode 100644 mail/access.db
delete mode 120000 mail/aliases
delete mode 100644 mail/aliases.db
delete mode 100644 mail/databases
delete mode 100644 mail/sendmail.cf
delete mode 120000 mail/smrsh/mail.local
delete mode 120000 mail/smrsh/procmail
delete mode 100644 mail/submit.cf
delete mode 100644 mail/tls/no_prompt
delete mode 100644 mail/tls/sendmail-client.cfg
delete mode 100644 mail/tls/sendmail-client.crt
delete mode 100644 mail/tls/sendmail-client.csr
delete mode 100644 mail/tls/sendmail-common.key
delete mode 100644 mail/tls/sendmail-common.prm
delete mode 100644 mail/tls/sendmail-server.cfg
delete mode 100644 mail/tls/sendmail-server.crt
delete mode 100644 mail/tls/sendmail-server.csr
delete mode 100755 mail/tls/starttls.m4
delete mode 100644 mail/trusted-users
ub2020@makerskorean:~$ sudo nano /etc/postfix/main.cf
ub2020@makerskorean:~$ sudo nano /etc/dovecot/conf.d/10-mail.conf
ub2020@makerskorean:~$ sudo mkdir -p /etc/skel/Maildir/{cur,new,tmp}
ub2020@makerskorean:~$ sudo chmod -R 700 /etc/skel/Maildir
ub2020@makerskorean:~$ mkdir -p ~/Maildir/{cur,new,tmp}
ub2020@makerskorean:~$ chmod -R 700 ~/Maildir
ub2020@makerskorean:~$ sudo systemctl enable postfix
Synchronizing state of postfix.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable postfix
ub2020@makerskorean:~$ sudo systemctl enable dovecot
Synchronizing state of dovecot.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable dovecot
ub2020@makerskorean:~$ sudo systemctl restart postfix
ub2020@makerskorean:~$ sudo systemctl restart dovecot
ub2020@makerskorean:~$ sudo ufw allow 25/tcp
sudo: ufw: command not found
ub2020@makerskorean:~$ sudo apt install ufw -y
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
The following NEW packages will be installed:
ufw
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 169 kB of archives.
After this operation, 869 kB of additional disk space will be used.
Get:1 http://kr.archive.ubuntu.com/ubuntu noble/main amd64 ufw all 0.36.2-6 [169 kB]
Fetched 169 kB in 0s (1,282 kB/s)
[master 9e75753] saving uncommitted changes in /etc prior to apt run
Author: ub2020 ub2020@server.makerskorean.kr
3 files changed, 11 insertions(+), 2 deletions(-)
Preconfiguring packages …
Selecting previously unselected package ufw.
(Reading database … 372441 files and directories currently installed.)
Preparing to unpack …/archives/ufw_0.36.2-6_all.deb …
Unpacking ufw (0.36.2-6) …
Setting up ufw (0.36.2-6) …
Creating config file /etc/ufw/before.rules with new version
Creating config file /etc/ufw/before6.rules with new version
Creating config file /etc/ufw/after.rules with new version
Creating config file /etc/ufw/after6.rules with new version
Created symlink /etc/systemd/system/multi-user.target.wants/ufw.service → /usr/lib/systemd/system/ufw.service.
Processing triggers for rsyslog (8.2312.0-3ubuntu9.1) …
Processing triggers for man-db (2.12.0-4build2) …
[master fa44bb0] committing changes in /etc made by “apt install ufw -y”
Author: ub2020 ub2020@server.makerskorean.kr
18 files changed, 592 insertions(+)
create mode 100644 default/ufw
create mode 100755 init.d/ufw
create mode 100644 logrotate.d/ufw
create mode 120000 rc1.d/K01ufw
create mode 120000 rcS.d/S01ufw
create mode 100644 rsyslog.d/20-ufw.conf
create mode 120000 systemd/system/multi-user.target.wants/ufw.service
create mode 100644 ufw/after.init
create mode 100644 ufw/after.rules
create mode 100644 ufw/after6.rules
create mode 100644 ufw/before.init
create mode 100644 ufw/before.rules
create mode 100644 ufw/before6.rules
create mode 100644 ufw/sysctl.conf
create mode 100644 ufw/ufw.conf
create mode 100644 ufw/user.rules
create mode 100644 ufw/user6.rules
ub2020@makerskorean:~$ sudo ufw enable
Firewall is active and enabled on system startup
ub2020@makerskorean:~$ sudo ufw allow 25/tcp
Rule added
Rule added (v6)
ub2020@makerskorean:~$ sudo ufw allow 587/tcp
Rule added
Rule added (v6)
ub2020@makerskorean:~$ sudo ufw allow 143/tcp
Rule added
Rule added (v6)
ub2020@makerskorean:~$ sudo ufw allow 993/tcp
Rule added
Rule added (v6)
ub2020@makerskorean:~$ sudo ufw allow 110/tcp
Rule added
Rule added (v6)
ub2020@makerskorean:~$ sudo ufw allow 995/tcp
Rule added
Rule added (v6)
ub2020@makerskorean:~$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
— —— —-
25/tcp ALLOW IN Anywhere
587/tcp ALLOW IN Anywhere
143/tcp ALLOW IN Anywhere
993/tcp ALLOW IN Anywhere
110/tcp ALLOW IN Anywhere
995/tcp ALLOW IN Anywhere
25/tcp (v6) ALLOW IN Anywhere (v6)
587/tcp (v6) ALLOW IN Anywhere (v6)
143/tcp (v6) ALLOW IN Anywhere (v6)
993/tcp (v6) ALLOW IN Anywhere (v6)
110/tcp (v6) ALLOW IN Anywhere (v6)
995/tcp (v6) ALLOW IN Anywhere (v6)
ub2020@makerskorean:~$
vscode가 hostname이 변경이 되어 ssh접속이 안됨
호스트네임을 server.makerskorean.kr로 바꾸신 뒤 VS Code에서 SSH 접속이 안 되는 건, 대부분 SSH 설정(hostname/IP 불일치) 문제 때문입니다. 정리해 드릴게요:
🔎 원인
- VS Code Remote-SSH 설정
VS Code는~/.ssh/config파일에 저장된Host이름을 기준으로 접속합니다.
호스트네임을 바꾸면 기존 설정(makerskorean.kr또는 IP)과 달라져 접속이 끊길 수 있습니다. - DNS 반영 문제
Cloudflare DNS에server.makerskorean.kr→ 서버 공인 IP가 등록되지 않았거나 아직 전파되지 않았다면 외부에서 이름으로 접속이 안 됩니다. - SSH 서버는 IP 기반으로 동작
실제로 SSH는 호스트네임을 DNS로 해석해 IP로 접속합니다. 즉, 호스트네임 변경만으로는 접속이 안 되고, DNS 설정이 맞아야 합니다.
✅ 해결 방법
1. VS Code SSH 설정 확인
~/.ssh/config 파일을 열어 새 호스트네임을 반영합니다:
nano ~/.ssh/config
예시:
Host makers-server
HostName server.makerskorean.kr
User ubuntu
IdentityFile ~/.ssh/id_rsa
→ 저장 후 VS Code에서 makers-server로 접속.
2. DNS 확인
Cloudflare에서 server.makerskorean.kr → 서버 공인 IP가 제대로 등록되어 있는지 확인하세요:
dig server.makerskorean.kr
IP가 나오지 않으면 DNS 레코드가 잘못된 겁니다.
3. 임시 해결 (IP로 접속)
DNS 전파가 안 됐을 경우, VS Code에서 직접 IP로 접속 가능합니다:
Host makers-server-ip
HostName <서버공인IP>
User ubuntu
IdentityFile ~/.ssh/id_rsa
4. 서버 SSH 서비스 확인
서버에서 SSH가 정상 동작하는지 확인:
sudo systemctl status ssh
📌 정리
- 호스트네임 변경만으로는 SSH 접속이 안 됩니다.
- 반드시 Cloudflare DNS → 서버 IP 매핑과 VS Code SSH 설정 수정이 필요합니다.
- 급하게 접속해야 한다면 IP로 직접 접속하면 됩니다.
👉 혹시 지금 VS Code에서 IP로는 접속이 되는지 확인해 보실래요? 그 결과에 따라 DNS 문제인지, SSH 설정 문제인지 바로 좁혀드릴 수 있습니다.
사이트 접속도 안되는 문제
사이트에 연결할 수 없음
makerskorean.kr에서 응답하는 데 시간이 너무 오래 걸립니다.
다음 방법을 시도해 보세요.
연결 확인
프록시 및 방화벽 확인
Windows 네트워크 진단 프로그램 실행
ERR_CONNECTION_TIMED_OUT
지금 상황은 DNS는 등록했지만 서버가 외부에서 응답하지 않는 상태로 보입니다. ERR_CONNECTION_TIMED_OUT은 보통 다음 원인 중 하나예요:
🔎 주요 원인
- DNS 문제
- Cloudflare에서
makerskorean.kr→ 서버 공인 IP가 제대로 등록되지 않았거나 아직 전파되지 않음. - 확인:
dig makerskorean.kr nslookup makerskorean.kr
- Cloudflare에서
- 방화벽/포트 문제
- 서버 방화벽(UFW, iptables, 클라우드 제공 방화벽)이 80/443 포트를 막고 있음.
- 확인:
sudo ss -tlnp | grep ':80' sudo ss -tlnp | grep ':443'
- 웹 서버 미구동
- Nginx/Apache가 설치되지 않았거나 실행 중이지 않음.
- 확인:
sudo systemctl status nginx sudo systemctl status apache2
- Cloudflare Proxy 설정 문제
- Cloudflare DNS에서 프록시(주황색 구름)를 켜면 서버가 80/443 포트에서 응답해야 합니다.
- 서버가 응답하지 않으면 Cloudflare가 연결을 못 해서 타임아웃 발생.
✅ 해결 절차
- DNS 확인
makerskorean.kr이 서버 공인 IP로 잘 매핑되는지 확인하세요.
- 웹 서버 실행 여부 확인
- Nginx 또는 Apache가 설치되어 있어야 합니다.
예시 설치:
sudo apt install nginx -y sudo systemctl enable nginx sudo systemctl start nginx- 브라우저에서
http://<서버IP>접속 테스트.
- Nginx 또는 Apache가 설치되어 있어야 합니다.
- 방화벽 확인
- UFW 사용 시:
sudo ufw allow 80/tcp sudo ufw allow 443/tcp - iptables/nftables 사용 시 80/443 포트 허용.
- UFW 사용 시:
- Cloudflare 설정 확인
- DNS 레코드에서
makerskorean.kr→ 서버 IP가 맞는지 확인. - 프록시(주황색 구름)를 끄고(회색) 테스트해보면 원인 파악이 쉬움.
- DNS 레코드에서
📌 정리
- DNS → 서버 IP 확인
- 서버 웹 서버(Nginx/Apache) 실행 여부 확인
- 방화벽에서 80/443 포트 허용
- Cloudflare 프록시 설정 점검
👉 먼저 http://<서버공인IP>로 직접 접속해 보시면, DNS 문제인지 서버 문제인지 바로 구분할 수 있습니다.
혹시 제가 지금 makerskorean.kr의 DNS 레코드 상태를 조회해서 어떤 IP로 연결되는지 확인해드릴까요?
홈서버에 메일서버 (postfix/Devecot) 활설화 작업 후에 접속에러 발생
메일 서버(Postfix/Dovecot) 활성화 작업 이후에 사이트 접속 에러가 발생했다면, 몇 가지 흔한 원인을 점검해야 합니다. 메일 서버 설정이 웹 서버와 직접 충돌하지는 않지만, 네트워크/방화벽/DNS 설정을 건드리면서 웹 서비스까지 영향을 줄 수 있습니다.
🔎 점검 포인트
1. 서비스 상태 확인
- 웹 서버(Nginx/Apache) 가 정상 실행 중인지 확인:
sudo systemctl status nginx sudo systemctl status apache2 - 메일 서버(Postfix/Dovecot) 가 정상 실행 중인지 확인:
sudo systemctl status postfix sudo systemctl status dovecot
2. 포트 충돌 여부
- Postfix/Dovecot은 기본적으로 25, 587, 143, 993, 110, 995 포트를 사용합니다.
- 웹 서버는 80, 443 포트를 사용합니다.
→ 혹시 잘못된 설정으로 웹 서버 포트를 건드렸는지 확인:
sudo ss -tlnp
출력에서 80/443 포트가 웹 서버 프로세스(nginx 또는 apache2)에 묶여 있는지 확인하세요.
3. 방화벽 설정
메일 서버 포트 열면서 웹 서버 포트(80/443)가 차단되었을 수 있습니다.
- UFW 사용 시:
sudo ufw status→ 80/tcp, 443/tcp 허용 여부 확인 - iptables/nftables 사용 시:
sudo iptables -L -n sudo nft list ruleset
4. DNS/Cloudflare 설정
메일 서버 활성화 후 MX 레코드, A 레코드 등을 수정하면서 웹 서비스용 A 레코드(makerskorean.kr → 서버 IP)가 잘못 변경되었을 가능성도 있습니다.
- 확인:
dig makerskorean.kr→ 올바른 서버 공인 IP가 나오지 않으면 DNS 문제입니다.
5. 로그 확인
- 웹 서버 로그:
sudo tail -f /var/log/nginx/error.log sudo tail -f /var/log/apache2/error.log - 메일 서버 로그:
sudo tail -f /var/log/mail.log sudo tail -f /var/log/dovecot.log
✅ 해결 방향
- 웹 서버가 죽었는지 →
systemctl status nginx/apache2확인 후 재시작sudo systemctl restart nginx - 포트 충돌 여부 →
ss -tlnp로 확인 - 방화벽 규칙 → 80/443 허용 확인
- DNS 레코드 → makerskorean.kr이 올바른 IP를 가리키는지 확인
📌 정리:
메일 서버(Postfix/Dovecot) 활성화 자체는 웹 서버와 직접 충돌하지 않지만, 방화벽 규칙 변경이나 DNS 레코드 수정 과정에서 웹 접속이 막히는 경우가 많습니다.
👉 우선 http://<서버공인IP>로 직접 접속해 보세요.
- IP로 접속이 되면 DNS 문제
- IP로도 접속이 안 되면 웹 서버/방화벽 문제
원하시면 제가 makerskorean.kr의 현재 DNS 레코드 상태를 조회해서 어떤 IP로 연결되는지 바로 확인해드릴 수도 있습니다.
ufw 도 설차함
좋습니다 👍 이제 ufw까지 설치하셨다면, 웹 서버와 메일 서버가 외부에서 정상적으로 접속되도록 방화벽 규칙을 다시 정리해드릴게요.
📌 UFW 기본 설정 확인
sudo ufw status verbose
- 현재 어떤 포트가 열려 있는지 확인합니다.
- 기본 정책이
deny라면, 필요한 포트만 허용해야 합니다.
🌐 웹 서비스용 포트 열기
웹 서버(Nginx/Apache)가 외부에서 접속 가능하려면 반드시 80/443 포트를 열어야 합니다:
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
📧 메일 서비스용 포트 열기
Postfix/Dovecot을 위한 포트:
sudo ufw allow 25/tcp # SMTP
sudo ufw allow 587/tcp # Submission
sudo ufw allow 143/tcp # IMAP
sudo ufw allow 993/tcp # IMAPS
sudo ufw allow 110/tcp # POP3
sudo ufw allow 995/tcp # POP3S
🔎 확인
규칙 적용 후 다시 확인:
sudo ufw status verbose
→ 80, 443, 25, 587, 143, 993, 110, 995 포트가 ALLOW 상태인지 확인하세요.
🚨 추가 체크
- 웹 서버 실행 여부
sudo systemctl status nginx sudo systemctl status apache2→ 실행 중인지 확인 후 필요 시 재시작:sudo systemctl restart nginx - DNS 확인
Cloudflare에서makerskorean.kr→ 서버 공인 IP가 제대로 등록되어 있는지 확인:dig makerskorean.kr - 직접 IP 접속 테스트
브라우저에서http://<서버공인IP>접속 → 되면 DNS 문제, 안 되면 방화벽/웹 서버 문제.
👉 지금 상황에서 가장 빠른 진단은 브라우저로 서버 공인 IP 직접 접속입니다.
- IP로 접속이 된다면 Cloudflare DNS 설정 문제
- IP로도 접속이 안 된다면 웹 서버/방화벽 문제
원하시면 제가 makerskorean.kr의 현재 DNS 레코드 상태를 조회해서 어떤 IP로 연결되는지 바로 확인해드릴까요?
ufw 설차후 서버 재부팅후 에러가 발생
재부팅 후 에러가 발생했다면, ufw 활성화 과정에서 네트워크 차단이 걸렸을 가능성이 큽니다. 특히 기본 정책이 deny로 설정되어 있으면 SSH, HTTP/HTTPS까지 막혀서 접속 불가 상태가 됩니다.
🔎 점검 단계
1. UFW 상태 확인
서버에 접속이 가능하다면 먼저 확인:
sudo ufw status verbose
Status: active인지 확인22/tcp,80/tcp,443/tcp등이 허용되어 있는지 확인
2. SSH 포트 허용 여부
재부팅 후 접속이 막히는 가장 흔한 원인은 SSH 포트(22) 가 차단된 경우입니다.
sudo ufw allow 22/tcp
3. 기본 정책 확인
sudo ufw default allow outgoing
sudo ufw default deny incoming
→ 이렇게 설정하면 외부에서 들어오는 연결은 규칙으로 허용한 것만 통과합니다.
따라서 반드시 22, 80, 443, 메일 관련 포트를 허용해야 합니다.
4. 필요한 포트 다시 열기
sudo ufw allow 22/tcp # SSH
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw allow 25/tcp # SMTP
sudo ufw allow 587/tcp # Submission
sudo ufw allow 143/tcp # IMAP
sudo ufw allow 993/tcp # IMAPS
sudo ufw allow 110/tcp # POP3
sudo ufw allow 995/tcp # POP3S
5. 서버 접속 불가 시 복구 방법
만약 방화벽 때문에 SSH 접속이 완전히 막혀버렸다면:
- 클라우드 서버라면 → 제공업체 콘솔에서 “구성 복구” 또는 “콘솔 접속” 기능을 사용해 직접 로그인 후
ufw disable실행:sudo ufw disable - 홈서버라면 → 직접 모니터/키보드 연결해서 로그인 후 위 명령 실행.
📌 정리
- 재부팅 후 에러는 대부분 SSH 포트 차단 때문
ufw allow 22/tcp반드시 추가- 웹 서비스용 포트(80/443)와 메일 서버 포트도 허용 필요
- 접속 불가 시 콘솔/직접 로그인으로
ufw disable후 다시 규칙 설정
👉 혹시 지금 서버가 홈서버(직접 물리 접속 가능)인지, 아니면 클라우드 서버(원격만 접속 가능)인지 알려주시면 복구 방법을 더 구체적으로 안내해드릴 수 있습니다.
접속에러 이후 ssh를 내부 아이피로 (192.168.xx.xxx) 접속해도 연결안됨
내부 IP(192.168.xx.xxx)로도 SSH 접속이 안 된다면, 단순히 DNS 문제는 아니고 서버 자체에서 SSH 서비스나 방화벽 설정이 막혀 있는 상태일 가능성이 큽니다. 단계별로 진단해 보겠습니다:
🔎 확인해야 할 부분
1. SSH 서비스 상태
재부팅 후 SSH 데몬이 정상 실행 중인지 확인:
sudo systemctl status ssh
active (running)상태여야 합니다.- 만약
inactive또는failed라면:sudo systemctl restart ssh
2. UFW 규칙 확인
재부팅 후 UFW가 활성화되면서 SSH 포트(22)가 차단됐을 수 있습니다:
sudo ufw status verbose
22/tcp ALLOW항목이 반드시 있어야 합니다.- 없다면:
sudo ufw allow 22/tcp sudo ufw reload
3. 네트워크 인터페이스 확인
내부 IP가 제대로 살아 있는지 확인:
ip addr show
192.168.xx.xxx주소가 인터페이스에 바인딩되어 있는지 확인하세요.- DHCP 환경이라면 재부팅 후 IP가 바뀌었을 수도 있습니다.
4. 포트 리스닝 확인
SSH 데몬이 실제로 22번 포트를 열고 있는지 확인:
sudo ss -tlnp | grep sshd
LISTEN상태로0.0.0.0:22또는192.168.xx.xxx:22가 보여야 합니다.
5. 직접 콘솔 접속
만약 원격 접속이 전혀 안 된다면, 홈서버라면 모니터/키보드로 직접 로그인해서:
sudo ufw disable
→ 방화벽을 끈 뒤 다시 SSH 접속을 시도하세요.
📌 정리
- SSH 서비스 실행 여부 →
systemctl status ssh - UFW 규칙 →
ufw allow 22/tcp확인 - 내부 IP 확인 →
ip addr show - 포트 리스닝 확인 →
ss -tlnp | grep sshd - 접속 불가 시 → 콘솔 접속 후
ufw disable로 복구
👉 지금 상황에서 가장 빠른 복구 방법은 서버 콘솔로 직접 로그인 후 ufw disable 실행입니다.
그 다음 SSH 서비스가 살아 있는지 확인하고, 다시 ufw allow 22/tcp를 추가해야 합니다.
혹시 서버에 직접 모니터/키보드로 접근 가능한 홈서버인가요, 아니면 클라우드 서버라서 원격 콘솔만 제공되나요?
홈서버에 ssh접속이 안되는 어떻게 체크를 하나요?
좋은 질문이에요 👍 홈서버에서 SSH 접속이 안 될 때는 서비스 상태 → 네트워크 → 방화벽 → 포트 리스닝 순서로 점검하면 원인을 빠르게 찾을 수 있습니다.
🛠 SSH 접속 불가 체크리스트
1. SSH 서비스 실행 여부
sudo systemctl status ssh
active (running)이면 정상inactive또는failed라면:sudo systemctl restart ssh
2. 네트워크 인터페이스 확인
ip addr show
- 서버가
192.168.xx.xxx같은 내부 IP를 제대로 받고 있는지 확인 - DHCP 환경이면 재부팅 후 IP가 바뀔 수 있으니 주의
3. 포트 리스닝 확인
sudo ss -tlnp | grep sshd
- 출력에
LISTEN상태로0.0.0.0:22또는192.168.xx.xxx:22가 보여야 정상 - 안 보이면 SSH 데몬이 포트를 열지 못한 상태
4. 방화벽(UFW) 규칙 확인
sudo ufw status verbose
22/tcp ALLOW항목이 반드시 있어야 합니다- 없다면:
sudo ufw allow 22/tcp sudo ufw reload
5. 직접 콘솔 접속
원격 SSH가 전혀 안 된다면, 홈서버라면 모니터/키보드 직접 연결해서 로그인 후:
sudo ufw disable
→ 방화벽을 끈 뒤 다시 SSH 접속을 시도하세요.
📌 정리
- SSH 서비스 실행 여부 →
systemctl status ssh - 내부 IP 확인 →
ip addr show - 포트 리스닝 확인 →
ss -tlnp | grep sshd - 방화벽 규칙 확인 →
ufw status verbose - 접속 불가 시 → 콘솔 로그인 후
ufw disable로 복구
👉 가장 먼저 콘솔에서 systemctl status ssh 확인해 보세요.
만약 SSH 서비스가 죽어 있다면, 방화벽 문제가 아니라 단순히 데몬이 실행되지 않은 것일 수 있습니다.
원하시면 제가 “재부팅 후 SSH가 자동으로 실행되도록 설정하는 방법”까지 이어서 알려드릴까요?
접속문제는 방화벽 문제로 해결은 했는데 시작페이지가 기존의 워드프레스가 안뜨고 virtualmin 안내 페이지가 뜸
아, 이제 핵심이 보이네요 👍
방화벽 문제는 해결하셨지만, 웹 서버의 기본 DocumentRoot가 Virtualmin 설치 과정에서 바뀌어서 기존 워드프레스 대신 Virtualmin 안내 페이지가 뜨는 상황입니다.
🔎 원인
- Virtualmin 설치 시 Apache/Nginx의 기본 사이트 설정을 덮어씌우면서
/var/www/html대신 Virtualmin의 관리 페이지용 DocumentRoot가 활성화됨. - 따라서
makerskorean.kr접속 시 워드프레스가 아니라 Virtualmin 안내 페이지가 표시됩니다.
✅ 해결 방법
1. 현재 DocumentRoot 확인
Apache 사용 시:
grep -i 'DocumentRoot' /etc/apache2/sites-enabled/*.conf
Nginx 사용 시:
grep -i 'root' /etc/nginx/sites-enabled/*.conf
→ Virtualmin이 /var/www/html 대신 다른 디렉토리를 가리키고 있을 겁니다.
2. 워드프레스 경로로 수정
워드프레스가 /var/www/html에 설치되어 있다면, 해당 VirtualHost 설정을 수정해야 합니다.
Apache 예시:
sudo nano /etc/apache2/sites-available/makerskorean.kr.conf
내용 중:
DocumentRoot /var/www/html
ServerName makerskorean.kr
ServerAlias www.makerskorean.kr
Nginx 예시:
sudo nano /etc/nginx/sites-available/makerskorean.kr
내용 중:
root /var/www/html;
server_name makerskorean.kr www.makerskorean.kr;
3. 사이트 설정 활성화
Apache:
sudo a2ensite makerskorean.kr.conf
sudo systemctl reload apache2
Nginx:
sudo ln -s /etc/nginx/sites-available/makerskorean.kr /etc/nginx/sites-enabled/
sudo systemctl reload nginx
4. Virtualmin 기본 페이지 비활성화
Virtualmin이 만든 기본 사이트 설정 파일을 비활성화해야 합니다.
예시 (Apache):
sudo a2dissite 000-default.conf
sudo systemctl reload apache2
📌 정리
- Virtualmin 설치 시 기본 DocumentRoot가 바뀌어서 안내 페이지가 뜨는 것
- 워드프레스 설치 경로(
/var/www/html)를 다시 VirtualHost 설정에 지정해야 함 - Virtualmin 기본 사이트 설정을 비활성화하고, makerskorean.kr 도메인에 맞는 VirtualHost를 활성화
👉 혹시 지금 웹 서버가 Apache인지 Nginx인지 알려주시면, 제가 바로 해당 서버에 맞는 구체적인 설정 파일 경로와 수정 방법을 딱 맞게 정리해드릴 수 있습니다.
좋습니다 👍 Apache 환경에서 Virtualmin 설치 후 기본 워드프레스 페이지 대신 Virtualmin 안내 페이지가 뜨는 문제를 해결하는 방법을 단계별로 정리해드릴게요.
🔎 원인
- Virtualmin 설치 시 Apache의 기본 VirtualHost(000-default.conf) 를 덮어쓰거나 새로운 VirtualHost를 추가합니다.
- 그 결과
makerskorean.kr요청이/var/www/html대신 Virtualmin이 만든 DocumentRoot를 바라보게 되어 안내 페이지가 뜨는 겁니다.
✅ 해결 방법 (Apache 기준)
1. 현재 활성화된 사이트 확인
ls /etc/apache2/sites-enabled/
여기에 000-default.conf 또는 Virtualmin이 만든 conf 파일이 있을 겁니다.
2. 워드프레스용 VirtualHost 설정 만들기/수정
워드프레스가 /var/www/html에 설치되어 있다면, 별도의 conf 파일을 만들어 지정합니다.
sudo nano /etc/apache2/sites-available/makerskorean.kr.conf
예시 설정:
<VirtualHost *:80>
ServerName makerskorean.kr
ServerAlias www.makerskorean.kr
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/makers_error.log
CustomLog ${APACHE_LOG_DIR}/makers_access.log combined
</VirtualHost>
3. 기본 사이트 비활성화
Virtualmin 안내 페이지가 뜨는 기본 사이트를 끕니다:
sudo a2dissite 000-default.conf
4. 새 사이트 활성화
sudo a2ensite makerskorean.kr.conf
sudo systemctl reload apache2
5. HTTPS(SSL) 설정 (선택)
만약 SSL을 쓰고 있다면 /etc/apache2/sites-available/makerskorean.kr-le-ssl.conf 같은 파일을 수정해서 DocumentRoot를 /var/www/html로 맞춰야 합니다.
📌 정리
- Virtualmin 설치 후 Apache 기본 VirtualHost가 바뀌어 안내 페이지가 뜨는 것
- 워드프레스 DocumentRoot(
/var/www/html)를 지정한 VirtualHost를 새로 만들고, 기본 사이트를 비활성화하면 해결 - SSL을 쓰는 경우 HTTPS용 conf 파일도 동일하게 수정 필요
👉 지금 워드프레스가 /var/www/html에 설치되어 있는 게 맞나요? 그렇다면 제가 바로 SSL 포함 설정 예시까지 정리해드릴 수 있습니다.
시작 페이지 php 코드가 보이는 에러
<?php
/**
- Front to the WordPress application. This file doesn’t do anything, but loads
- wp-blog-header.php which does and tells WordPress to load the theme.
* - @package WordPress
*/
/**
- Tells WordPress to load the WordPress theme and output it.
* - @var bool
*/
define( ‘WP_USE_THEMES’, true );
/** Loads the WordPress Environment and Template */
require DIR . ‘/wp-blog-header.php’;
지금 증상은 워드프레스의 index.php 코드가 그대로 브라우저에 노출되는 상황인데, 이는 웹 서버(Apache)가 PHP를 실행하지 않고 단순히 텍스트로 출력하고 있다는 뜻입니다. 즉, PHP 모듈이 Apache에 제대로 연동되지 않았거나 빠져 있는 상태예요.
🔎 원인
- PHP 패키지가 설치되지 않았거나, Apache와 연동 모듈(
libapache2-mod-php)이 빠져 있음 - Virtualmin 설치 과정에서 PHP 핸들러가 FastCGI/FPM으로 바뀌었는데 설정이 꼬임
- Apache 설정에서
.php파일을 PHP로 처리하지 않고 그냥 텍스트로 내보내는 상태
✅ 해결 방법
1. PHP 설치 확인
Ubuntu 24.04 기준으로 PHP 8.1/8.2가 기본 제공됩니다. 설치 여부 확인:
php -v
→ 버전이 안 나오면 설치 필요.
설치:
sudo apt update
sudo apt install php libapache2-mod-php php-mysql -y
2. Apache에 PHP 모듈 활성화
sudo a2enmod php8.1 # 또는 php8.2, 설치된 버전에 맞게
sudo systemctl restart apache2
3. PHP 테스트 페이지 생성
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
→ 브라우저에서 http://makerskorean.kr/info.php 접속
→ PHP 정보 페이지가 뜨면 정상 동작
4. VirtualHost 설정 확인
워드프레스 DocumentRoot(/var/www/html)에 대해 PHP가 활성화되어야 합니다./etc/apache2/sites-available/makerskorean.kr.conf 안에 다음이 포함되어 있는지 확인:
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
없으면 추가 후 Apache 재시작:
sudo systemctl reload apache2
5. FPM 방식 사용하는 경우
Virtualmin은 PHP-FPM을 기본으로 설정할 수 있습니다. 이 경우 Apache 설정에 FastCGI ProxyPass가 필요합니다.
간단히 해결하려면 FPM 대신 libapache2-mod-php 방식으로 돌리는 게 편합니다.
📌 정리
- PHP 코드가 그대로 보이는 건 Apache가 PHP를 실행하지 못하는 상태
libapache2-mod-php설치 및 활성화 → Apache 재시작- 워드프레스 DocumentRoot에 PHP 핸들러 적용 확인
👉 지금 서버에 PHP가 설치되어 있는지 (php -v) 먼저 확인해 보세요.
만약 설치가 안 되어 있다면 sudo apt install php libapache2-mod-php php-mysql로 바로 해결될 가능성이 큽니다.
원하시면 제가 Virtualmin 환경에서 PHP-FPM과 mod-php 중 어떤 방식을 쓰는 게 더 안정적인지 비교도 정리해드릴까요?
지금 증상은 워드프레스의 index.php 코드가 그대로 브라우저에 노출되는 상황인데, 이는 웹 서버(Apache)가 PHP를 실행하지 않고 단순히 텍스트로 출력하고 있다는 뜻입니다. 즉, PHP 모듈이 Apache에 제대로 연동되지 않았거나 빠져 있는 상태예요.
🔎 원인
- PHP 패키지가 설치되지 않았거나, Apache와 연동 모듈(
libapache2-mod-php)이 빠져 있음 - Virtualmin 설치 과정에서 PHP 핸들러가 FastCGI/FPM으로 바뀌었는데 설정이 꼬임
- Apache 설정에서
.php파일을 PHP로 처리하지 않고 그냥 텍스트로 내보내는 상태
✅ 해결 방법
1. PHP 설치 확인
Ubuntu 24.04 기준으로 PHP 8.1/8.2가 기본 제공됩니다. 설치 여부 확인:
php -v
→ 버전이 안 나오면 설치 필요.
설치:
sudo apt update
sudo apt install php libapache2-mod-php php-mysql -y
2. Apache에 PHP 모듈 활성화
sudo a2enmod php8.1 # 또는 php8.2, 설치된 버전에 맞게
sudo systemctl restart apache2
3. PHP 테스트 페이지 생성
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
→ 브라우저에서 http://makerskorean.kr/info.php 접속
→ PHP 정보 페이지가 뜨면 정상 동작
4. VirtualHost 설정 확인
워드프레스 DocumentRoot(/var/www/html)에 대해 PHP가 활성화되어야 합니다./etc/apache2/sites-available/makerskorean.kr.conf 안에 다음이 포함되어 있는지 확인:
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
없으면 추가 후 Apache 재시작:
sudo systemctl reload apache2
5. FPM 방식 사용하는 경우
Virtualmin은 PHP-FPM을 기본으로 설정할 수 있습니다. 이 경우 Apache 설정에 FastCGI ProxyPass가 필요합니다.
간단히 해결하려면 FPM 대신 libapache2-mod-php 방식으로 돌리는 게 편합니다.
📌 정리
- PHP 코드가 그대로 보이는 건 Apache가 PHP를 실행하지 못하는 상태
libapache2-mod-php설치 및 활성화 → Apache 재시작- 워드프레스 DocumentRoot에 PHP 핸들러 적용 확인
👉 지금 서버에 PHP가 설치되어 있는지 (php -v) 먼저 확인해 보세요.
만약 설치가 안 되어 있다면 sudo apt install php libapache2-mod-php php-mysql로 바로 해결될 가능성이 큽니다.
원하시면 제가 Virtualmin 환경에서 PHP-FPM과 mod-php 중 어떤 방식을 쓰는 게 더 안정적인지 비교도 정리해드릴까요?
Ubuntu 24.04에서는 libapache2-mod-php 단독 패키지가 제공되지 않고, PHP 버전별 모듈(libapache2-mod-php8.3 등)로 설치해야 합니다. 따라서 libapache2-mod-php를 설치하려고 하면 “no installation candidate” 오류가 발생합니다. 해결 방법은 현재 지원되는 PHP 버전을 확인한 뒤 해당 버전의 Apache 모듈을 설치하는 것입니다.
✅ 해결 방법 단계별
1. 패키지 목록 업데이트
sudo apt update
2. 설치 가능한 PHP 버전 확인
apt-cache search libapache2-mod-php
→ 보통 Ubuntu 24.04에서는 PHP 8.3이 기본 제공되며, 결과에 libapache2-mod-php8.3가 나타납니다 DevTutorial.
3. PHP와 Apache 모듈 설치
sudo apt install php8.3 libapache2-mod-php8.3 php8.3-mysql -y
php8.3→ PHP 본체libapache2-mod-php8.3→ Apache와 PHP 연동 모듈php8.3-mysql→ 워드프레스 DB 연동용 확장
추가로 필요한 확장도 설치할 수 있습니다:
sudo apt install php8.3-{xml,gd,curl,mbstring,zip} -y
4. Apache에 PHP 모듈 활성화
sudo a2enmod php8.3
sudo systemctl restart apache2
5. PHP 동작 확인
테스트 파일 생성:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
브라우저에서 http://makerskorean.kr/info.php 접속 → PHP 정보 페이지가 뜨면 정상.
📌 정리
- Ubuntu 24.04에서는
libapache2-mod-php대신 버전별 패키지(libapache2-mod-php8.3)를 설치해야 함 DevTutorial. - 워드프레스 실행을 위해서는 PHP 본체 + Apache 모듈 + MySQL 확장이 반드시 필요.
- 설치 후 Apache 모듈 활성화 및 재시작을 통해 PHP 코드가 실행되도록 해야 함.
👉 지금 바로 sudo apt install php8.3 libapache2-mod-php8.3 php8.3-mysql 실행해 보시면 워드프레스 페이지가 정상적으로 뜰 가능성이 큽니다.
혹시 워드프레스가 MariaDB/MySQL과 연결되어 있다면, DB 확장(php8.3-mysql)까지 꼭 설치하셨나요?
지금 상황은 Ubuntu 24.04에서 기본 저장소에 libapache2-mod-php8.3 패키지가 바로 제공되지 않아서 발생하는 문제입니다. Ubuntu 24.04는 PHP 8.3을 기본으로 포함하지만, Apache 모듈 패키지가 universe 저장소에 들어있거나 아직 활성화되지 않았을 수 있습니다.
✅ 해결 단계
1. Universe 저장소 활성화
먼저 Universe 저장소를 켜야 합니다:
sudo add-apt-repository universe
sudo apt update
2. PHP + Apache 모듈 설치
이제 PHP와 Apache 모듈을 설치합니다:
sudo apt install php8.3 php8.3-cli php8.3-common php8.3-mysql libapache2-mod-php8.3 -y
추가로 워드프레스에 필요한 확장도 설치하세요:
sudo apt install php8.3-{xml,gd,curl,mbstring,zip} -y
3. Apache에 PHP 모듈 활성화
sudo a2enmod php8.3
sudo systemctl restart apache2
4. PHP 동작 확인
테스트 파일 생성:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
→ 브라우저에서 http://makerskorean.kr/info.php 접속
→ PHP 정보 페이지가 뜨면 정상 동작합니다.
📌 정리
libapache2-mod-php8.3패키지가 없다는 에러는 Universe 저장소가 비활성화된 상태에서 발생- Universe 저장소 활성화 후
php8.3+libapache2-mod-php8.3설치하면 해결 - Apache 모듈 활성화 후 워드프레스가 정상적으로 PHP를 실행하게 됩니다
👉 지금 바로 sudo add-apt-repository universe && sudo apt update 실행해 보시고, 그 다음 sudo apt install libapache2-mod-php8.3를 다시 시도해 보시면 될 겁니다.
원하시면 제가 워드프레스에 필요한 PHP 확장 전체 목록을 정리해서 한 번에 설치할 수 있는 명령어도 알려드릴까요?
지금 말씀하신 <?php phpinfo(); ?>는 PHP가 정상적으로 동작하는지 확인하는 테스트 코드입니다.
만약 브라우저에서 이 코드가 그대로 보이고 실행되지 않는다면, 여전히 Apache가 PHP를 처리하지 못하는 상태라는 뜻이에요. 즉, PHP 모듈이 설치/연동되지 않았거나 Apache 설정이 꼬여 있는 상황입니다.
✅ 점검 및 해결 단계
1. PHP 설치 여부 확인
php -v
→ PHP 버전이 출력되어야 합니다.
없다면 설치:
sudo apt update
sudo apt install php8.3 php8.3-cli php8.3-common php8.3-mysql -y
2. Apache-PHP 연동 모듈 설치
Ubuntu 24.04에서는 버전별 모듈을 설치해야 합니다:
sudo apt install libapache2-mod-php8.3 -y
만약 no installation candidate 오류가 난다면 Universe 저장소를 활성화하세요:
sudo add-apt-repository universe
sudo apt update
sudo apt install libapache2-mod-php8.3 -y
3. Apache 모듈 활성화
sudo a2enmod php8.3
sudo systemctl restart apache2
4. 테스트 페이지 생성
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
→ 브라우저에서 http://makerskorean.kr/info.php 접속
→ PHP 정보 페이지가 뜨면 정상 동작
📌 정리
<?php phpinfo(); ?>가 그대로 보이면 PHP 모듈이 Apache에 연결되지 않은 상태php8.3+libapache2-mod-php8.3설치 후 Apache 모듈 활성화 필요- Universe 저장소를 켜야 패키지를 설치할 수 있음
👉 지금 php -v 명령어를 실행했을 때 PHP 버전이 나오나요? 그 결과에 따라 다음 단계(모듈 설치 vs PHP 전체 설치)를 바로 안내해드릴 수 있습니다.
지금 상황은 Ubuntu 24.04 + Sury 저장소(PHP 패키지 제공) 환경에서 libapache2-mod-php8.3 패키지가 기본 저장소에 없어서 발생하는 문제입니다.
Ubuntu 24.04에서는 PHP 실행을 Apache 모듈(mod_php) 대신 PHP-FPM(FastCGI Process Manager) 방식으로 사용하는 것이 기본입니다. 그래서 libapache2-mod-php8.3가 제공되지 않고, 대신 php8.3-fpm을 설치해 Apache와 연동해야 합니다.
✅ 해결 방법 (PHP-FPM 방식)
1. PHP-FPM 설치
sudo apt install php8.3-fpm -y
2. Apache에 FPM 모듈 활성화
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.3-fpm
sudo systemctl restart apache2
3. PHP 동작 확인
테스트 파일 생성:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
브라우저에서 http://makerskorean.kr/info.php 접속 → PHP 정보 페이지가 뜨면 정상 동작.
📌 VirtualHost 예시 (Apache + PHP-FPM)
/etc/apache2/sites-available/makerskorean.kr.conf 안에 다음이 포함되어야 합니다:
<VirtualHost *:80>
ServerName makerskorean.kr
ServerAlias www.makerskorean.kr
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/"
</FilesMatch>
ErrorLog ${APACHE_LOG_DIR}/makers_error.log
CustomLog ${APACHE_LOG_DIR}/makers_access.log combined
</VirtualHost>
📌 정리
- Ubuntu 24.04에서는
libapache2-mod-php8.3패키지가 제공되지 않음 - 대신 PHP-FPM(
php8.3-fpm)을 설치하고 Apache와 연동해야 PHP 코드가 실행됨 - VirtualHost 설정에서
.php파일을 PHP-FPM 소켓으로 넘겨주도록 지정해야 함
👉 지금 바로 sudo apt install php8.3-fpm 실행 후 Apache에 a2enconf php8.3-fpm 적용해 보시면, 워드프레스가 정상적으로 PHP를 실행할 가능성이 큽니다.
원하시면 제가 워드프레스에 필요한 PHP 확장 전체 설치 명령어도 정리해드릴까요?
연결이 비공개로 설정되어 있지 않습니다.
공격자가 server.makerskorean.kr에서 사용자의 정보를 도용하려고 시도할 수 있습니다(예: 비밀번호, 메시지, 신용카드 정보). 이 경고에 대해 자세히 알아보기
net::ERR_CERT_COMMON_NAME_INVALID
향상된 보호 모드를 사용 설정하여 Chrome의 가장 강력한 보안을 활용하세요.
Ssl certificate common name invalid error on apache
그 경고는 브라우저가 받은 인증서의 이름이 지금 접속한 도메인과 일치하지 않을 때 발생합니다. 지금은 server.makerskorean.kr로 접속했는데, 서버가 내보내는 인증서가 makerskorean.kr(또는 다른 이름)용일 가능성이 큽니다. 이름을 맞추면 바로 사라집니다.
What’s likely wrong
- 도메인 불일치: 인증서가 makerskorean.kr용인데 server.makerskorean.kr로 접속 중.
- SSL 가상호스트 우선순위: Apache의 443 가상호스트가 잘못된 사이트(다른 cert)로 응답.
- Cloudflare 프록시: 오렌지 구름(Proxy) 켠 상태에서 원본/모드 설정 불일치.
- 만료/체인 문제: 인증서가 만료됐거나 중간 인증서 누락.
Quick checks
- 어떤 인증서가 나가는지 확인
openssl s_client -connect server.makerskorean.kr:443 -servername server.makerskorean.kr -showcerts </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates -ext subjectAltName- SAN 목록에 server.makerskorean.kr가 없으면 새 인증서가 필요합니다.
- Apache에서 443 가상호스트 확인
sudo apachectl -S ls /etc/apache2/sites-enabled/- server.makerskorean.kr를 위한
*:443VirtualHost가 있고, 그 안의 인증서 경로가 맞는지 확인하세요.
- server.makerskorean.kr를 위한
Fix it on apache (let’s encrypt)
워드프레스가 makerskorean.kr에 있고, 관리/메일에 server.makerskorean.kr를 쓰는 구조라면 각각 이름에 맞는 인증서를 발급하세요.
- Certbot 설치
sudo apt update sudo apt install certbot python3-certbot-apache -y - 필요한 도메인에 맞춰 발급/적용
- 웹사이트용
sudo certbot --apache -d makerskorean.kr -d www.makerskorean.kr - 서버 서브도메인(필요하면)
sudo certbot --apache -d server.makerskorean.kr
- 웹사이트용
- 적용 후 재시작
sudo systemctl reload apache2 - 자동 갱신 확인
sudo certbot renew --dry-run
If using virtualmin
Virtualmin에서 도메인별로 SSL을 분리해 관리할 수 있습니다.
- Server Configuration → SSL Certificate → Let’s Encrypt
- “Domains to include”에 정확히 해당 호스트명을 넣고 발급
- 발급 후 해당 도메인의 Apache SSL vhost에 올바른 경로가 들어갔는지 확인:
- SSLCertificateFile /etc/letsencrypt/live/<도메인>/fullchain.pem
- SSLCertificateKeyFile /etc/letsencrypt/live/<도메인>/privkey.pem
충돌을 막으려면 잘못된 기본 SSL 사이트(예: 000-default-le-ssl.conf)가 활성화돼 있지 않은지 확인하고 비활성화하세요.
sudo a2dissite 000-default-le-ssl.conf
sudo systemctl reload apache2
Cloudflare in front?
- DNS에서 해당 A/CNAME이 프록시(오렌지 구름)라면 원본 서버도 유효한 인증서를 가져야 합니다.
- SSL/TLS 모드는 “Full (strict)”로 설정, 원본에 올바른 cert가 설치되어 있어야 합니다.
- 원인 파악을 위해 잠시 회색 구름(Proxy off)으로 바꾸고 직접 연결 테스트를 해보세요.
When it’s still not right
- 다른 사이트가 응답:
apachectl -S로 SNI 매칭을 재확인하고, server_name/ServerName이 정확한지 점검. - 만료:
openssl x509 -noout -dates -in /path/to/cert.pem로 만료일 확인 후 재발급. - 중간 인증서 누락: Apache는
fullchain.pem을 써야 합니다.cert.pem만 쓰면 브라우저에서 오류 납니다.
원하시면 현재 apachectl -S 출력과 sites-enabled에 활성화된 SSL vhost 파일명을 알려주세요. 어느 vhost가 응답 중인지, 어떤 인증서가 붙어 있는지 바로 짚어드릴게요.
virtualmin 가상서버 생성시 에러
Failed to create virtual server : You cannot create a new domain with makerskorean.kr name, unless option “Setup SSL certificate from provider for hostname” is first disabled in “Virtualmin Configuration ⇾ SSL settings” page
이 에러 메시지는 Virtualmin이 도메인 이름(makerskorean.kr)을 새 가상서버로 만들 때, SSL 인증서 자동 설정 옵션 때문에 막히는 상황입니다. 즉, Virtualmin이 “호스트네임용 SSL 인증서를 자동으로 발급/설정”하도록 강제되어 있는데, 이미 같은 이름으로 인증서가 존재하거나 충돌이 발생해서 새 도메인을 만들 수 없다는 뜻이에요.
🔎 원인
- Virtualmin의 SSL 설정에서 “Setup SSL certificate from provider for hostname” 옵션이 켜져 있음.
- 이 옵션은 서버 호스트네임(makerskorean.kr)에 대해 자동으로 SSL을 발급하려고 시도합니다.
- 그런데 동일한 이름으로 새 가상서버를 만들려 하니 충돌이 발생 → 생성 실패.
✅ 해결 방법
1. Virtualmin 설정에서 옵션 끄기
- Virtualmin에 로그인
- Webmin → Virtualmin Configuration → SSL settings 메뉴로 이동
Setup SSL certificate from provider for hostname옵션을 Disabled로 변경- 저장 후 다시 가상서버 생성 시도
2. 가상서버 생성 후 SSL 따로 설정
- 가상서버를 정상적으로 만든 뒤, 해당 도메인으로 들어가서
Server Configuration → SSL Certificate → Let’s Encrypt 메뉴에서 직접 인증서를 발급하면 됩니다. - 이렇게 하면 충돌 없이 makerskorean.kr 도메인에 SSL을 적용할 수 있습니다.
3. 대안 (호스트네임 분리)
- 서버 자체 호스트네임은
server.makerskorean.kr같은 서브도메인으로 두고, - 웹사이트용 가상서버는
makerskorean.kr로 생성하는 방식도 권장됩니다.
→ 이렇게 하면 호스트네임 SSL과 웹사이트 SSL이 분리되어 충돌이 줄어듭니다.
📌 정리
- 에러는 Virtualmin의 SSL 자동 설정 옵션 때문에 발생
- 해결책은 Virtualmin Configuration → SSL settings에서 해당 옵션을 끄고,
- 가상서버 생성 후 SSL을 별도로 발급/적용하는 것
👉 지금 서버 호스트네임을 makerskorean.kr로 쓰고 계신데, 웹사이트도 같은 도메인을 쓰고 있죠. 관리 편의상 호스트네임을 server.makerskorean.kr로 바꾸고, 웹사이트는 makerskorean.kr로 두는 구조가 더 안정적입니다. 원하시면 제가 호스트네임 변경 절차 + Virtualmin에서 올바른 SSL 적용 방법을 단계별로 정리해드릴까요?
현재 기존의 워드프레스로 가지 않고 virtualmin 안내 페이지로 접속이 되는 문제
<VirtualHost *:80>
SuexecUserGroup #1001 #1001
ServerName makerskorean.kr
DocumentRoot /var/www/html
ErrorLog /var/log/virtualmin/makerskorean.kr_error_log
CustomLog /var/log/virtualmin/makerskorean.kr_access_log combined
ScriptAlias /cgi-bin/ /home/._hostname/cgi-bin/
DirectoryIndex index.php index.htm index.html
<Directory /home/._hostname/public_html>
Options -Indexes +IncludesNOEXEC +SymLinksIfOwnerMatch
Require all granted
AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
AddType text/plain .php
</Directory>
<Directory /home/._hostname/cgi-bin>
Require all granted
AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
</Directory>
ProxyPass /.well-known !
RemoveHandler .php
<FilesMatch \.php$>
SetHandler None
AddType text/plain .php
</FilesMatch>
<Directory "/var/www/html">
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/"
</FilesMatch>
</VirtualHost>
<VirtualHost *:443>
SuexecUserGroup #1001 #1001
ServerName makerskorean.kr
DocumentRoot /var/www/html
ErrorLog /var/log/virtualmin/makerskorean.kr_error_log
CustomLog /var/log/virtualmin/makerskorean.kr_access_log combined
ScriptAlias /cgi-bin/ /home/._hostname/cgi-bin/
DirectoryIndex index.php index.htm index.html
<Directory /home/._hostname/public_html>
Options -Indexes +IncludesNOEXEC +SymLinksIfOwnerMatch
Require all granted
AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
AddType text/plain .php
</Directory>
<Directory /home/._hostname/cgi-bin>
Require all granted
AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
</Directory>
<FilesMatch \.php$>
SetHandler None
AddType text/plain .php
</FilesMatch>
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/"
</FilesMatch>
ProxyPass /.well-known !
RemoveHandler .php
SSLEngine on
SSLCertificateFile /etc/ssl/virtualmin/1768305416335929/ssl.combined
SSLCertificateKeyFile /etc/ssl/virtualmin/1768305416335929/ssl.key
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
<Directory "/var/www/html">
</Directory>
</VirtualHost>
지금 보여주신 Apache VirtualHost 설정을 보면, 워드프레스가 설치된 /var/www/html을 DocumentRoot로 지정했는데도 접속 시 Virtualmin 안내 페이지가 뜨는 이유는 몇 가지 설정 충돌 때문입니다. 핵심은 Virtualmin이 자동으로 추가한 디렉토리 설정과 PHP 핸들러 부분입니다.
🔎 문제 포인트
- 중복된 Directory 설정
<Directory /home/._hostname/public_html>블록이 존재하면서.php를text/plain으로 지정하고 있습니다.- 이 때문에 PHP 파일이 실행되지 않고 텍스트로 출력되거나 Virtualmin 기본 페이지가 우선 적용됩니다.
- RemoveHandler / AddType text/plain .php
.php확장자를 PHP로 처리하지 않고 단순 텍스트로 처리하도록 강제하고 있습니다.- 워드프레스 index.php가 실행되지 않고 안내 페이지가 뜨는 원인.
- Virtualmin 기본 VirtualHost 우선순위
- Apache는 첫 번째 로드된 VirtualHost(특히
000-default.conf나 Virtualmin이 만든 기본 vhost)를 기본 응답으로 사용합니다. - makerskorean.kr 요청이 올바른 VirtualHost로 매칭되지 않으면 Virtualmin 안내 페이지가 뜹니다.
- Apache는 첫 번째 로드된 VirtualHost(특히
✅ 해결 방법
1. 불필요한 PHP 무력화 설정 제거
makerskorean.kr.conf에서 다음 줄들을 삭제하거나 주석 처리하세요:
AddType text/plain .php
RemoveHandler .php
<FilesMatch \.php$>
SetHandler None
AddType text/plain .php
</FilesMatch>
→ 이 부분이 PHP 실행을 막고 있습니다.
2. 올바른 PHP-FPM 핸들러만 유지
남겨야 할 부분은 아래처럼 단순화:
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/"
</FilesMatch>
3. DocumentRoot 확인
워드프레스가 /var/www/html에 설치되어 있다면 VirtualHost의 DocumentRoot는 반드시 그 경로여야 합니다:
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
4. 기본 사이트 비활성화
Virtualmin 안내 페이지가 뜨는 건 기본 SSL 사이트가 먼저 응답하기 때문일 수 있습니다.
sudo a2dissite 000-default.conf
sudo a2dissite 000-default-le-ssl.conf
sudo systemctl reload apache2
5. VirtualHost 매칭 확인
sudo apachectl -S
→ makerskorean.kr 요청이 올바른 VirtualHost에 매칭되는지 확인하세요.
📌 정리
- Virtualmin이 추가한
.php → text/plain설정 때문에 워드프레스가 실행되지 않고 안내 페이지가 뜸 - 해당 설정을 제거하고 PHP-FPM 핸들러만 남겨야 함
- DocumentRoot를
/var/www/html로 확실히 지정 - 기본 VirtualHost(000-default.conf 등)를 비활성화해서 makerskorean.kr이 올바른 vhost로 매칭되도록 해야 함
👉 추천 순서:
makerskorean.kr.conf에서.php무력화 설정 제거- Apache 재시작 후
http://makerskorean.kr접속 테스트 - 문제가 계속되면
apachectl -S출력 확인해서 어떤 VirtualHost가 실제 응답하는지 확인
원하시면 제가 수정된 완전한 VirtualHost 예시를 바로 작성해드릴까요?
https://makerskorean.kr로 접속을 해도 https://www.makerskorean.kr로 접속이 되는 이유
좋은 포인트를 짚으셨어요 👍https://makerskorean.kr로 접속했는데 자동으로 https://www.makerskorean.kr로 리다이렉트되는 이유는 웹 서버(Apache/Nginx) 또는 DNS/Cloudflare 설정에서 www 도메인을 기본으로 강제하고 있기 때문입니다.
🔎 가능한 원인
1. Apache VirtualHost 설정
ServerName이www.makerskorean.kr로 되어 있고,makerskorean.kr은ServerAlias로 처리되는 경우- 또는
makerskorean.kr요청을www.makerskorean.kr로 Rewrite/Redirect하도록 설정된 경우:RewriteEngine On RewriteCond %{HTTP_HOST} ^makerskorean\.kr [NC] RewriteRule ^(.*)$ https://www.makerskorean.kr/$1 [L,R=301]
2. WordPress 설정
- 워드프레스 일반 설정 → 사이트 주소(URL) 가
https://www.makerskorean.kr로 저장되어 있으면, - makerskorean.kr로 접속해도 워드프레스가 자동으로 www 주소로 리다이렉트합니다.
3. Cloudflare/DNS 설정
- Cloudflare에서 “Always Use WWW” 같은 규칙이 적용되어 있을 수 있습니다.
- DNS 레코드에서
makerskorean.kr이www.makerskorean.kr로 CNAME 처리된 경우도 있습니다.
✅ 해결 방법
A. Apache에서 www 강제 리다이렉트 제거
/etc/apache2/sites-available/makerskorean.kr.conf 확인 후, 위와 같은 Rewrite 규칙이 있으면 삭제하거나 수정하세요.ServerName makerskorean.kr을 기본으로 두고, ServerAlias www.makerskorean.kr로 설정하면 www와 non-www 모두 접속 가능하게 됩니다.
예시:
<VirtualHost *:80>
ServerName makerskorean.kr
ServerAlias www.makerskorean.kr
DocumentRoot /var/www/html
</VirtualHost>
B. WordPress 사이트 주소 수정
워드프레스 관리자 → 설정 → 일반에서
- 워드프레스 주소(URL)
- 사이트 주소(URL)
를https://makerskorean.kr로 변경하세요.
C. Cloudflare/DNS 확인
- Cloudflare Page Rules, Redirect Rules에 www 강제 규칙이 있는지 확인
- DNS에서
makerskorean.kr이www.makerskorean.kr로 CNAME 처리되어 있지 않은지 확인
📌 정리
- makerskorean.kr → www.makerskorean.kr로 리다이렉트되는 건 서버 설정, 워드프레스 설정, 또는 Cloudflare 규칙 때문
- 원하는 주소를 기본으로 쓰려면 Apache VirtualHost의 ServerName/ServerAlias, 워드프레스 사이트 주소, Cloudflare 규칙을 일치시켜야 합니다
👉 지금 워드프레스 관리자에서 사이트 주소가 https://www.makerskorean.kr로 되어 있을 가능성이 큽니다.
혹시 원하시는 기본 주소가 www 없는 버전(makerskorean.kr)인가요, 아니면 www 붙은 버전(www.makerskorean.kr)인가요?
