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 해제가 필요하지 않을 수도 있다.)
$ sudo vi /etc/sysconfig/selinux
...
SELINUX=disabled
$ sudo reboot
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
$ wget https://github.com/fossology/fossology/archive/3.6.0.tar.gz
// 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
// Development Tools 설치
$ sudo yum groupinstall 'Development Tools'
// make
[fossology-3.6.0]$ make
// Install & log 저장
[fossology-3.6.0]$ sudo make install 2>&1 | tee install.log
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
// /var/log/fossology 생성
$ sudo mkdir /var/log/fossology
// Postinstall script 실행
$ sudo /usr/local/lib/fossology/fo-postinstall
[fossology-3.6.0]$ sudo ./install/scripts/php-conf-fix.sh --overwrite
(여기서는 단지 시험을 위한 운영이기 때문에 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
// 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 enable
$ sudo systemctl enable fossology
// fossology 시작
$ sudo systemctl start fossology
http://[ip address]
// fossology log 확인
$ tail -f /var/log/fossology/fossology.log
// httpd log 확인
$ sudo tail -f /var/log/httpd/error_log