꽃삽질 : Nextcloud, 다른 서버로 이전(移轉).

이 글의 내용은 WordPress 다른 서버로 이전과 거의 동일하다.
사용자명과 DB명을 찾는 법은 위 글에 나와있다.


먼저 현재 환경(구 시스템)에서 필요한 내용을 따로 저장해야한다.

데이터 추출(DB Export)

mysqldump -u사용자명 -p비밀번호 DB명 --events --triggers --routines > 적당한 이름.sql

여기에 쓰이는 사용자명, 비밀번호, DB는 mysql 용 사용자/비밀번호/DB 이다. Nextcloud 관리자가 아니므로 헷갈리면 안된다.
비밀번호는 -p 뒤에 붙여넣지 말고 그냥 빈칸으로 남겨둔 뒤, 비밀번호를 묻는 프롬프트에 넣어도 된다.
또는, root(또는 sudo)를 이용해서 할 수도 있다.

# mysql root 사용
$ mysqldump -uroot -p DB명 --events --triggers --routines > 적당한 이름.sql
# sudo mysql 사용
$ sudo mysqldump DB명 --events --triggers --routines > 적당한 이름.sql

/var/www/nextcloud 파일 복사

# 원본 파일 압축
sudo tar czf nextcloud-200115.tar.gz /var/www/nextcloud

이 두 파일만 있다면, 어디로든 손쉽게 이전이 가능하다.

여기까지가 구 시스템에서 할 일이고, 다음부터는 신 환경에서 작업해줘야 한다.


Nextcloud 파일 원상 복구

위에서 만든 nextcloud-200115.tar.gz 을 압축을 풀고, 구 시스템과 동일한 위치(/var/www/nextcloud 등)에 복사해넣고, 소유권/허가권도 동일하게 설정한다.
Ubuntu 의 경우 www-data 로 설정돼 있다.
(tar 명령을 적절하게 쓰면 권한까지 다 잘 알아서 동일하게 복사가 되는데.. 그 방법을 아직 잘 모르기도 하거니와, 새 시스템에선 uid/gid 가 다를 가능성이 높으므로, 아무튼 동일하게 설정해줘야 한다는게 중요하다.)

Nextcloud DB 생성

위에서 Nextcloud DB 를 sql 구문으로 저장해놓았으므로, 이걸 다시 DB 로 되돌려야 한다. 그러기 위해선 먼저 DB(Table) 뼈대가 필요하다.

$ sudo mysql
...
MariaDB [(none)]> create user '사용자명'@'localhost' identified by '비밀번호';
MariaDB [(none)]> create database if not exists <DB 명>;
MariaDB [(none)]> grant all privileges on <DB 명>.* to '사용자명'@'localhost' identified by '비밀번호';
MariaDB [(none)]> FLUSH PRIVILEGES;

여기서, 사용자명/비밀번호/DB 명 은, 모두 구 시스템에서 사용하던 그대로 입력해야 한다. 새로 바꾸고 싶다면 나중에 이전이 완료된 후에 바꿔야 한다. (물론, config/config.php 파일을 수정해주면 되기는 하지만, 오류를 최소화하기 위해 일단은 동일하게 한다.)

데이터(Nextcloud DB) 복원(Import)

$ mysql -u사용자명 -p비밀번호 DB명 < xxx.sql

xxx.sql 은, 구 시스템에서 만들었던 sql 파일이고, 마찬가지로, 여기에 사용한 사용자명/비밀번호/DB 명도 바로 전 단계에 사용한 것들과 같다.

이전 끝.
Nextcloud 로 접속하여 문제가 있는지 확인한다. 혹시 IP 가 달라졌다면, config.php 에서 해당 부분을 수정해준다.

Password 재설정

모두 그렇지는 않은 듯 한데, 유독 관리자 계정의 PW 는 이전 것을 그대로 넣었더니 잘못되었다고 나온다. 일반 사용자는 되는 듯 한데..

이럴 경우, Nextcloud 가 설치되어 있는 서버의 디렉토리로 이동하여 다음 명령을 내림으로써 Password 를 재설정할 수 있다.

sudo -u www-data ./occ user:resetpassword <사용자명>

sudo -u www-data 는 occ 파일의 소유권자로 실행하라는 의미다. 그냥 sudo 로 해도 문제는 없을 듯 하나..

Author: 아무도안

안녕하세요. 글 남겨주셔서 고맙습니다.