# Kubuntu VM에서 myBB 포럼을 Discourse로 이전하기

**URL:** https://meta.discourse.org/t/migrating-a-mybb-forum-to-discourse-using-kubuntu-in-a-vm/266051
**Category:** Migration
**Tags:** mybb
**Created:** [4월 7, 2023, 9:10오후 UTC](https://meta.discourse.org/t/migrating-a-mybb-forum-to-discourse-using-kubuntu-in-a-vm/266051 "2023-04-07T21:10:22Z")
**Posts on this page:** 1
**Showing post:** 7

<div class="post-metadata">

### Author: ![silverdr](https://avatars.discourse-cdn.com/v4/letter/s/e19adc/32.png) [@silverdr](https://meta.discourse.org/u/silverdr)
#### Post date: [4월 10, 2023, 12:35오후 UTC](https://meta.discourse.org/t/migrating-a-mybb-forum-to-discourse-using-kubuntu-in-a-vm/266051/7 "2023-04-10T12:35:20Z")

</div>

이 긴 여정(이 포스트보다 훨씬 긴)을 요약하면 다음과 같습니다:

참고: 이 과정은 가상 머신에서 실행되는 Kubuntu 배포판을 사용했으므로, 다른 OS나 배포판에서는 결과가 다를 수 있음을 유념해 주세요.

### 0. Discourse 개발 환경 설치

[이 포스트](https://meta.discourse.org/t/install-discourse-on-ubuntu-or-debian-for-development/14727)를 참고하고, 해당 포스트에 링크된 [이 스크립트](https://github.com/discourse/install-rails/blob/main/linux)를 다음을 사용하여 실행합니다.

````plaintext
`bash <(wget -qO- https://raw.githubusercontent.com/discourse/install-rails/master/linux)` 
```\n그곳에 설명된 대로 소스 코드를 클론합니다.

````

git clone [GitHub - discourse/discourse: A platform for community discussion. Free, open, simple. · GitHub](https://github.com/discourse/discourse.git) ~/discourse

```plaintext
### 1. MySQL 데이터베이스 준비
스레드 상단에 설명된 대로 원래 `mybb` 데이터베이스의 덤프를 가져옵니다:

```

$ mysqldump -u USER\_NAME -p DATABASE\_NAME \> mybb\_dump.sql

```plaintext
그리고 이를 새로 설정된 개발 환경으로 복사/이동합니다.

MySQL 서버를 설치합니다.

```

$ sudo apt-get install mysql-server

```plaintext

최근 버전에서 MySQL 인증 방식이 변경되었습니다. 이제 MySQL에서 root 권한을 사용하려면 호스트에서도 root 권한이 있어야 하므로

```

$ sudo mysql

```plaintext
을 사용해야 하며, 이전처럼

```

$mysql -u root

```plaintext
을 사용할 수 없습니다.

물론 먼저 "sudoer"(관리자) 권한이 있어야 합니다.

```

$ sudo mysql  
mysql\> CREATE DATABASE mybb;  
mysql\> SHOW DATABASES;  
mysql\> CREATE USER ‘nonrootuser’@‘localhost’ IDENTIFIED BY ‘password’;  
mysql\> GRANT ALL PRIVILEGES ON mybb.\* TO ‘nonrootuser’@‘localhost’;  
mysql\> quit  
$ mysql -unonrootuser -ppassword mybb \< mybb\_dump.sql  
\<여기서는 커맨드 라인에 비밀번호를 제공하지 않는 것이 현명하지 않다는 경고가 나옵니다\>

$ sudo mysql  
mysql\> USE mybb;  
mysql\> SHOW TABLES;  
\<여기서 모든 테이블이 존재하는지 확인하세요 - 원래 포스트 참조\>

mysql\> quit

```plaintext
### 2. Ruby gems 설치
현재 소스에서 `Gemfile`을 확인해 보면 

```

$ echo “gem ‘mysql2’, require: false” \>\> Gemfile

```plaintext
이 실제로는 필요하지 않음을 알 수 있습니다. 환경 변수 `IMPORT`를 `1`로 설정하는 것만으로도 충분합니다. 
필요한 것은 MySQL 클라이언트용 개발 파일이며, 아래 첫 번째 줄이 바로 그 목적입니다.

```

$ sudo apt-get install libmysqlclient-dev  
$ cd ~/discourse  
$ IMPORT=1 bundle install

```plaintext
### 2. Discourse 준비 (PostgreSQL 데이터베이스)

```

$ bundle exec rails db:drop  
$ bundle exec rails db:create  
$ bundle exec rails db:migrate  
$ export DB\_PW=“password”  
$ export DB\_USER=“nonrootuser”

```plaintext
### 3. 실제 가져오기 실행
다음 줄은 `mybb.rb` 가져오기 스크립트에서 오랫동안 비추천되어 현재는 이미 제거된 메서드 호출을 수정합니다. 작성 시점에는 여전히 존재하며, 이미 수정된 경우에도 아무것도 변경되지 않습니다.

```

$ sed -i.original ‘s/File.exists?/File.exist?/’ script/import\_scripts/mybb.rb

```plaintext
이제 Redis가 여전히 실행 중인지 확인합니다. Rails 설치 스크립트는 Redis를 시작하지만 영구 서비스로 활성화하지 않으므로 재부팅, 충돌 등에서는 유지되지 않습니다.

```

$ ps -aux |grep redis  
silverdr 2808 0.3 0.3 89972 14512 ? Ssl 05:25 2:04 redis-server \*:6379  
[…]

```plaintext
위와 같은 줄이 보이지 않는다면 다음을 실행하세요.

```

$ redis-server --daemonize yes

```plaintext
이는 처음 설치할 때 위의 Rails 설치 스크립트가 사용했던 것과 정확히 동일한 명령입니다.

마지막으로 :pray: 기도를 올리고

```

$ IMPORT=1 bundle exec ruby script/import\_scripts/mybb.rb

```plaintext
이 시점에 스크립트가 YAE(또 다른 에러)로 중단되지 않았다면 그 병을 따고 마실 때입니다 :champagne:

#### 남은 몇 가지 사항
* OK - 가장 눈에 띄는 누락 부분은 사용자 비밀번호입니다. 두 애플리케이션 모두 해시와 솔트를 저장하지만, 해시 길이를 보면 "mybb"는 더 오래된 해싱 알고리즘을 사용하는 것으로 보입니다. 따라서 이는 이해할 수 있는 부분이며 치명적인 장애 요인은 아닙니다. 누구나 처음에는 비밀번호를 재설정할 수 있어야 합니다.
* 일부 bbcode가 변환되지 않습니다. 예를 들어 코드 블록에는 모노스페이스 Courier 폰트 등을 설정하는 태그가 있어 문제가 발생합니다. 이 부분을 더 자동화하려는 기력이 남아있지 않습니다. 만약 해결 방법을 찾으신다면 저/여기에 알려주세요! :man_bowing:
```

---

_[View the full topic](https://meta.discourse.org/t/migrating-a-mybb-forum-to-discourse-using-kubuntu-in-a-vm/266051)._
