본문 바로가기

취미, 관심/NAS, Server

[Synology] 시놀로지 NAS에서 wordpress 수동설치하기

어짜피 24시간 돌아가는 나스, 언제 중단될 지 모르는 티스토리의 데이터를 백업할 겸(?) 워드프레스를 돌려볼까 했습니다.

시놀로지가 아무래도 일반적인 리눅스와는 환경이 조금 다르다보니, 손이 좀 가는 편입니다.

docker로 올려서 사용하면 편리하겠지만... 일단은 연습삼아 직접 설치해봤어요.

이 글은 언제 제가 다시 설치하면서 헤멜지 몰라, 나중에 참고를 위해 작성해 봅니다.

티스토리 데이터 이전은 아직 손도 안대고 있네요...;;

저도 초보자인 터라, 자세한 내용에 대해서는 답을 하지 못하거나 빼먹는 경우가 있을 수 있습니다;;

환경

DS1821+ DSM 7.0.1

 

기본 설정

편안한(?) 관리를 위해 web_vhost 라는 공유 폴더를 생성하고, 그 아래에 wordpress 폴더를 생성합니다.

wordpress관련 파일들, 설정들이 웹 서비스를 위한 파일들과 섞이지 않기 위해 www 폴더를 생성하고, 이 폴더를 가상호스트의 문서 루트로 설정할 예정입니다.

즉, 제 워드프레스의 루트는 /volume1/web_vhost/wordpress/www 가 됩니다.

저는 구매한 도메인을 이용하지만, 시놀로지에서 기본 제공하는 DDNS 역시 서브도메인을 지원하므로, 비슷하게 설정 가능합니다.

* 위의 폴더 설정은 제 개인적인 편의에 의한 내용으로, 폴더는 원하시는대로 생성하셔도 됩니다. 그런경우 아래에서 설명할 루트 경로 등은 모두 설정한 폴더로 변경하시면 됩니다.

 

가상 호스트 설정

Host Name : 접속할 주소(이 글에서는 blog.siane.kr를 사용합니다.)

문서 루트 : 워드프레스가 위치한 폴더 - 제 경우, 관리의 편의를 위해 vhost 라는 이름의 공유폴더를 만들고, 그 아래에 가상호스트 폴더들을 만든 후, 그 아래에 www 폴더를 만들어 사용합니다. www 위의 폴더(여기서는 wordpress 폴더)는 그 가상호스트에 관련한 설정파일 또는 1차 백업파일을 위치시킵니다.

백엔드 : Nginx

PHP : PHP 7.4 (아쉽게도 시놀로지가 아직까진 8.0을 지원하지 않네요)

필요한 기능만 켜는것이 좋겠지만. 일단 PHP의 확장 기능은 모두 켭니다(..)

 

구입한 도메인의 SSL 인증서 적용은 이전 글,
2021.10.01 - [Synology] 시놀로지에서 클라우드플레어 DDNS 설정하고 와일드카드 인증서 받기 #2

를 참고하시거나, 시놀로지 DDNS를 이용한다면 제어판의 보안 - 인증서 탭에 이미 인증서가 있습니다.

 

DB 계정 생성

- 보안을 위해 root가 아닌 별도의 계정을 사용합니다.

- 편의를 위해 계정을 wordpress 로 설정하고 진행합니다.

- 시놀로지에서 기본으로 제공하는 mariaDB 패키지를 사용합니다.

- SSH접속해서 해도 되지만, 저는 그런거 모르므로, phpMyAdmin을 설치해 사용합니다.

2022.01.11 - [Synology] phpMyAdmin 수동설치 및 설정

워드프레스 설치파일 다운로드

워드프레스 설치파일은 아래 링크를 통해 다운로드할 수 있습니다.

https://ko.wordpress.org/download/#download-install

다운로드 받은 파일을 적당한 위치에 압축 해제해줍니다.

저는 워드프레스만을 위한 가상호스팅을 만들었으므로, 가상호스팅 루트폴더를 사용할 예정입니다.

/web_vhost/wordpress/www 아래에 압축해제해 줍니다. SMB나 webDAV 등을 이용하는것보다, DSM의 파일스테이션에서 압축해제하는것이 효율적입니다.

 

압축을 해제하면 wordpress 폴더가 생기는데, 저는 그 안의 내용물을 모두 루트로 이동시켰습니다.

이런 모습이 됩니다.

설치 권한 설정

SSH로 접속하여 폴더 권한을 설정해줍니다. 시놀로지는 web 폴더에 대해 http 계정에 읽기 권한이 있어야만 사이트를 볼 수 있습니다.

$ chown -R http.http [워드프레스 설치 경로]
$ cd [워드프레스 설치 경로]
$ find ./ -type f -exec chmod 644 {} \;
$ find ./ -type d -exec chmod 755 {} \;

* 설치 후 업데이트, 플러그인 설치 등이 필요할 수 있으므로, 첫번째 줄의 소유권 설정만 해준 후, www 폴더 아래에 모든 권한(777)을 설정해주고, 설정이 완료된 후 이 작업을 진행하셔도 됩니다.

 

설치 경로는 절대경로로 입력합니다. 설정한 문서의 루트 경로를 입력해주면 됩니다.

(/volume1/web_vhost/wordpress/www)

 

chown -R http.http [워드프레스 설치 경로] : 해당 폴더의 소유권을 http로 변경합니다.

find ./ -type f -exec chmod 644 {} \; : 경로 아래의 모든 파일에 대해 644 권한을 줍니다.
find ./ -type d -exec chmod 755 {} \; : 경로 아래의 모든 디렉토리에 대해 755 권한을 줍니다.

 

권한은 아래와 같습니다.

644 : 소유자 읽기/쓰기, 그룹 읽기, 공개 읽기

755 : 소유자 읽기/쓰기/실행, 그룹 읽기/실행, 공개 읽기/실행

 

다른 글에서 chmod -R 755 [워드프레스 설치 경로] 로 하라는 글이 있는데, 이 경우 플러그인이 정상동작하지 않는 문제가 생깁니다.

 

* 이렇게 권한을 주는 경우, 워드프레스 자동 업데이트가 정상동작하지 않습니다. 워드프레스 설치경로의 권한을 잠시 풀고 업데이트 후 다시 적용했으나, 번거롭네요....

* 추가로, wp-content 폴더 내 plugins 폴더를 777 권한(모든 권한)으로 설정을 하라는 내용이 있습니다. 777이 아니라 757로 줘도 될것같긴 한데.. 일단 업데이트와 플러그인 설치, 테마 설치 등의 용이성을 위한 방법같습니다.

위 작업을 마친 후 cd wp-content 를 입력해 wp-content 폴더로 들어간 후, 아래 명령을 입력하면 됩니다.

$ find ./ -type d -exec chmod 777 {} \;

* 기본으로 설치되는 아키스멧 스팸 방지의 업데이트가 오류가 난다면, 해당 폴더내 파일에 대해서도 동일 권한(쓰기권한)을 주시면 됩니다.

워드프레스 설치

이제 길고 긴 준비가 끝났습니다.

크롬 등의 브라우저에서 워드프레스의 주소로 들어가 봅니다.

 

일단 시작버튼을 눌러주구요.

 

시키는대로 입력합니다. 데이터베이스는 위에서 만든 데이터베이스명을, 사용자명과 비밀번호는 데이터베이스의 사용자명/비밀번호를, 호스트는 그냥 두시고, 테이블 접두 부분의 경우, 동일한 DB에서 여러개의 사이트를 운영한다면, 알아보기 편하게 변경합니다. 이 글에서는 기본값으로 진행합니다.

 

특별한 문제가 없다면 아래와 같은 페이지가 뜹니다.

설치 실행 버튼을 눌러줍니다.

 

내용을 채워줍니다. '검색 엔진 가시성' 부분을 체크하면 아마 수집 봇의 접근을 거부할거에요. 만드는 도중에 노출되는것을 피하고 싶다면 체크하시는게 좋을 것 같습니다. 

 

모든 값을 입력했다면, 하단의 워드프레스 설치 버튼을 눌러줍니다.

 

정상적으로 진행되면 아래와 같은 페이지가 뜹니다.

 

 

로그인 버튼을 눌러 로그인 페이지로 이동 하고

방금 전 생성한 사용자명과 비밀번호를 넣으면

 

완료됩니다.

저는 5.8.1 버전을 설치했던 터라 업데이트 정보가 가장 먼저 들어오네요 ㅎㅎ

 

일단 여기까지가 설정의 완료 부분입니다.

 

워드프레스 업데이트, 플러그인 설치시 FTP 계정 묻지 않도록 설정하기

워드프레스는 뭔가를 설치할 때 아래처럼 FTP 접속 계정을 계속해서 물어봅니다. 보안에는 좋지만 굉장히 번거로운 일이라서 보통 wp-config 파일을 수정하여 묻지 않고 바로 실행하도록 해 줍니다.

 

FTP 연결이 가능한 에디트플러스 같은 편집기로 하셔도 되고, notepad++같은걸로 수정하셔도 되고, ssh로 연결해 수정하셔도 됩니다. 저는 귀찮으니 file station 에서 직접 수정합니다. 시놀로지의 패키지 센터에서 텍스트 편집기가 설치되어있어야만 합니다.

 

간단한 수정에는 편리하게 사용 가능하니, 설치해두시면 좋아요.

파일을 열고 가장 하단에 아래의 내용을 넣어줍니다.

/* 워드프레스 FTP 인증 생략 */
define('FS_METHOD', 'direct');

이제 FTP 접속 관련 내용을 물어보지 않습니다.

단..

 

업데이트 시 이런 문구를 보게 됩니다. 위 경로 wp-admin/includes/update-core.php 부분의 권한이 없기 때문입니다.

업데이트의 경우 많은 부분을 수정하게 되므로, 전체 권한을 잠시 757 정도로 수정해두셨다가, 업데이트가 끝난 후 권한을 돌려놓는 방법을 사용합니다.

 

업데이트가 완료되면 위에서 설명한 권한 설정 부분을 변경하도록 합니다.(권한 변경은 꼭 SSH가 아니라도 가능합니다. FTP 프로그램인 파일질라에서도 가능합니다.)

 

모든 폴더 - 755

모든 파일 - 644

wp-content 하위 폴더 - 757(플러그인과 테마 등의 설치 편의를 위함입니다.)

 

이제 자유롭게 워드프레스를 사용하시면 됩니다 :)