반응형
Apache 서버의 실행 사용자(www-data)를 ubuntu 그룹의 일원으로 추가
sudo usermod -a -G ubuntu www-data
이 명령어는 Apache 서버가 Django 프로젝트 파일에 접근할 수 있게 만드는 핵심 조치입니다.
아파치와 장고의 연결 과정에서 흔히 간과되지만, 실제 배포 환경에서는 이 권한 문제가 상당히 중요한 역할을 합니다.
🔍 명령어 설명
sudo usermod -a -G ubuntu www-data
구성 요소 | 의미 |
sudo | 관리자 권한으로 실행 |
usermod | 리눅스 사용자 정보를 수정하는 명령 |
-a | 기존 그룹에 추가로 그룹을 더한다 (append) |
-G ubuntu | 대상 그룹: ubuntu 그룹 |
www-data | 수정할 사용자: Apache 웹서버의 실행 계정 |
📌 즉, Apache 서버의 실행 사용자(www-data)를 ubuntu 그룹의 일원으로 추가하는 작업입니다.
🔧 이 명령어가 해결한 문제
💥 문제 상황
- EC2에서 Ubuntu 사용자로 작업한 파일들(예: /home/ubuntu/madang/)은 기본적으로 ubuntu 사용자 및 그룹 소유
- Apache는 www-data 사용자로 실행되며, 다른 사용자 디렉토리에 기본 접근 권한이 없음
- 결과: 403 Forbidden, Permission Denied, mod_wsgi 오류 발생
✅ 해결 효과
www-data가 ubuntu 그룹의 구성원이 되면서…
- /home/ubuntu/madang/ 내 파일들을 그룹 권한으로 읽고 실행 가능
- Django의 WSGI 파일, 정적 파일 등에 Apache가 접근 가능
- 403 Forbidden → 해결됨
🔐 실제 동작 예시
# 기존 상태
ls -ld /home/ubuntu/madang
# drwxr-x--- ubuntu ubuntu ...
# www-data는 이 디렉토리에 접근 불가
# 그룹에 추가 후
sudo usermod -a -G ubuntu www-data
# 시스템을 다시 로그인하거나 Apache 재시작 시 적용
sudo systemctl restart apache2
⚠️ 주의사항
- 이 명령어는 -a를 생략하면 기존 그룹이 모두 사라지고 ubuntu 그룹만 남는 심각한 오류를 일으킵니다.
- 잘못된 예: usermod -G ubuntu www-data ❌
- 반드시 -a -G 조합으로 사용해야 합니다.
🧾 요약
항목 | 설명 |
목적 | Apache(www-data)가 ubuntu 사용자 파일에 접근하도록 허용 |
효과 | Django 소스, 정적 파일, wsgi.py 접근 가능해짐 |
중요성 | WSGI 연동에서 발생하는 403, 500 오류 해결 핵심 |
주의 | -a 없이 쓰면 기존 그룹 제거됨. 항상 -a -G 사용 |
이 한 줄이 배포에서 결정적인 차이를 만들어냅니다.
이제 Apache + Django 조합이 완전히 동작 가능한 안정 상태에 접어든 것입니다.
반응형
'Linux > 네트워크 및 서비스의 활용' 카테고리의 다른 글
네트워크에서의 앤드포인트 (2) | 2025.06.29 |
---|---|
[AWS] MySQL 데이터베이스 활용 전에 설치되어야 할 패키지 (5) | 2025.06.23 |
[AWS] 인스턴스 비교, t2.micro와 t3.large (2) | 2025.06.22 |
AWS VSCode Server 접속하기 (4) | 2025.06.21 |
AWS EC2에 VSCode Server 설치하기 (5) | 2025.06.20 |