Linux

[Linux] Apache 개인 사용자 홈 디렉터리 설정 httpd-userdir.conf

thdwldud 2025. 11. 22. 20:45

httpd-userdir.conf

  • 사용자들이 개인 홈페이지를 이용하려고 할 때 사용하는 파일로 외부 클라이언트들이 접근할 때는 계정 앞이 ~(tilde)를 붙임
  • 웹 서버의 도메인이 www.posein.org이고 사용자 계정이 posein이라면 http://www.posein.org/~posein 으로 접근하면 됨
  • 이 파일을 사용하려면 버전에 따라 차이가 있을 수 있지만, httpd.conf 파일에서 두 곳을 활성화(# 주석 제거) 해야 함
    • LoadModule 항목에서 mod_userdir.so
    • Include 항목에서 httpd-userdir.conf

 

httpd-userdir.conf 파일 활성화 예

  • httpd.conf 파일에서 LoadModule 항목 및 Includ 항목 활성화
    • LoadModule userdir_module modules/mod_userdir.so
    • Includ conf/extra/httpd-userdir.conf
  • 비활성화된 경우에는 맨 앞줄의 주석 기호인 ‘#’을 제거

[설정 후 확인 예]

[root@www conf]# egrep 'userdir' httpd.conf
LoadModule userdir_module modules/mod_userdir.so
Includ conf/extra/httpd-userdir.conf
  • httpd-userdir.conf 파일 설정
    • vi /usr/local/apache/conf/extra/httpd-userdir.conf
  • 아파치 웹 서버 데몬 재시작
    • /usr/local/apache/bin/apachectl restart

 

UserDir public_html

  • 웹 문서를 위치시킬 디렉터리명을 지정하는 부분
  • 기본적으로 public_html으로 설정되어 있는데 개인 홈페이지를 운영하기 위해서는 사용자의 홈 디렉터리 내에 이 디렉터리를 생성하고 index.html 등과 같은 문서를 이 디렉터리 안에 위치시켜야 함
    • posein 사용자의 홈 디렉터리가 /home/posein이라면 /home/posein/public_html 디렉터리 생성한 뒤에 웹페이지 문서를 이 디렉터리 내에 위치시켜야 함
  • 사용자의 홈 디렉터리에 접근하려면 접근 권한이 있어야 하므로와 chmod 755 ~ 같은 명령을 수행해야 함
  • UseDir 설정에서 public_html을 www 등과 같이 디렉터리 이름을 변경했다면 아파치 데몬을 재시작해야 함

 

<Directory /home/*/public_html>

  • 사용자들의 홈 디렉터리에 대한 옵션을 설정한 부분
<Directory /home/*/public_html>
    AllowOverride FileInfo AuthConfig Limit Indexes
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    Require method GET POST OPTIONS
</Directory>

 

💡위치 / 옵션 찾기

사용자 (홈) 디렉터리

  • userdir 이라는건 암기!

httpd-conf 파일 위치

  • find / -name httpd.conf
    • /usr/local/apache/conf/httpd.conf

httpd.conf 파일 내 활성화 항목

  • cat /usr/local/apache/conf/httpd.conf | grep userdir 또는 egrep 'userdir' /usr/local/apache/conf/httpd.conf
    • LoadModule userdir_module modules/mod_userdir.so
    • Includ conf/extra/httpd-userdir.conf

httpd-userdir.conf 파일 위치

  • find / -name httpd-userdir.conf
    • /usr/local/apache/conf/extra/httpd-userdir.conf