서버/AWS (Amazon Web Services)

Amazon Lightsail 여러개의 워드프레스 사이트 설치 (6) - 다국어 사이트 구성 (아파치 설정 이용)

날개 2017. 11. 6. 01:17

지난 글에서 이야기 한대로 구성을 해보겠습니다.



1. 디렉토리 구성하기


지난 글에서 보았던 디렉토리 구성도를 다시 한번 보죠.


이 구성이 되도록 아래와 같이 디렉토리 구성을 합니다.


$ cd /var/www

$ mkdir minthands.com

$ mkdir platcube.com

$ cd minthands.com/

$ mkdir kr

$ mkdir en

$ cd ..

$ cd platcube.com/

$ mkdir en

$ mkdir kr







2. 테스트 페이지 작성


각 디렉터리에 테스트용 html 을 작성합니다.


/var/www/minthands.com/kr/index.html

<html>

<body>

    MintHans.com 페이지 준비중입니다.

</body>

</html>


/var/www/minthands.com/en/index.html

<html>

<body>

    MintHands.com page is coming soon.

</body>

</html>


/var/www/platcube.com/kr/index.html

<html>

<body>

    platcube.com 페이지 준비중입니다.

</body>

</html>


/var/www/platcube.com/en/index.html

<html>

<body>

    platcube.com page is coming soon.

</body>

</html>




3. 아파치 설정 변경


이제 위에 설정한 페이지로 접속하기 위해 아파치 설정을 변경합니다.


단, 여기서는 임시로 minthands.com/kr과 minthands.com/en만 접속 가능하도록 설정합니다. (platcube.com접근은 나중에 설정하도록 하겠습니다.)


먼저 아파치 설정 파일은 수정하여,

1) minthands.com 디렉토리가 웹 문서 루트가 되도록 하고

2) minthands.com 디렉토리의 설정값을 수정하여 .htaccess 파일이 로딩 되도록 하겠습니다. (.htaccess 파일은 아글 뒷부분에서 언어별 리다이렉팅이 되도록 설정하기 위해 작성하겠습니다.)


아파치 설정 파일이 있는 디렉토리로 갑니다.


$ cd /etc/httpd/conf


만약을 대비해 원래 있던 httpd.conf 파일을 httpd.conf.ori 파일로 백업합니다.


$ sudo cp httpd.conf httpd.conf.ori


httpd.conf 파일을 열어서 아래의 내용을 수정합니다.


1. DocumentRoot 을 찾아 아래와 같이 수정


DocumentRoot "/var/www/minthands.com"


2. <Directory "/var/www"> 또는 <Directory "/var/www/html">을 찾아 아래와 같이 수정


<Directory "/var/www/minthands.com">


3. <Directory "/var/www/minthands.com"> ... </Directory> 에서 아래의 내용을 수정하거나, 없으면 추가


AllowOverride All



위에서 1은 웹 문서 루트, 즉 웹브라우저에서 접속할때 주소만 쳤을때 접속하게 될 위치의 디렉토리를 가리키는 것입니다.

2는 그 디렉토리의 설정을 하겠다는 의미이고....

3은 그 디렉토리의 설정에서 AllowOverride All 을 사용하겠다는 뜻입니다. AllowwOverride를 All로 해 두어야 아래에서 설명할, .htaccess 파일을 아파치 서버가 사용할 수 있게 됩니다.


제 경우의 httpd.conf 파일 내용의 일부는 아래와 같습니다.



설정 파일을 저장하고, 아파치를 재시작 합니다.


$ sudo service httpd restart



이제 웹브라우저에서 접속 테스트를 해봅니다.


브라우저 주소창에 서버의 퍼블릭 IP 와 /kr 디렉토리 접속과 /en 디렉토리 접속을 해봅니다.


예를 들어 퍼블릭 IP가 123.123.12.12 라면,


(주소창) 123.123.12.12/kr



(주소창) 123.123.12.12/en


이와 같이 정상적으로 나오는지 확인이 되었으면, 이제 IP 주소만 입력해도 자동으로 영어 또는 한국어 사이트로 이동하도록 설정해 보겠습니다.





4. 아파치 디렉토리 설정 파일 만들기


이제, 웹 문서 루트 디렉터리인 /var/www/minthands.com.htaccess 라는 파일을 만들어 아래의 내용을 타이핑 합니다.


RewriteEngine on



# if the accept-language is started with 'Ko', redirect to 'kr'.

RewriteCond %{HTTP:Accept-Language} ^ko [NC]

RewriteRule ^$ /kr/ [L,R=301]


# else redirect to 'en'.

RewriteRule ^$ /en/ [L,R=301]



(.htaccess)



파일 이름 앞에 .(도트)이 있다는 점에 유의 하십시오. 리눅스는 . 으로 시작하는 단어를 숨김속성으로 사용하므로 파일이 존재 하는지 확인 하려면 ls -al 명령으로 확인 할 수 있습니다.


이 파일의 설정 내용을 간단히 설명하자면, 'RewriteEngine on' 은 말 그대로 RewriteEngine을 사용하겠다는 뜻입니다. 그 밑에 리다이렉팅 하는 부분들이 이 모듈을 쓰기 때문에 이 모듈을 On 해 주어야 합니다.


RewriteCond ... ^ko 부분은 브라우저로 부터 들어오는 요청의 헤더에 Accept-Language 항목에 ko로 시작하는 단어가 있으면 /kr/ 디렉토리로 301 리다이렉팅 하라는 의미 입니다.


만약에 다른 언어도 추가하고 싶으면, 마찬가지로 같은 내용을 추가하여 해당 언어의 언어 코드와 디렉토리를 정해 주면 됩니다.


마지막 줄은 위의 언어코드(들)에 해당이 없으면, 기본 값으로 영문 페이지, 즉 /en/ 디렉토리로 301 리다이렉팅 하라는 의미 입니다.



이 파일을 /var/www/platcube.com 에도 똑같이 작성합니다.


이제 웹브라우저에서 아까와는 달리 서버의 퍼블릭 IP 만 입력해 봅니다.


주소창에 퍼블릭 IP만 입력했는데, 브라우저에서 보낸 헤더의 내용을 통해 퍼블릭 IP/kr 로 자동 리다이렉팅 된 것을 볼 수 있습니다.


브라우저와 PC 의 설정이 English 로 되어 있다면, 퍼블릭 IP/en 으로 자동으로 리다이렉팅 될 것입니다.


이제 다음 글에서는 각각의 폴더에 워드 프레스를 설치하기 위해 데이터베이스를 생성하고, 각 데이터베이스에 유저를 추가합니다.







(C) 2017 WingsNote.com (무단 복제 및 게시 금지, 링크 허용)