apache 연동
직전 포스팅에서 webrick 웹서버를 통하여 redmine이 잘 동작하는지 테스트를 해 보았습니다.
물론 테스트 시 에는 전혀 문제가 없지만 아무래도 개발용 웹 서버다 보니 실 서비스에 적용하기에는 무리가 있습니다.
그런 이유로 실서비스에 적용하기 위해 보통 apache, nginx와 같은 웹서버와 연동을 하여 사용하는 방법이 일반적 입니다.
본 포스팅 에서는 apache 와 연동하는 방법을 알아보도록 하겠습니다.
redmine을 apache 와 연동 하기 위해서는 passenger 라는 apache 모듈을 사용해야 합니다.
apache + passenger 에 대한 자세한 내용은 아래 링크를 참고하시길 바랍니다.

passenger를 설치하기 위해 아래 명령을 실행합니다.(root 권한으로 실행)
gem을 이용하여 passenger 설치
$ gem install passenger Fetching passenger-6.0.4.gem Building native extensions. This could take a while... Successfully installed passenger-6.0.4 Parsing documentation for passenger-6.0.4 Installing ri documentation for passenger-6.0.4 Done installing documentation for passenger after 96 seconds 1 gem installed
apache passenger 모듈 설치
$ passenger-install-apache2-module
Welcome to the Phusion Passenger Apache 2 module installer, v6.0.4.
This installer will guide you through the entire installation process. It
shouldn't take more than 3 minutes in total.
Here's what you can expect from the installation process:
1. The Apache 2 module will be installed for you.
2. You'll learn how to configure Apache.
3. You'll learn how to deploy a Ruby on Rails application.
Don't worry if anything goes wrong. This installer will advise you on how to
solve any problems.
Press Enter to continue, or Ctrl-C to abort.
--------------------------------------------
Which languages are you interested in?
Use <space> to select.
If the menu doesn't display correctly, press '!'
‣ ⬢ Ruby
⬡ Python
⬡ Node.js
⬡ Meteor
--------------------------------------------
Checking for required software...
* Checking for C compiler...
Found: yes
Location: /usr/bin/cc
* Checking for C++ compiler...
Found: yes
Location: /usr/bin/c++
* Checking for Curl development headers with SSL support...
Found: yes
curl-config location: /usr/bin/curl-config
Header location: /usr/include/curl/curl.h
Version: libcurl 7.29.0
Usable: yes
Supports SSL: yes
* Checking for Zlib development headers...
Found: yes
Location: /usr/include/zlib.h
* Checking for Apache 2...
Found: yes
Location of httpd: /usr/sbin/httpd
Apache version: 2.4.6
* Checking for Rake (associated with /usr/local/rvm/gems/ruby-2.6.3/wrappers/ruby)...
Found: yes
Location: /usr/local/rvm/gems/ruby-2.6.3/wrappers/rake
* Checking for OpenSSL support for Ruby...
Found: yes
* Checking for RubyGems...
Found: yes
* Checking for Ruby development headers...
Found: yes
Location: /usr/local/rvm/rubies/ruby-2.6.3/include/ruby-2.6.0/ruby.h
* Checking for rack...
Found: yes
* Checking for OpenSSL development headers...
Found: yes
Location: /usr/include/openssl/ssl.h
* Checking for Apache 2 development headers...
Found: yes
Location of apxs2: /usr/bin/apxs
* Checking for Apache Portable Runtime (APR) development headers...
Found: yes
Location: /usr/bin/apr-1-config
Version: 1.4.8
* Checking for Apache Portable Runtime Utility (APU) development headers...
Found: yes
Location: /usr/bin/apu-1-config
Version: 1.5.2
--------------------------------------------
Checking whether there are multiple Apache installations...
Only a single installation detected. This is good.
....... 중략 ......
Almost there!
Please edit your Apache configuration file, and add these lines:
LoadModule passenger_module /usr/local/rvm/gems/ruby-2.6.3/gems/passenger-6.0.4/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /usr/local/rvm/gems/ruby-2.6.3/gems/passenger-6.0.4
PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.6.3/wrappers/ruby
</IfModule>
After you restart Apache, you are ready to deploy any number of web
applications on Apache, with a minimum amount of configuration!
Press ENTER when you are done editing.
위와 같이 설치가 성공하고 나면 apache 설정 파일에 추가해야 할 설정이 안내되고 이 부분을 설정파일에 추가합니다.
LoadModule passenger_module /usr/local/rvm/gems/ruby-2.6.3/gems/passenger-6.0.4/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /usr/local/rvm/gems/ruby-2.6.3/gems/passenger-6.0.4 PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.6.3/wrappers/ruby </IfModule>
위 내용을 /etc/httpd/conf.d/passenger.conf 파일을 만들어 추가해 줍니다.
위 과정에서 에러가 발생한다면 보통 필요한 소프트웨어들이 설치가 덜 된경우가 많습니다. 친절하게도 설치 초반에 필요한 소프트웨어들을 체크해주고 어떤 소프트웨어가 누락되었는지 확인이 가능합니다. 기본적으로 아래 소프트웨어들은 설치를 해 주고 실행합니다.
gcc, gcc-c++, libcurl-devel, httpd-devel
apache 가상호스트 생성
/etc/httpd/conf.d/redmine.conf 파일을 만들고 아래 내용을 추가해 줍니다.
<VirtualHost *:80>
ServerName redmine.domain.com
DocumentRoot /home/redmine/redmine/public
<Directory "/home/redmine/*/public">
Order allow,deny
Allow from all
Require all granted
</Directory>
ErrorLog "logs/redmine.domain.com-error_log"
CustomLog "logs/redmine.domain.com-access_log" combined
</VirtualHost>
DocumentRoot가 설치 디랙토리인 /home/redmine/redmine 이 아니라 /home/redmine/redmine/public 이란 점에 주의 합니다.
apache 재시작
$ systemctl restart httpd
테스트
브라우저를 열고 http://redmine.domain.com 으로 접속해 봅니다.

이상 프로젝트 관리툴인 redmine 설치에 대해 알아 보았습니다.