현재 아파치 잘 사용하고있습니다. (작동OK)
제가 virtualhost를 이용해서 /www에서 /www/xe (제로보드사용중)으로 가도록 해뒀는데요.
현재 콘픽입니다.
[code:o3n6j9p3]
ServerAdmin jungjunghoo@naver.com
DocumentRoot /var/www/xe
ServerName sonakize.kr
ServerAlias www.sonakize.kr
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
[/code:o3n6j9p3]
현재 제가 SSD+HDD1+HDD2이렇게 운용하고있어서
ssd용량관계로 몇몇 큰파일들은 hdd에 폴더를 만들고 /www/xe 폴더안에 바로가기 링크를 옮겨뒀습니다.
그런데 여기서 이게문제입니다.
바로가기링크가 무조건 403 forbidden 오류가 뜹니다.
(원본폴더/바로가기폴더 둘다 755은물론 777까지 권한을 줘봤는데도 forbidden)
뭐가 문제인가요? 검색해보면 deny from all 이렇게되있는걸 allow from all 이런식으로바꾸라고하더군요.
근데 전 이미 다 바뀌어져있는데… 폴더를 자체적으로 /xe폴더안에만들어서 권한을주면 리스트가 잘보입니다.
- /www/xe 폴더가 아닌 /www폴더에 제 하위도메인을 연결하려면 어떻게해야하나요?
주소표시장끝에 xe붙는게싫어서 위에처럼 바꿧는데 생각해보니 그럼 xe폴더를 메인으로써야되는데 폴더보기가 너무지저분해서요
virtualhost로 www폴더의 다른폴더 (ex- /www/web폴더를 내 도메인 web.sonakize.kr 으로 연결) 이런식?
도와주세요! ㅠㅠ 이거때문에 1주넘게 구글뒤지는데 답이안보입니다…
[quote="wjdgns421":3tu02o5r]
현재 제가 SSD+HDD1+HDD2이렇게 운용하고있어서
ssd용량관계로 몇몇 큰파일들은 hdd에 폴더를 만들고 /www/xe 폴더안에 바로가기 링크를 옮겨뒀습니다.
그런데 여기서 이게문제입니다.
바로가기링크가 무조건 403 forbidden 오류가 뜹니다.
(원본폴더/바로가기폴더 둘다 755은물론 777까지 권한을 줘봤는데도 forbidden)
뭐가 문제인가요? 검색해보면 deny from all 이렇게되있는걸 allow from all 이런식으로바꾸라고하더군요.
근데 전 이미 다 바뀌어져있는데… 폴더를 자체적으로 /xe폴더안에만들어서 권한을주면 리스트가 잘보입니다.
[/quote:3tu02o5r]
"바로가기"라는 말이 symbolic link를 의미하는 것이 맞지요? 윈도즈에서는 바로가기 (shortcut link)와 symbolic link가 다른 말이라서, symbolic link에 바로가기라는 번역을 사용하는 것이 적절한지 모르겠습니다. GNU/Linux에서 일반적으로 받아들여지는 번역인데 저만 모르는 것인가요? 아무튼 symbolic link를 의미하는 것이죠? 그렇다는 전제 하에 말씀드립니다.
아마도 symbolic link된 디렉터리의 ancestor 디렉터리들의 permission 문제로 보입니다. 예를 들지요. 큰 file을 담을 directory를 "/mnt/hdd1/forweb/largefiles"로 만들어 그 안에 큰 파일들을 담았다고 가정합니다. 그리고나서, 다음의 명령으로 symbolic link를 만들었다고 가정하겠습니다.
[code:3tu02o5r]sudo -s /mnt/hdd1/forweb/largefiles /var/www/xe/link-to-largefiles[/code:3tu02o5r]
이 경우, "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에서 시작하여 루트까지 올라가면서 확인해 보세요. 그래도 안되면? 여긴 고수님들이 많으십니다.
[quote="wjdgns421":3tu02o5r]
[code:3tu02o5r]
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
[/code:3tu02o5r]
[/quote:3tu02o5r]
질문과 관계없이 그냥 노파심에 한마디 드립니다. 위에 보인 /var/www에 대한 설정은 보안상 문제가 있을 수 있어 보입니다. 뭐, 이유가 있으시겠지만 "AllowOverride All"은 deafault 값을 변경하신 것이죠? 딱히 집어서 이런 문제가 있다고 말씀은 못드리지만, override해야 할 것이 있다면, 그것을 지정하시는 것이 좋을 것 같습니다. All은 좀…
또 하나는 Options에 Indexes를 넣은 것인데요. 물론 이게 default이긴 합니다. 이렇게 하면 index.html등이 없는 모든 디렉터리에서 listing을 주게되죠? 이것은 보안상 큰 위협으로 생각됩니다. 저라면 Options에서 Indexes를 빼고, AllowOverride의 All을 Indexes로 바꾸겠습니다. 그리고, 리스팅을 원하는 디렉터리 안에 .htaccess를 만들고 여기에 "Options Indexes"를 넣으면 디렉터리 리스팅이 가능합니다.
[quote="wjdgns421":3tu02o5r]
- /www/xe 폴더가 아닌 /www폴더에 제 하위도메인을 연결하려면 어떻게해야하나요?
주소표시장끝에 xe붙는게싫어서 위에처럼 바꿧는데 생각해보니 그럼 xe폴더를 메인으로써야되는데 폴더보기가 너무지저분해서요
virtualhost로 www폴더의 다른폴더 (ex- /www/web폴더를 내 도메인 web.sonakize.kr 으로 연결) 이런식?
[/quote:3tu02o5r]
정확하게 무었을 원하시는지 모르겠는데요. DocumentRoot는 "/var/www"로 설정하고, "http://www.sonakize.kr/"에 접속하면, /var/www/xe/index.html을 보여주실 원하시는 것인가요? 이런 종류라면, mod_rewrite가 제격일 듯 싶습니다. 구체적으로 원하시는 것을 제가 이해하질 못해서 해결책은 못드리지만, 웹 운영자라면 mod_rewrite의 이해는 필수 사항이라고 생각됩니다. 아마도 원하시는 해법이 거기에 있을 것입니다. 혹시 모르는 주제이시면, 공부하실 자료는 mod_rewrite를 검색하시면 넘쳐납니다.
감사합니다.
말씀하신대로 indexs삭제후 이것저것 보안추가를했습니다.
문제해결은 상위디렉토리라 안되는거였습니다.
찾아보니 mount를 시켜주니까 된다고해서 하니까 되네요.
감사합니다! 덕분에 해결해요.