>> Edit article
이름
제목
패스워드
: 쌀쌀해 졌네요. 갑자기... : 감기들 조심하시구여... : : 본론을 쓰겠습니다. : 아파치 웹 서버를 구성하였습니다. : 디렉토리 구성입니다. : [/usr/local/apache/htdocs/] : | : +-- DocumentRoot (index.html 의 위치) : | | : ... +-- board : | : +-- member : | : +-- data : | : ... : : 이런식으로 구성하였습니다. : : 지금 현상은 다 보인다는 겁니다. : 일단 httpd.conf 에서는 DocumentRoot 와 : Options 에서 -Indexes를 설정하였습니다. : 그래서 http://xxx.xxx.xxx/member 등으로 바로 접속해 들어오면 : 403 Forbidden 이 떨어집니다. 하지만 익스플로러에서 : 앞,뒤로 왔다갔다 하다보면 또 나옵니다. ====================================================================== ====================================================================== 이것은 member 디렉토리에 대한 Indexes 옵션이 없어서 그런것 같습니다. <Directory "/usr/local/apache/htdocs/DocumentRoot/*"> Options FollowSymLinks MultiViews ExecCGI Indexes AllowOverride None Order allow,deny Allow from all </Directory> 위와 같이 DocumentRoot 이하의 디렉토리에도 Indexes 옵션이 설정되도록 해 주세요. 또 하나 member 디렉토리에서 가장 먼저 실행되는 스크립트명을 index.php 라고 명명하시고 httpd.conf 에서 <IfModule mod_dir.c> DirectoryIndex index.html index.php </IfModule> 위와같이 해 두시면 member 라는 디렉토리경로만 치셔도 index.php 가 실행이 됩니다. ====================================================================== ==================================================================== : 그리고 또 문제는 디렉토리 내부의 *.inc 또는 *.cfg 등을 경로와 이름으로 : 지정하면 파일 내부의 모든 텍스트가 : 보기에 아주(?) 좋도록 깔끔하고 선명하게 나옵니다. : 이래서는 안되는거 같은데...쩝. ==================================================================== ==================================================================== 위의 문제는 inc 나 cfg 화일을 httpd.conf 에서 설정하지 않으셔서 그렇습니다. 만약 php 를 사용하고 계시다면 AddType application/x-httpd-php .php .php3 .phtml .inc .cfg AddType application/x-httpd-php-source .phps 라고 고쳐보세요. 그러면 소스가 보이지 않고 php 에서 해석해서 뿌려주게 됩니다. ==================================================================== ==================================================================== : : 오늘은 Alias 항목을 찾아서 몽땅 디렉토리를 아래 처럼 만들어 테스트 : 해봤습니다. : DocumentRoot 와 동일 레벨이면 웹에서 안보이는 거 아닌가요? : : [/usr/local/apache/htdocs/] : | : +-- DocumentRoot (index.html 의 위치) : | : +-- board : | : +-- member : | : +-- data : | : ... : ==================================================================== ==================================================================== Alias 는 경로를 단축시켜주거나 아니면 DocumentRoot 디렉토리 밖에 있는 디렉토리를 웹서버에서 Access 할수 있도록 하기 위한 것입니다. Alias /icons/ "/usr/local/apache/icons/" 위와 같이 설정이 되면 실제의 디렉토리는 /usr/local/apache/icons 이지만 웹브라우저에서는 DocumentRoot/icons 라고 인식하게 됩니다. 그러니까 Alias 지정한것은 DocumentRoot 의 하위 디렉토리가 되는 것입니다. ==================================================================== ==================================================================== : 그리고 /icons/ 예를 참조하여 Alias 항목도 다 정해주었습니다. : 그러니까 다른건 다 잘되는데 : php 코드내의 경로 지정이 안먹습니다. : : 예) include "member/database_conn.inc"; : : 다시 원래 상태로 돌렸습니다. (건망증이 심해서 원래데로 다 : 돌리는데도 상당히 애 먹었습니다.) ==================================================================== ==================================================================== php 코드내에서는 유닉스내의 절대 경로나 아니면 소스가 있는 경로를 기준으로 하는 상대경로로 사용해야 합니다. include "member/database_conn.inc"; 위 라인을 포함하는 소스화일이 /usr/local/apache/htdocs/DocumemtRoot/member 디렉토리에 있다면 위처럼 Alias 로 지정했다고 하지만 "member/database_conn.inc" 은 /usr/local/apache/htdocs/DocumemtRoot/member/member/database_conn.inc 로 여기게 되어 화일이 없다는 에러를 내게 됩니다. 즉 Alias 된 항목은 php 내에서는 URL 이 아니고 디렉토리로는 인식을 하지 못한다는 것입니다. ==================================================================== ==================================================================== : : 아 길다. : 질문입니다. : 1. 베테랑 관리자가 디렉토리 구성하는 방법과 그 이유를 알고 싶습니다. ==================================================================== ==================================================================== 보통 일반적인 html 화일과 이미지화일 그리고 스크립터로 돌아가는 perl 등의 cgi php 로 돌아가는 화일등을 따로 두고 관리를 하게 됩니다. 보안에 민감한 부분이기 때문이지요. 그리고 Alias 도 적당히 사용하면 보안에 도움이 됩니다. ==================================================================== ==================================================================== : 2. cgi-bin 디렉토리를 어떤경우에 사용해야 하는지 좀 가르쳐 주세요. ==================================================================== ==================================================================== cgi-bin 디렉토리를 Alias 로 설정하여 지정하는 이유는 이 외의 디렉토리에서 cgi 와 같은 보안에 민감한 화일의 실행을 막기위함입니다. 하지만 php 는 서버측에서 돌아가는 스크립트이므로 실행퍼미션이 없으도 되는것처럼 cgi-bin 이라는 디렉토리에 둘 필요는 없습니다. 그리고 ScriptAlais 로 지정을 해 두면 그 이하디렉토리에 있는 이미지나 html 문서는 보이지 않게 됩니다. 깨진다고 해야죠. ==================================================================== ==================================================================== : 3. Alias디렉토리를 사용하는 경우 PHP 코드내에서 경로를 못찾는게 : 정상인가요? 아니라면 제가 뭘 빠드린 건가요? ==================================================================== ==================================================================== 못찾는게 정상입니다. 절대경로나 상대경로를 사용하세요. ==================================================================== ==================================================================== : 4. Alias디렉토리를 사용하는 경우에 DocumentRoot에다가 설정한 쿠키는 : 정상적으로 사용가능 한가요? ==================================================================== ==================================================================== 쿠기는 잘 모르겠습니다, php4 를 사용하신다면 Session 을 사용해보세요. 쿠키보다 편하고 좋습니다. ==================================================================== ==================================================================== : : 첨이라 시행착오를 아주 많이 합니다. : 암튼 재미는 있군요. 시간이 없어서 괴롭지만요.... : 아시는분 한수 부탁함다. : 다 읽어 주신분은 감사함다. : 건강하세요 ! : : -- : 초보탈출 100일 작전 -- 조금이라도 도움이 되었기를.............
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved