Quantcast
Channel: 우분투 한국 커뮤니티
Viewing all articles
Browse latest Browse all 4577

Re: 아파치 403 Forbidden 오류 질문입니다.

$
0
0
Author: happyman
Forum: 서버/네트워크 게시판
Date: 2014-08-09


현재 제가 SSD+HDD1+HDD2이렇게 운용하고있어서
ssd용량관계로 몇몇 큰파일들은 hdd에 폴더를 만들고 /www/xe 폴더안에 바로가기 링크를 옮겨뒀습니다.
그런데 여기서 이게문제입니다.
바로가기링크가 무조건 403 forbidden 오류가 뜹니다.
(원본폴더/바로가기폴더 둘다 755은물론 777까지 권한을 줘봤는데도 forbidden)
뭐가 문제인가요? 검색해보면 deny from all 이렇게되있는걸 allow from all 이런식으로바꾸라고하더군요.
근데 전 이미 다 바뀌어져있는데... 폴더를 자체적으로 /xe폴더안에만들어서 권한을주면 리스트가 잘보입니다.

"바로가기"라는 말이 symbolic link를 의미하는 것이 맞지요? 윈도즈에서는 바로가기 (shortcut link)와 symbolic link가 다른 말이라서, symbolic link에 바로가기라는 번역을 사용하는 것이 적절한지 모르겠습니다. GNU/Linux에서 일반적으로 받아들여지는 번역인데 저만 모르는 것인가요? 아무튼 symbolic link를 의미하는 것이죠? 그렇다는 전제 하에 말씀드립니다.

아마도 symbolic link된 디렉터리의 ancestor 디렉터리들의 permission 문제로 보입니다. 예를 들지요. 큰 file을 담을 directory를 "/mnt/hdd1/forweb/largefiles"로 만들어 그 안에 큰 파일들을 담았다고 가정합니다. 그리고나서, 다음의 명령으로 symbolic link를 만들었다고 가정하겠습니다.
sudo -s /mnt/hdd1/forweb/largefiles /var/www/xe/link-to-largefiles
이 경우, "http://www.sonakize.kr/link-to-largefiles/"를 web URL로 주면, "/mnt/hdd1/xe/largefiles" 안의 모든 파일/디렉토리의 리스트 인덱스가 나타나길 원하십니다. 이것이 맞나요?

그렇다면, "/mnt/hdd1/forweb/largefiles"에서 largefiles는 755 permission이 필요합니다. 이것은 해 주었다고 하셨죠? 뿐만 아니라 forweb, hdd1, mnt도 모두 others에 execute permission이 필요합니다. 즉, 최소한 711 permission이 필요합니다. 디렉터리 largefiles에서 시작하여 루트까지 올라가면서 확인해 보세요. 그래도 안되면? 여긴 고수님들이 많으십니다.



<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>


질문과 관계없이 그냥 노파심에 한마디 드립니다. 위에 보인 /var/www에 대한 설정은 보안상 문제가 있을 수 있어 보입니다. 뭐, 이유가 있으시겠지만 "AllowOverride All"은 deafault 값을 변경하신 것이죠? 딱히 집어서 이런 문제가 있다고 말씀은 못드리지만, override해야 할 것이 있다면, 그것을 지정하시는 것이 좋을 것 같습니다. All은 좀...

또 하나는 Options에 Indexes를 넣은 것인데요. 물론 이게 default이긴 합니다. 이렇게 하면 index.html등이 없는 모든 디렉터리에서 listing을 주게되죠? 이것은 보안상 큰 위협으로 생각됩니다. 저라면 Options에서 Indexes를 빼고, AllowOverride의 All을 Indexes로 바꾸겠습니다. 그리고, 리스팅을 원하는 디렉터리 안에 .htaccess를 만들고 여기에 "Options Indexes"를 넣으면 디렉터리 리스팅이 가능합니다.


+ /www/xe 폴더가 아닌 /www폴더에 제 하위도메인을 연결하려면 어떻게해야하나요?
주소표시장끝에 xe붙는게싫어서 위에처럼 바꿧는데 생각해보니 그럼 xe폴더를 메인으로써야되는데 폴더보기가 너무지저분해서요
virtualhost로 www폴더의 다른폴더 (ex- /www/web폴더를 내 도메인 web.sonakize.kr 으로 연결) 이런식?

정확하게 무었을 원하시는지 모르겠는데요. DocumentRoot는 "/var/www"로 설정하고, "http://www.sonakize.kr/"에 접속하면, /var/www/xe/index.html을 보여주실 원하시는 것인가요? 이런 종류라면, mod_rewrite가 제격일 듯 싶습니다. 구체적으로 원하시는 것을 제가 이해하질 못해서 해결책은 못드리지만, 웹 운영자라면 mod_rewrite의 이해는 필수 사항이라고 생각됩니다. 아마도 원하시는 해법이 거기에 있을 것입니다. 혹시 모르는 주제이시면, 공부하실 자료는 mod_rewrite를 검색하시면 넘쳐납니다.

Viewing all articles
Browse latest Browse all 4577

Trending Articles