brunch

You can make anything
by writing

C.S.Lewis

by Haksung Mar 07. 2020

FOSSology 3.6 on CentOS 7.6

CentOS에 FOSSology 설치하기

이전 글에서 오픈소스 라이선스 스캔 도구, FOSSology를 소개하였는데요 : https://brunch.co.kr/@foss/4

여기서는 FOSSology를 CentOS 7.6에 설치하는 방법에 대해 설명하려고 합니다. 

사실, FOSSology에서 제공하는 Docker image(https://hub.docker.com/r/fossology/fossology/)를 이용하는 것이 가장 간단합니다. 그런데, 자체적으로 서버를 운영하면서, Postgesql, PHP, Apache 등을 개별적으로 설치하면서 설정하는 게 필요할 수 있습니다.  FOSSology는 오픈소스로 공개되어 있기 때문에, 누구나 자체적으로 설치하여 운영할 수 있습니다. 아래의 설명이, 오픈소스 라이선스 스캔 도구가 필요하신 분들에게 도움이 되길 바라겠습니다. 


SELinux 해제

(시스템의 보안 정책에 따라 SELinux 해제가 필요하지 않을 수도 있다.)                                                                                          

$ sudo vi /etc/sysconfig/selinux
...
SELINUX=disabled
$ sudo reboot


PHP upgrade

PHP 5.6으로 upgrade : https://www.zerostopbits.com/how-to-upgrade-php-5-4-to-php-5-6-on-centos-7-5-1804/                                                                                          

// php version 확인
$ php -v

// install the Remi and EPEL repositories
$ sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ sudo rpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-7.rpm

// Enable the Remi repository globally
$ sudo vi /etc/yum.repos.d/remi.repo

[remi]
...
enabled=1
[remi-php56]
...
enabled=1

// UPGRADE PHP 5.4 TO PHP 5.6
$ sudo yum -y upgrade php*


// 다시 version 확인
$ php -v


Get source code

$ wget https://github.com/fossology/fossology/archive/3.6.0.tar.gz


Install dependencies                                

// lsb package for centos7 설치
$ sudo yum install redhat-lsb

// composer 설치
$ sudo yum install composer

// dependencies 설치
$ tar xvfz 3.6.0.tar.gz
$ cd fossology-3.6.0
[fossology-3.6.0]$ sudo utils/fo-installdeps


Build FOSSology

// Development Tools 설치
$ sudo yum groupinstall 'Development Tools'
// make
[fossology-3.6.0]$ make


Install FOSSology 

// Install & log 저장
[fossology-3.6.0]$ sudo make install 2>&1 | tee install.log


Postgresql 설정

https://github.com/fossology/fossology/wiki/Configuration-and-Tuning

// initdb
$ sudo postgresql-setup initdb

// postgresql.conf 편집
$ sudo vi /var/lib/pgsql/data/postgresql.conf
...
listen_addresses = '*'

// pg_hba.conf 편집
$ sudo vi /var/lib/pgsql/data/pg_hba.conf
...

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust

// 부팅 시 시작되도록 postgreasql enable
$ sudo systemctl enable postgresql

// postgreasql 시작
$ sudo systemctl start postgresql


Install 완료 후 추가 사항

// /var/log/fossology 생성
$ sudo mkdir /var/log/fossology

// Postinstall script 실행
$ sudo /usr/local/lib/fossology/fo-postinstall


PHP 설정

[fossology-3.6.0]$ sudo ./install/scripts/php-conf-fix.sh --overwrite


Apache 설정

(여기서는 단지 시험을 위한 운영이기 때문에 FOSSology 가이드인 repo alias를 사용하지 않고, Apache home directory 변경하는 방식으로 설정한다.)

Apache 설치 가이드 for CentOS 7 참고   

https://www.digitalocean.com/community/tutorials/how-to-install-the-apache-web-server-on-centos-7

https://pureu0.tistory.com/8

// FOSSology가 설치되어 있는 경로 지정
$ sudo vi /etc/httpd/conf/httpd.conf
...
DocumentRoot "/usr/local/share/fossology/www/ui"
...

# Relax access to content within /var/www.
#
<Directory "/usr/local/share/fossology/www/ui">
...
# Further relax access to the default document root:
<Directory "/usr/local/share/fossology/www/ui">

// httpd restart
$ sudo systemctl restart httpd


설치 테스트

// Postgresql 접속 확인
$ sudo psql -d fossology -U fossy

// fossology scheduler 동작 확인
$ sudo /usr/local/etc/fossology/mods-enabled/scheduler/agent/fo_scheduler -t


FOSSology start                                        

// 부팅 시 시작되도록 fossology enable
$ sudo systemctl enable fossology

// fossology 시작
$ sudo systemctl start fossology


Browser에서 접속 확인

http://[ip address]


접속 실패 시 log 확인                                                  

// fossology log 확인
$ tail -f /var/log/fossology/fossology.log

// httpd log 확인
$ sudo tail -f /var/log/httpd/error_log


작가의 이전글 FOSSology, 소스 코드 스캔 도구
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari