출처 : http://sir.co.kr/bbs/board.php?bo_table=pg_tip&wr_id=244
대량의 서브도메인 생성이 매번 DNS서버와 아파치서버를 설정하고 재실행
그것도 양이 많아지지만 끊기는 현상이 발생합니다.
특히나 자동화 계정및 자동 서브도메인부분에서는...
다차원 서브도메인지원 클럽을 만들면서 클럽이 서브도메인에 생성되기때문에
서버를 자동셋팅으로 해결하는 수밖에 없어서 이곳저곳 참고하여 셋팅한걸 올립니다.
BIND zone파일에 대한 셋팅
존파일의 경우
test.com. IN A 111.111.111.111
*.test.com. IN A 111.111.111.111 <-- *.test.com으로 모든 서브도메인을 네임서버에서
잡아줍니다.
APACHE http.conf
먼저 아파치에서 자동서브도메인이 셋팅되도록할려면
mod_rewrite 모듈이 필요합니다. 컴파일시 첨부하거나 DSO(동적)방식으로 삽입을 해야합니다.
/home/계정명/폴더 <---- 해당 폴더가 서브도메인이 되도록 셋팅
<VirtualHost 218.236.58.88>
ServerAdmin webmaster@test.com // 관리자 이메일
DocumentRoot /home/test/www // 기본 웹 루트
ServerName test.com // 기본서버명
ServerAlias *.test.com // 모든 서브도메인을 Alias로 받습니다.
RewriteEngine on // RewriteEngine 활성화
RewriteCond %{HTTP_HOST} ^[^.]+\.test\.com$ // 서버명에 서브도메인 정규화로 매치
RewriteRule ^(.+) %{HTTP_HOST}$1 [C] // Cond에 해당되는 도메인에 대해서 도메인뒤에 나온 문장 매치
RewriteRule ^([^.]+)\.test\.com(.*) /home/test/$1/$2 서브도메인과 해당페이지 매치
ErrorDocument 404 /home/test/error/err-404.html
ErrorDocument 403 /home/test/error/err-403.html
ErrorLog /home/test/web_log/error_log
CustomLog /home/test/web_log/access_log common
</VirtualHost>
계정이용자들을 서브도메인으로
domain.com/~id를 id.domain.com으로
생략합니다.(상단은 같음)
RewriteEngine on
RewriteCond %{HTTP_HOST} ^[^.]+\.test\.com$
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^([^.]+)\.test\.com(.*) /home/$1/www$2
이제 아파치 Restart하면 끝......*^^*<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:30:25 Apache에서 이동 됨]</div
출처 : http://www.gurubee.net/m/lecture/1021
Outer Join 이란?
- - Equi Join은 조인을 생성하려는 두 개의 테이블의 한쪽 컬럼에서 값이 없다면 테이터를 반환하지 못한다.
- - 동일 조건에서 조인 조건을 만족하는 값이 없는 행들을 조회하기 위해 Outer Join을 사용 한다.
- - Outer Join 연산자는 "(+)" 이다.
- - 조인시 값이 없는 조인측에 "(+)"를 위치 시킨다.
- - Outer Join 연산자는 표현식의 한 편에만 올 수 있다.
Outer Join 예제
Equi Join과 Outer Join의 비교.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 |
-- Equi Join 으로 부서 번호를 조회하는 예제 SELECT DISTINCT (e.deptno), d.deptno, d.dname FROM emp e, dept d WHERE e.deptno = d.deptno; DEPTNO DEPTNO ------ ---------- 10 10 20 20 30 30 -- Outer Join 으로 부서 번호를 조회하는 예제 SELECT DISTINCT (e.deptno), d.deptno FROM emp e, dept d WHERE e.deptno(+) = d.deptno; DEPTNO DEPTNO ------- -------- 10 10 20 20 30 30 40 |
Outer Join을 사용하는 테이블에 추가로 조건절이 있다면 (+)연산자를 모두 해야 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 |
-- ename LIKE 조건절에 (+)연산자가 누락된 경우 SELECT DISTINCT (a.deptno), b.deptno FROM emp a, dept b WHERE a.deptno(+) = b.deptno AND a.ename LIKE '%' ; DEPTNO DEPTNO ---------- ---------- 10 10 20 20 30 30 -- ename LIKE 조건절에 (+)연산자를 추가해야 정상적으로 데이터가 조회 된다. SELECT DISTINCT (a.deptno), b.deptno FROM emp a, dept b WHERE a.deptno(+) = b.deptno AND a.ename(+) LIKE '%' ; DEPTNO DEPTNO ------- -------- 10 10 20 20 30 30 40 |
LEFT, RIGHT, FULL Outer Join
Oracle9i 부터는 ANSI/ISO SQL 표준인 LEFT OUTER JOIN , RIGHT OUTER JOIN, FULL OUTER JOIN를 지원 한다.
LEFT OUTER JOIN
LEFT OUTERL JOIN은 오른쪽 테이블(아래 예제에서 emp테이블)에 조인시킬 컬럼의 값이 없는 경우 사용한다.
1
2
3
4
5 |
-- LEFT OUTER JOIN 조인 예제 SELECT DISTINCT (e.deptno), d.deptno FROM dept d LEFT OUTER JOIN emp e ON d.deptno = e.deptno; |
RIGHT OUTER JOIN
RIGHT OUTERL JOIN은 왼쪽 테이블(아래 예제에서 emp테이블)에 조인시킬 컬럼의 값이 없는 경우 사용한다.
1
2
3
4
5 |
-- RIGHT OUTER JOIN 조인 예제 SELECT DISTINCT (e.deptno), d.deptno FROM emp e RIGHT OUTER JOIN dept d ON e.deptno = d.deptno; |
FULL OUTER JOIN
FULL OUTERL JOIN은 양쪽 테이블 모두 Outer Join걸어야 하는 경우 사용 한다.
1
2
3
4
5 |
-- FULL OUTER JOIN 조인 예제 SELECT DISTINCT (e.deptno), d.deptno FROM emp e FULL OUTER JOIN dept d ON e.deptno = d.deptno; |
문서에 대하여
- - 강좌 URL : http://www.gurubee.com/m/lecture/1021
- - 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- - 모든 강좌는 크리에이티브 커먼즈의 저작자표시-비영리-동일조건변경허락(BY-NC-SA) 라이선스에 따라 자유롭게 사용할 수 있습니다.