Redmine 설치 가이드 — Ubuntu 18.04
중요: 예제 도메인(example.com)은 반드시 실제 도메인으로 교체하세요. 루트 계정 대신 sudo 권한이 있는 비루트 계정으로 작업하세요.
소개
Redmine은 Ruby on Rails 기반의 오픈소스 프로젝트 관리 웹 애플리케이션입니다. 다중 프로젝트 지원, 역할 기반 접근제어(ACL), 시간 추적, 위키, 문서관리, Git/SVN/CVS 등 버전관리 연동을 제공하여 자체 호스팅형 PM 도구로 널리 사용됩니다.
간단 정의: Redmine — 다중 프로젝트 · 이슈 추적 · 위키 · 문서관리 기능을 갖춘 오픈소스 웹 앱.
핵심 기능 요약
- 다국어 지원
- 여러 데이터베이스 백엔드와 간단한 시간 추적
- 뉴스, 문서, 파일 관리 통합
- 웹 피드와 이메일 알림 지원
사전요구조건
- Ubuntu 18.04 서버(최소 권장 메모리 1GB 이상, 실제 운영은 2GB+ 권장)
- 비루트 사용자( sudo 권한 )
- 도메인 이름(SSL 적용 시 필수)
1. Apache 및 MariaDB 설치
Redmine은 웹 서버에서 동작하며 MariaDB에 데이터를 저장합니다. 다음 명령으로 Apache, MariaDB, Passenger 모듈을 설치합니다:
sudo apt-get install apache2 mariadb-server libapache2-mod-passenger -y설치 후 Apache와 MariaDB를 시작하고 부팅 시 자동 시작하도록 활성화합니다:
sudo systemctl start apache2
sudo systemctl start mariadb
sudo systemctl enable apache2
sudo systemctl enable mariadb2. MariaDB 보안 구성
기본 설치된 MariaDB는 보안 설정이 비활성화되어 있습니다. mysql_secure_installation 스크립트로 기본 보안 설정을 수행하세요:
sudo mysql_secure_installation스크립트 예시 응답(권장 설정):
Enter current password for root (enter for none):
Set root password? [Y/n]: N
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y참고: 위 예시는 배포 환경에 따른 권장 응답을 보여줍니다. 실제로는 루트 패스워드 정책과 원격 접속 허용 여부를 조직 정책에 맞춰 결정하세요.
3. Redmine 설치 (패키지 방식)
Ubuntu 18.04 기본 저장소에 redmine 패키지가 포함되어 있으므로 다음으로 설치합니다:
sudo apt-get install redmine redmine-mysql -y설치 과정에서 Redmine의 데이터베이스 설정을 묻는 대화창이 나타납니다. 다음 단계에 따라 진행하세요.

설치 대화창에서 ‘Yes’ 버튼을 선택합니다. 이어서 데이터베이스 종류를 묻는 화면이 나타납니다:

여기서 데이터베이스로 “mysql”을 선택하고 OK를 클릭합니다. 다음으로 Redmine이 사용할 MySQL 비밀번호를 입력합니다:

설치가 완료되면 bundler 설치와 심볼릭 링크, 권한 설정을 진행해야 합니다.
sudo gem install bundler
sudo ln -s /usr/share/redmine/public /var/www/html/redmine
sudo touch /usr/share/redmine/Gemfile.lock
sudo chown www-data:www-data /usr/share/redmine/Gemfile.lock
sudo chown -R www-data:www-data /var/www/html/redmine설명: Bundler는 Ruby Gem 의존성 관리를 위해 필요합니다. Gemfile.lock 파일은 Passenger가 루트 권한으로 Gem 충돌 없이 접근하도록 빈 파일을 생성해 둡니다.
4. Apache(Passenger) 구성
Passenger 설정 파일을 편집합니다:
sudo nano /etc/apache2/mods-available/passenger.conf파일을 다음과 같이 구성하세요:
PassengerDefaultUser www-data
PassengerRoot /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini
PassengerDefaultRuby /usr/bin/ruby
다음으로 Redmine 전용 Apache 가상호스트 파일을 만듭니다:
sudo nano /etc/apache2/sites-available/redmine.conf예제 가상호스트 구성:
ServerAdmin [email protected]
DocumentRoot /var/www/html/redmine
ServerName example.com
ServerAlias www.example.com
RailsBaseURI /redmine
PassengerResolveSymlinksInDocumentRoot on
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ServerName 및 ServerAlias는 실제 도메인으로 변경하세요.
사이트 활성화 및 Apache 모듈 활성화:
sudo a2ensite redmine
sudo a2enmod rewrite
sudo systemctl restart apache2Apache 상태 확인:
sudo systemctl status apache2정상 동작 예시 출력(일부 생략):
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2019-01-16 17:43:29 CET; 8s ago
...
Jan 16 17:43:29 server1 systemd[1]: Started The Apache HTTP Server.5. 웹 인터페이스 접근 및 초기 설정
웹 브라우저에서 설치한 도메인 또는 서버 IP에 접속하세요. 예: http://example.com

로그인 화면으로 이동하여 관리자 계정으로 로그인합니다(“admin” / “admin”):

초기 로그인 후 즉시 관리자 암호를 변경하세요:

변경 완료 시 대시보드가 표시됩니다:

축하합니다 — Redmine이 설치되어 운영 준비가 된 상태입니다.
운영 전 점검 체크리스트
- 도메인(ServerName) 및 DNS가 올바르게 설정되었는가?
- Apache가 www-data 권한으로 Redmine 파일을 소유하는가?
- 데이터베이스 접속 정보(호스트/계정/비밀번호) 확인 완료
- 관리자 암호를 즉시 강력한 값으로 변경했는가?
- 방화벽에서 HTTP/HTTPS 포트(80/443)가 허용되었는가?
- 로그(/var/log/apache2/*)에서 에러 없음 확인
배포용 권장 보안 설정
- HTTPS 적용: Let’s Encrypt/Certbot으로 SSL/TLS 적용 권장
- 데이터베이스 계정 권한 최소화: Redmine용 DB 계정에 필요한 최소 권한만 부여
- 정기 백업: DB 덤프와 /usr/share/redmine/uploads 디렉터리 백업
- 파일/디렉터리 권한: 웹서버 프로세스만 쓰기 권한을 가지도록 제한
- 운영 사용자 분리: 배포 자동화 도구(Ansible 등) 사용 시 비밀 관리
장애/문제 해결(자주 발생하는 증상과 검사 포인트)
- Apache에서 Passenger 관련 에러 발생
- /var/log/apache2/error.log 확인
- PassengerDefaultRuby 경로가 시스템의 ruby 위치와 일치하는지 확인
- Redmine 페이지가 500 에러
- 권한 문제인지 확인: /var/www/html/redmine 및 /usr/share/redmine 권한 점검
- Gem 의존성 문제: sudo gem install bundler 및 bundle install 필요 여부 검토
- 데이터베이스 연결 실패
- credentials: /etc/redmine/default/database.yml 또는 패키지 설치 중 입력한 비밀번호 확인
- MySQL/MariaDB 서비스 상태 확인: sudo systemctl status mariadb
- 이메일 알림 실패
- Administration → Settings → Email configuration 확인
- SMTP 인증 정보와 포트(587 등) 확인
역할별 운영 체크리스트
- 시스템 관리자
- 패키지/OS 보안 업데이트 적용
- SSL 인증서 갱신 자동화
- 정기 백업 및 복구 시나리오 검증
- 애플리케이션 관리자
- Redmine 플러그인 관리 및 호환성 점검
- 정기적으로 로그 확인 및 성능 모니터링
- 프로젝트 관리자
- 프로젝트/사용자/역할 설정 관리
- 이슈 트래킹 정책 및 워크플로우 정의
마이그레이션 및 업그레이드 팁
- 패키지 업그레이드 전에 데이터베이스와 파일 업로드 전체 백업
- 플러그인 호환성 확인: Ruby 및 Redmine 버전에 따라 호환성 문제 발생 가능
- 테스트 환경에서 업그레이드 절차를 먼저 검증
소규모 운영용 빠른 명령 모음(cheat sheet)
- Apache 재시작: sudo systemctl restart apache2
- MariaDB 상태: sudo systemctl status mariadb
- Redmine 심볼릭 링크 확인: ls -l /var/www/html/redmine
- 로그 확인: tail -n 200 /var/log/apache2/error.log
수용 기준(운영 전)
- 웹 UI 접속 및 로그인 성공
- 관리자 암호 변경 완료
- 최소 하나의 프로젝트 생성 및 이슈 등록/첨부 파일 업로드 동작 확인
- 이메일 알림(테스트) 전송 확인(운영 환경에서)
요약
이 가이드는 Ubuntu 18.04에서 Apache + MariaDB 기반으로 Redmine을 설치하고 운영하기 위한 단계별 절차를 제공합니다. 패키지 설치 방식으로 빠르게 배포할 수 있으며, 운영 전 보안 및 백업 점검을 반드시 수행해야 합니다. 추가로 문제 해결 체크리스트와 역할별 운영 지침을 통해 운영 안정성을 높일 수 있습니다.
요약 정리: Redmine 설치 → MariaDB 보안 → Bundler 및 링크 설정 → Apache(Passenger) 구성 → 가상호스트 활성화 → 관리자 초기 설정 → 보안/백업/모니터링 준비