본문으로 바로가기

DSM 6.2 xe 웹서버 만들기

category Server/Xpenology - Web Server 2018.11.14 11:43

PC사양

i7 6700

Ram 8G

DS918+ DSM 6.2 23824 업데이트1


업그레이드를 하고 이것 저것 테스트를 해봅니다.

윈도우에서 nginx XE구동을 하고 있는데 주기적으로 Hang이 걸려서 nginx를 재시작 , fcgi재시작 등 스케줄러에 걸어두고 사용을 하고 있습니다.

느린감도 있고 이런 문제가 있어서 앞으로 나스로 홈페이지를 옮겨볼까 하고 테스트를 하고 있습니다.


현재 6.2에서 웹서버를 아래구성으로 하고자 합니다.

xe 1.11

php 7

nginx

mariadb 10

phpMyadmin


1. 설치환경 구성


1) 홈페이지를 넣을 폴더를 만듭니다.


이부분은 사실 1개의 홈페이지를 구성하고자 한다면, web폴더 아래에 투척하면 만사 OK 입니다.

하지만 가상호스트를 활용하여 여러개의 홈페이지를 운영하고자 하는 목적이 있기에 아래 방법으로 합니다.



2)구동 프로그램들 설치



3)웹스테이션을 실행 설정을 합니다.

백엔드 서버로 아파치와 nginx를 선택, PHP도 5.6과 7.0 선택을 할 수 있습니다.

가상호스트를 할경우 또한 홈페이지별도로 이부분들을 선택적으로 운용할 수 있습니다.

속도가 빠른 nginx로 선택하고 PHP는 7로 합니다.


PHP 설정에서 편집을 누르고 나오면 아래 화면이 나오는데 xe가 구동되기 위해서 여러모듈들이 필요하다. 그냥 모두 선택해주고 적용합니다.


마지막으로 가상호스트 부분이다. 나는 아래 도메인으로 하나 입력하고 설정을 다음과 같이 하엿습니다.

문서루트는 위에서 만든 site/grace폴더를 지정

백엔드 서버와 PHP는 각각 nginx php7.0


이렇게 하위폴더를 지정했을때 문구를 하나띄우는데 상위폴더에 접근 권한을 가지도록 한다는 그런 내용이 나오게 됩니다.

그래서 site 폴더의 권한 확인을 해보면 자동으로 http가 허용으로 들어가있음을 알 수 있습니다.


그리고 홈페이지 폴더인 grace  여기가 중요합니다.

도메인으로 웹 접속으로 설치를 시작할때, xe는 초기 설치시 권한이 없으면 설치가 안되기에 권한을 요구하는 화면을 띄우며 707 로 변경하라고 합니다.

또는 빈페이지에 연결할 수없다는 화면이 뜨기도 할 것입니다.


그래서 이부분은 콘솔에 접속해서 707로 변경해 봅시다.

FTP권한이 있어서 FTP접근이 가능하다면 FTP에서 폴더를 707권한으로 변경할 수 있으며,


일단은

putty 로 콘솔 접속후 아래 명령으로 합니다.


chmod 707 -R /volume1/site/grace


grace 하위폴더까지 모두 707로 변경하는 명령입니다.

이명령후 grace폴더를 보면 Everyone 으로 추가가 되어 있음을 아마 볼수 있을 것입니다.




이것을 볼때, 콘솔로 어려운 분들은,

웹스테이션상에서 권한- 생성 Everyone 으로 하더라도 707과 같은 결과를 보여주므로 웹스테이션에서 바로 하셔도 됩니다.

변경후 반드시 아래쪽에 이 폴더, 하위폴더 및 파일까지 포함 에 체크를 하고 적용합니다.


단, 권한 - 쓰기 맨 아래에 있는 삭제만 체크 해제해주세요.


4)DB생성

이제 phpMyAdmin을 실행해서 DB생성을 합니다.






2. XE설치



짧은 주소

http://도메인/index.php?module=board1 XE는 이런형식을 취하는데


http://도메인/board1 와 같이 짧게 표기되게 하는 기능입니다. 현재는 사용안됨으로 나타나고 있는데 아래에 설명하겠습니다.


mariaDB는 mysqli로 합니다.


시놀 6.x에서 MariaDB의 포트는 3307 이다. 기억해 두세요.



마지막 관리자 정보를 입력하고,


초기화면을 이제 보게 됩니다.





3. 짧은 주소 사용 - rewrite mode


이제 끝이 났습니다.

한가지 짧은 주소, rewrite모드를 해결해 봅시다.


XE제어판에서 모듈-일반설정 고급 부분에보면 짧은 주소 사용이 있습니다.


이부분을 사용 으로 바꾸고 초기화면중에 메뉴 예를 들어 board1이라는 링크를 클릭해보면

이제는 주소형태가 http://pc1.one2.kr/board1으로 열리는데 페이지가 열리지 않습니다.



1)xe_rewrite.conf 생성


nginx로 xe를 구동시 rewrite conf를 인클루드 해주어야 합니다.


https://github.com/xpressengine/xe-core/wiki/Nginx-rewite-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0


사이트에 보면 rewrite conf 만드는 방법이 잘 나와 있습니다. vi 편집기로 하는 방법이 나와있는데


조금은 간편하게 아래처럼 할 수 있습니다.


위 허브 내용대로 conf 파일을 메모장에 만들고 저장 후 아래에 넣습니다.


xe_rewrite.conf




그리고 콘솔에서 명령으로 추가합니다.

참고로 nginx의 기본 폴더 즉, nginx.conf가 위치한 곳은 /etc/nginx 입니다.


그러므로 위에 만든 conf 파일을 nginx기본폴더로 복사합니다.


cp /volume1/site/xe_rewrite.conf /etc/nginx


리스팅 해보면 잘 들어가 있습니다.



2)가상호스트 설정에 xe_rewrite.conf 인클루드하기

만든 conf 파일을 nginx가 불러오도록 설정해주어야 합니다.


가상호스트 파일을 엽니다.


vi /etc/nginx/app.d/server.webstation-vhost.conf



server { 섹션에 pc1.one2.kr 이라고 앞서 만든 홈피 설정이 딱 되어있음을 볼수 있습니다.


아래쪽 끝으로 커서를 이동 내려가면 하나의 include 구문이 보입니다. user.conf 를 부르는 .




자 이제 이줄 밑에 include 구문으로 넣습니다.


i 키로 입력모드로 변경후 추가해주면 됩니다.


아래는 구문이 절대경로로 되어있으나, 상대경로로 주면된다. 위에서 /etc/nginx 기본위치로 넣어라고 한 이유입니다.


include xe_rewrite.conf;


또는 절대경로

include /etc/nginx/xe_rewrite.conf;





이렇게 추가를 해서 문제가 없는줄 알았습니다.

그런데 이 /etc/nginx/app.d/server.webstation-vhost.conf

파일이 자꾸만 초기화 됩니다.


무슨 이유일까요?

외국 사이트도 그렇고 아래 사이트를 읽어보니 이유가 보입니다.


https://www.alphafactory.co.kr/2017/08/03/how-to-customize-nginx-vhost-on-synology/


사용자 설정값이 유지가 안되는 그렇게 있네요. 


그래서 설명을 참고하여, 

/etc/nginx/app.d/server.webstation-vhost.conf 파일은 그대로 두고


맨 끝에 include /usr/local/etc/nginx/conf.d/e55~~ /user.conf* 부분이 의미하듯이

e55 ~~ (가상호스트 만들때마다 이 값은 각각 고유하게 생성됩니다. 가상호스트 만들때마다 다른 이름으로 생성이 된다는 말입니다.)

아래에다가 user.conf.xe_rewrite 이름으로 파일을 만들어 넣었습니다.


이렇게 해당 폴더밑에 만든 user.conf 로 시작하는 파일들은 절대 삭제되지 않습니다. 그렇게 이용하라고 만든 것입니다.


그리고 user.conf.xe_write 안에다가 다음과 같이 합니다.

한줄만 넣습니다.


include xe_rewrite.conf;


그리고 저장합니다.



여기서 잠깐!!!

/usr/local/etc/nginx/ 폴더는 /etc/nginx/ 와 같은 위치입니다. 

따라서 /etc/nginx/conf.d 로 가시면 e55~ 폴더가 있습니다.



콘솔에서 

nginx -s reload


이제 http://pc1.one2.kr/ 해봅니다. 각 메뉴들이 짧은 주소로 잘 열릴 것입니다.






댓글을 달아 주세요