04-27 14:46
Notice
Recent Posts
Recent Comments
관리 메뉴

Scientific Computing & Data Science

[Ubuntu] Ubuntu에 Review Board 설치하기 본문

Great Ideas

[Ubuntu] Ubuntu에 Review Board 설치하기

cinema4dr12 2015. 2. 28. 13:40

[설치옵션]

  • Ubuntu 14.04 LTS

  • DB : MySQL

  • Web Server : Apache

  • Source Control : Git




[설치준비]

$ sudo apt-get update
$ sudo apt-get install build-essential

 

[MySQL 서버 설치]

$ sudo apt-get install mysql-server
$ sudo apt-get install libmysqlclient-dev

 

[Python Setup Tools 및 Development Headers 설치]

$ sudo apt-get install python-setuptools
$ sudo apt-get install python-dev




[Apache Web Server 설치]

$ sudo apt-get install apache2
$ sudo apt-get install libapache2-mod-python




[memcached 설치]

$ sudo apt-get install memcached
$ sudo easy_install python-memcached




[patch 설치]

$ sudo apt-get install patch




[reviewboard 설치]

$ sudo easy_install ReviewBoard




[Database 바인딩]

$ sudo easy_install mysql-python
$ sudo apt-get install python-mysqldb




[Source Control 도구로써 Git 설치]

$ sudo apt-get install git-core




[Source Control 도구로써 SVN 설치(옵션)]

$ sudo apt-get install python-subvertpy




[MySQL 설정]

my.conf 파일을 열어 텍스트에 대해 UTF-8  인코딩을 설정한다:

$ sudo nano /etc/mysql/my.cnf

위의 명령을 입력하면 텍스트 파일을 편집할 수 있는 상태로 전환된다.

다음을 입력한 후 my.conf 파일을 저장한다.

[client]
default-character-set=utf8

[mysqld]
character-set-server=utf8


다음을 입력하여 mysql로 진입한다.

$ sudo mysql -u root -p

mysql에서 다음을 입력하여 DB 옵션을 설정한다.

mysql> CREATE DATABASE reviewboard CHARACTER SET utf8;
mysql> CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
mysql> GRANT ALL PRIVILEGES ON reviewboard.* to 'myuser'@'localhost';

여기서 'myuser'는 자신의 userId로, 'mypassword'는 자신의 userId에 대한 패스워드를 입력한다.

예를 들어, 'myuser'는 'gchoi', 'mypassword'는 '1234'이면,

mysql> CREATE DATABASE reviewboard CHARACTER SET utf8;
mysql> CREATE USER 'gchoi'@'localhost' IDENTIFIED BY '1234';
mysql> GRANT ALL PRIVILEGES ON reviewboard.* to 'gchoi'@'localhost';

가 된다.




[Review Board 사이트 설치]

$ sudo rb-site install /var/www/reviewboard

위와 같이 입력하면 Review Board 사이트 설치를 시작하게 된다.

이해를 돕기 위해 옵션을 다음의 예로 들었다.

Domain Name: localhost

Root Path [/]: /

Database Type: 1 (mysql)

Database Name [reviewboard]: reviewboard

Database Server [localhost]: localhost

Database Username: reviewboard

Database Password:

Confirm Database Password:

Memcache Server [localhost:11211]: localhost:11211

* Create an administrator account (Review Board의 admin 계정)

Username [admin]:

Password: 

Confirm Password:

E-Mail Address: cinema4dr12@gmail.com

Company/Organization Name (optional): home

Allow us to collect support data? [Y/n]: y


설치가 성공적으로 수행되면 다음 경로의 폴더가 존재하는지 확인한다.

/var/www/reviewboard




[권한 변경]

$ sudo chown -R www-data /var/www/reviewboard/htdocs/media/uploaded
$ sudo chown -R www-data /var/www/reviewboard/data




[Web Server 설정]

Review Board의 Apache 접속 포트를 80(Apache 기본 포트)에서 8080으로 수정한다.

$ sudo nano /var/www/reviewboard/conf/apache-wsgi.conf


다음과 같이 텍스트를 편집할 수 있는 상태로 이동한다.

<VirtualHost *:80>
        ServerName localhost
        DocumentRoot "/var/www/reviewboard/htdocs"

        # Error handlers
        ErrorDocument 500 /errordocs/500.html

        WSGIPassAuthorization On
        WSGIScriptAlias "/" "/var/www/reviewboard/htdocs/reviewboard.wsgi/"

        <Directory "/var/www/reviewboard/htdocs">
                AllowOverride All
                Options -Indexes +FollowSymLinks
                Allow from all
        </Directory>

        # Prevent the server from processing or allowing the rendering of
        # certain file types.
        <Location "/media/uploaded">
                SetHandler None
                Options None

                AddType text/plain .html .htm .shtml .php .php3 .php4 .php5 .ph$
                AddType text/plain .pl .py .fcgi .cgi .phtml .phtm .pht .jsp .s$

                <IfModule mod_php5.c>
                        php_flag engine off
                </IfModule>
        </Location>

        # Alias static media requests to filesystem
        Alias /media "/var/www/reviewboard/htdocs/media"
        Alias /static "/var/www/reviewboard/htdocs/static"
        Alias /errordocs "/var/www/reviewboard/htdocs/errordocs"
        Alias /favicon.ico "/var/www/reviewboard/htdocs/static/rb/images/favico$
</VirtualHost>


다음과 같이 포트 번호를 "8080"으로 수정하고 apache-wsgi.conf 파일을 저장한다.

<VirtualHost *:8080>
        ServerName localhost
        DocumentRoot "/var/www/reviewboard/htdocs"

        # Error handlers
        ErrorDocument 500 /errordocs/500.html

        WSGIPassAuthorization On
        WSGIScriptAlias "/" "/var/www/reviewboard/htdocs/reviewboard.wsgi/"

        <Directory "/var/www/reviewboard/htdocs">
                AllowOverride All
                Options -Indexes +FollowSymLinks
                Allow from all
        </Directory>

        # Prevent the server from processing or allowing the rendering of
        # certain file types.
        <Location "/media/uploaded">
                SetHandler None
                Options None

                AddType text/plain .html .htm .shtml .php .php3 .php4 .php5 .ph$
                AddType text/plain .pl .py .fcgi .cgi .phtml .phtm .pht .jsp .s$

                <IfModule mod_php5.c>
                        php_flag engine off
                </IfModule>
        </Location>

        # Alias static media requests to filesystem
        Alias /media "/var/www/reviewboard/htdocs/media"
        Alias /static "/var/www/reviewboard/htdocs/static"
        Alias /errordocs "/var/www/reviewboard/htdocs/errordocs"
        Alias /favicon.ico "/var/www/reviewboard/htdocs/static/rb/images/favico$
</VirtualHost>


Apache에 포트 번호를 추가하기 위해 다음을 입력하여 해당 파일을 텍스트 수정할 수 있는 상태로 진입한다.

$ sudo nano /etc/apache2/ports.conf


다음과 같이 수정하고 저장한다.

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf
NameVirtualHost *:8080
Listen 8080

<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet


다음의 일련의 명령을 통해 Apache 서버를 설정한다.

$ cd /etc/apache2/sites-available
$ sudo cp /var/www/reviewboard/conf/apache-wsgi.conf reviewboard.conf
$ cd ../sites-enabled
$ sudo ln -s ../sites-available/reviewboard.conf


위의 과정을 통해 다음 파일이 생성되었는지 확인한다.

/etc/apache2/sites-available/reviewboard.conf

/etc/apache2/sites-enabled/reviewboard.conf (링크파일)


다음을 입력하여 Apache 서버를 재시작한다.

 Apache 서버 중지 :

$ service apache2 stop

 Apache 서버 시작 :

$ service apache2 start

참고로, 서버를 중지할 필요없이 변경사항에 대하여 reload가 가능하다 :

$ service apache2 reload




[Web Browser를 통해 Review Board 접속]

Web Browser 주소창에 "http://localhost:8080"을 입력하여 Review Board에 접속한다.

처음 Review Board의 접속화면을 Permission Problems에 대하여 언급되어 있다.

이에 대한 명령어를 복사하여 Terminal에서 실행한다.

$ sudo chown -R www-data "/var/www/reviewboard/htdocs/media/ext"


이제 Review Board의 설치 및 설정은 모두 끝났다. Web Browser에서 새로고침하여 다음의 화면이 나오는지 확인하자.


Comments