트러블슈팅🌠
제곧내
- 🛠️ 다인위키 트러블슈팅 로그
- [트러블슈팅 #1] HTTPS 접속 보안 경고 해결 방법
- [트러블슈팅 #2] HTTPS 로 접속시 /dashboard로 리디렉션 되는 문제
- [트러블슈팅 #3] 포트 충돌시 해결방법
🛠️ 다인위키 트러블슈팅 로그
🛠️ 트러블슈팅 로그 (2025.04.20)
⚠️ 모바일 화면에서 로고 깨지는 문제 (2024.04.19 해결완료)
모바일 화면에서 헤더 로고 이미지 깨짐 현상 발생
✅ 조치 사항
- 이미지 포맷을 PNG로 변경해서 정상 출력되도록 수정함
⚠️ 모바일 화면에서 본문 이미지 깨짐 문제
본문에 이미지 첨부 시 모바일 화면에서 깨짐
🔍 원인 : ?
✅ 진행상황: 점검중
- 확장자별 테스트 jpeg, jpg, gif, png
- 직접 첨부 & 간접 참조 형식 별 테스트
⚠️ PDF 다운로드 시 글씨 깨짐 (인코딩 문제)
본문을 PDF로 다운로드할 때 글자가 깨지는 문제
🔍 원인 : ?
✅ 진행상황: 점검중
⚠️ phpMyAdmin 리디렉션 문제 (HTTPS 443 포트)
https://dainwiki.com/ 접속 시 자동으로 /dashboard로 이동하고 그 후 phpMyAdmin으로 연결됨
http://dainwiki.com 을 통해서 접속하면 정상접속 됨
🔍 원인 : ?
✅ 진행상황: 점검중
- 리디렉션 설정 및 서버 포트 설정 점검 중
[트러블슈팅 #1] HTTPS 접속 보안 경고 해결 방법
HTTPS 로 접속하면 보안경고 "연결이 비공개로 설정되어 있지 않습니다." 뜨는 문제
💡 보안경고 없애려면 SSL 인증이 필요하다.
XAMPP는 인증서 생성을 간편하게 돕는 일괄 스크립트를 제공한다.
기본 설치 폴더로 가면 C:\xampp\apache에 makecert.bat 이라는 패치파일이 있을것이다.
1. 에디터로 makecert.bat 열기
bin\openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 1825 -extfile v3.ext
2. 소스 수정 후 배치파일과 같은 위치에 v3.ext파일 생성
authorityKeyIdentifier-keyid, issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, non Repudiation, keyEncipherment,
dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 localhost
DNS.2 = *.dainwiki.com
DNS.3 = dainwiki.com
DNS.4 = 127.0.0.1
3. makecert.bat를 실행해서 SSL인증서를 생성한다.
4. C:\xampp\apache\conf\ssl.crt 에서 server.srt 실행 후 인증서 설치
5. 서버 재기동 후 서비스 테스트
https://awesomepossum.tistory.com/846
[트러블슈팅 #2] HTTPS 로 접속시 /dashboard로 리디렉션 되는 문제
HTTPS 로 접속하면 url에 /dashboard 붙으면서 phpMyAdmin페이지로 리디렉션 되는 문제
https://dainwiki.com 으로 접속했을 때
원래는 Bookstack (8080포트에서 구동 중) 으로 프록시하려고 했는데
이상하게 /dashboard/가 붙으면서 phpMyAdmin 쪽으로 넘어간다
→ DainWiki가 가동중인 8080 포트로 프록시를 연결해주고 싶다.
한 마디로 /(루트) 요청을 받아야 하는데, 다른 기본 설정(/dashboard/나 phpMyAdmin)으로 빠지는 현상을 겪고 있다.
아마도 서버 루트 디렉토리(/var/www/html/)에 phpMyAdmin이 설치되어 있어서 기본 요청이 그쪽으로 가는 것 같다.
💡Apache 설정파일에서 8080으로 프록시 고정 시키기
C:\xampp\apache\conf\extra 에서 httpd-vhosts 파일에 아래 설정 주입
<VirtualHost *:443>
ServerName dainwiki.com
ServerAlias www.dainwiki.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/your_certificate.crt
SSLCertificateKeyFile /etc/ssl/private/your_private.key
SSLCertificateChainFile /etc/ssl/certs/your_chainfile.pem
# 프록시 설정
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
현재 SSL 에서 오류가 나서 SSL 을 설정하면 Apache서버가 아예 돌아가지 않는 문제를 겪고 있다.
SSL 경로 문제로서 위 경로를 아래와 같이 수정해 줌
SSLEngine on
SSLCertificateFile "C:/xampp/apache/conf/ssl.crt/server.crt"
SSLCertificateKeyFile "C:/xampp/apache/conf/ssl.key/server.key"
(※ 윈도우니까 경로에 슬래시 / 방향 맞춰줘야 한다!! 역슬래시 \ 쓰지 말고 /)
🚨 주의사항
이 기본 인증서는 자체 서명(Self-signed) 된 거라서, 브라우저에서 "주의 요함" 이 뜰 수 있다.
진짜 상용 인증서를 쓰려면, 따로 구매하거나 Let's Encrypt 같은 걸로 발급받아야 한다. (현재는 test)
<VirtualHost *:443>
ServerName dainwiki.com
ServerAlias www.dainwiki.com
SSLEngine on
SSLCertificateFile "C:/xampp/apache/conf/ssl.crt/server.crt"
SSLCertificateKeyFile "C:/xampp/apache/conf/ssl.key/server.key"
SSLCertificateChainFile "C:/xampp/apache/conf/ssl.crt/server-ca.crt" # (필요한 경우만 사용)
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
XAMPP 윈도우 기본 SSL 폴더 위치
C:\xampp\apache\conf\ssl.crt
[트러블슈팅 #3] 포트 충돌시 해결방법
포트 충돌시 해당 포트를 점유하는 프로세스의 PID 조회하고 강제 종료하기
XAMPP 에서 포트 충돌이 나서 Apache서버가 돌아가지 않는 문제가 발생해서 포트 충돌이 있는지 확인하고자 한다.
💡 cmd에서 포트 점유중인 프로세스 찾는 명령어
예) 443번 포트를 사용하는 프로세스 찾기
올바른 명령어는 아래와 같다
netstat -ano | findstr ":443"
netstat -ano: 네트워크 연결 정보를 보여주는 명령이다.
-a는 모든 연결과 리스닝 포트를, -n은 숫자 형식으로 IP 주소와 포트를 출력하며, -o는 해당 연결을 사용하는 프로세스의 PID(Process ID)를 표시한다.
findstr ":443": findstr 명령은 주어진 문자열을 찾는 명령으로, :443을 포함하는 줄을 찾아 표시한다.
만약 다른 포트도 확인하고 싶다면, 포트 번호만 변경해서 사용하면 된다.
🚨 주의사항
findstr ":443"
이렇게 " "문자열 안에 포트번호구분자인 컬럼이랑 포트번호를 명시해야 한다.
아래처럼 포트번호만 쓰면 결과값 조회되지 않음.
netstat -ano | findstr 443
💡 해당 포트를 점유중인 프로세스의 PID로 프로그램 조회하기
netstat -ano | findstr ":443" 명령어를 사용하면, 해당 포트를 점유하고 있는 **프로세스의 PID(프로세스 ID)**를 확인할 수 있다. 그러나 이 명령어만으로는 어떤 프로그램이 해당 포트를 사용하고 있는지는 알 수 없다. 다만, PID를 알아냈다면, 그 PID에 해당하는 프로그램을 확인할 수 있다.
Windows에서 1234 PID에 해당하는 프로세스 이름을 알려주는 명령어
tasklist /FI "PID eq 1234"
💡 해당 포트를 점유중인 프로세스 강제 종료하는 명령어
리눅스/유닉스에서는 kill -9로 프로세스를 강제 종료한다.
kill -9 1234
이 명령어는 해당 프로세스를 즉시 종료시키는데, -9 옵션은 "강제 종료(signal 9)" 옵션이다.
그래서 이 방법은 일반적인 종료 시그널(kill만 사용)로 종료되지 않는 프로세스를 강제로 종료할 때 유용하다.
반면 Windows 에서는 아래 명령어 사용한다.
taskkill /PID 1234 /F
/F: 강제 종료 (force kill)
/PID 1234: 종료할 프로세스의 PID