๋ฐ˜์‘ํ˜•

์†Œ๊ฐœ

CKEditor๋Š” ๊ธ€์„ ์ž‘์„ฑํ•  ๋•Œ ๊ธ€์ž์˜ ํฐํŠธ, ์ƒ‰์ƒ, ์Šคํƒ€์ผ, ์ •๋ ฌ, ๊ทธ๋ฆผ ์ฒจ๋ถ€, ์ฝ”๋“œ ์Šค๋‹ˆํ• ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์—๋””ํ„ฐ ํˆด์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋ ˆ๋“œ๋งˆ์ธ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋งˆํฌ๋‹ค์šด์„ ์ œ๊ณตํ•˜์ง€๋งŒ, ๋” ํ’๋ถ€ํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” CKEditor๋ฅผ ๋ณ„๋„๋กœ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

CKEditor ํŽธ์ง‘ ํ™”๋ฉด

์„ค์น˜ ๋”ฐ๋ผ ํ•˜๊ธฐ

1. ์ €์žฅ์†Œ์—์„œ ์ตœ์‹  ๋ฒ„์ „ ๋‹ค์šด๋กœ๋“œํ•˜๊ธฐ

git clone -b 1.2.3 https://github.com/a-ono/redmine_ckeditor

2. ํŒŒ์ผ ๋ณต์‚ฌํ•˜๊ธฐ

Redmine Plugin ๊ฒฝ๋กœ๋ฅผ ๋งคํ•‘ํ–ˆ๋‹ค๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

Plugin ๊ฒฝ๋กœ์— ํŒŒ์ผ ์—…๋กœ๋“œํ•˜๊ธฐ

๋งŒ์•ฝ, ๋งคํ•‘์„ ์•ˆ ํ–ˆ๋‹ค๋ฉด ์ง์ ‘ ๋‹ค์šด๋กœ๋“œํ•œ ํŒŒ์ผ์„ Redmine plugin ๊ฒฝ๋กœ๋กœ ๋ณต์‚ฌํ•ด์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐจ๋ผ๋ฆฌ ์…‹์—… ๊ณผ์ •์—์„œ ๋งคํ•‘์„ ํ•ด๋†“๊ณ  ์‹œ์ž‘ํ•˜๋Š” ๊ฒŒ ์ข‹์Šต๋‹ˆ๋‹ค. ๋งคํ•‘ ๊ด€๋ จํ•ด์„œ๋Š” ์•„๋ž˜ ๊ฒŒ์‹œ๋ฌผ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

[Container Manager] MariaDB์™€ ๋ ˆ๋“œ๋งˆ์ธ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•, ์‰ฝ๊ฒŒ ๋”ฐ๋ผํ•˜๊ธฐ

 

[Container Manager] MariaDB์™€ ๋ ˆ๋“œ๋งˆ์ธ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•, ์‰ฝ๊ฒŒ ๋”ฐ๋ผํ•˜๊ธฐ

์ด์ œ Docker ๋Œ€์‹  Container Manager ๐Ÿ‹์‹œ๋†€๋กœ์ง€ ํŒจํ‚ค์ง€ ์„ผํ„ฐ์—์„œ๋Š” ๋„์ปค(Docker)์™€ ๋ ˆ๋“œ๋งˆ์ธ(Redmine) ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ณตํ•˜๋Š”๋ฐ์š”. ์ด ํŒจํ‚ค์ง€ ์„ค์น˜๋ฅผ ํ†ตํ•ด ์‰ฝ๊ณ  ํŽธํ•˜๊ฒŒ ๋ ˆ๋“œ๋งˆ์ธ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ

luckygg.tistory.com

3. Redmine Plugin ๊ฒฝ๋กœ์— ํŒŒ์ผ ํ™•์ธ ํ›„ ์„ค์น˜ํ•˜๊ธฐ

์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฒฝ๋กœ์— ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค.

cd /home/redmine/redmine/plugins/

๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ํŒŒ์ผ ๋ชฉ๋ก์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

ls -l

์ •์ƒ์ ์œผ๋กœ ํŒŒ์ผ์„ ๋ณต์‚ฌํ–ˆ๋‹ค๋ฉด Redmine Plugin ๊ฒฝ๋กœ์— ์•„๋ž˜์™€ ๊ฐ™์ด redmine_ckeditor ํด๋”๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฒฝ๋กœ์— ๋ณต์‚ฌํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ ํ™•์ธํ•˜๊ธฐ

์„ค์น˜๋ฅผ ์œ„ํ•ด ๋‹ค์‹œ ๋ ˆ๋“œ๋งˆ์ธ ๋ฃจํŠธ ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

cd /home/redmine/redmine

์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

bundle install --without development test

bundle exec rails redmine:plugins:migrate RAILS_ENV=production

์„ค์น˜์— ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ๋‹ค๋ฉด ๋ ˆ๋“œ๋งˆ์ธ์„ ์žฌ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๋งŒ์•ฝ, ์œ„ ์„ค์น˜ ๊ณผ์ •์—์„œ ์—ฌ๋Ÿฌ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด, ์•„๋ž˜ '์˜ค๋ฅ˜์— ๋”ฐ๋ฅธ ์กฐ์น˜ ๋ฐฉ๋ฒ•'์„ ์ฐธ๊ณ ํ•˜์„ธ์š”. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ ์œ„์˜ ์„ค์น˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์žฌ์‹œ๋„ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. 

์ฐธ๊ณ ๋กœ, ์•„๋ž˜ ์กฐ์น˜ ์‚ฌํ•ญ์€ ์—ฌ๋Ÿฌ ์‹œ๋„ ๋์— ํ•ด๊ฒฐ๋œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋ถˆํ•„์š”ํ•œ ๋ช…๋ น์–ด๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ์ˆœ์„œ๊ฐ€ ํ‹€๋ฆด ์ˆ˜ ์žˆ์ง€๋งŒ, ์ œ ์ƒํ™ฉ์—์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

โ€ป ์˜ค๋ฅ˜์— ๋”ฐ๋ฅธ ์กฐ์น˜ ๋ฐฉ๋ฒ•

mysql2 ์˜ค๋ฅ˜

mysql2 ์—๋Ÿฌ

์œ„ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ, mysql2 ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ์•„๋ž˜์˜ ์ˆœ์„œ๋Œ€๋กœ ์ง„ํ–‰ํ•ด ๋ณด์„ธ์š”.

sudo apt-get install -y build-essential libmysqlclient-dev

๋งŒ์•ฝ, ์œ„ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ด๋„ ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.

sudo apt-get update

sudo apt-get install -y default-libmysqlclient-dev

์ดํ›„ ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.

gem install mysql2 -v '0.5.6'

๋งˆ์ง€๋ง‰์œผ๋กœ ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

bundle install

ruby 2.7.0 ์˜ค๋ฅ˜

ruby 2.7.0 ์˜ค๋ฅ˜

์œ„ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ, ruby 2.7.0 ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ์•„๋ž˜์˜ ์ˆœ์„œ๋Œ€๋กœ ์ง„ํ–‰ํ•ด ๋ณด์„ธ์š”.

bundle install --no-deployment

๋งŒ์•ฝ, sqlite3 ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.

sqlite3 ์˜ค๋ฅ˜

sudo apt-get update

sudo apt-get install -y sqlite3 libsqlite3-dev

๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

gem install sqlite3 -v '1.4.4'

๋งˆ์ง€๋ง‰์œผ๋กœ ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

bundle install

pg ์˜ค๋ฅ˜

pg ์˜ค๋ฅ˜

์œ„ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ, pg ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ์•„๋ž˜์˜ ์ˆœ์„œ๋Œ€๋กœ ์ง„ํ–‰ํ•ด ๋ณด์„ธ์š”.

sudo apt-get update

sudo apt-get install -y postgresql postgresql-contrib libpq-dev

๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

gem install pg -v '1.2.3'

๋งˆ์ง€๋ง‰์œผ๋กœ ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

bundle install

4. rich_files ์—ฐ๋™ํ•˜๊ธฐ

CKEditor์—์„œ ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•˜๋ฉด rich_files ํด๋”์— ์ด๋ฏธ์ง€๊ฐ€ ๋ณด๊ด€๋ฉ๋‹ˆ๋‹ค. ํ˜น์‹œ ์ด๋ฏธ ๋ณด์œ ํ•˜๊ณ  ์žˆ๋Š” rich_files๊ฐ€ ์žˆ๋‹ค๋ฉด, ์•„๋ž˜์˜ ๊ฒฝ๋กœ์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

/home/redmine/redmine/public/system/rich/rich_files/rich_files

๋˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๋ ˆ๋“œ๋งˆ์ธ ์ปจํ…Œ์ด๋„ˆ ์„ค์ •์—์„œ ํด๋”๋ฅผ ๋งคํ•‘ํ•˜์—ฌ file station์—์„œ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

rich_files ๊ฒฝ๋กœ ๋งคํ•‘ํ•˜๊ธฐ

5. CKEditor ํ™œ์„ฑํ™”ํ•˜๊ธฐ

์ด์ œ ๋ชจ๋“  ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์œผ๋‹ˆ, ๋ ˆ๋“œ๋งˆ์ธ์˜ ๋ณธ๋ฌธ ํ˜•์‹์„ CKEditor๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

๋ ˆ๋“œ๋งˆ์ธ ๋ณธ๋ฌธ ํ˜•์‹์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•

๋ฐ˜์‘ํ˜•