데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      오픈소스 스캔도구 FOSSology 3.6, P.CL(CentOS 7.6)에 설치하기

      haksung 20.03.07
      1,540 11 1

      이전 글에서 오픈소스 라이선스 스캔도구, FOSSology를 소개하였는데요 : https://devocean.sk.com/internal/board/viewArticle.do?id=158882

      여기서는 FOSSology를 사내 P.CL(Private Cloud)에 설치하는 방법에 대해 설명하려고 합니다. 

      사실, FOSSology에서 제공하는 Docker image(https://hub.docker.com/r/fossology/fossology/)를 이용하는 것이 가장 간단합니다. 그런데, P.CL에 설치하다보니까 DOCKER_HOST IP 충돌 이슈가 발생하더라구요. (누군가 이 부분 해결을 위한 팁을 주시면 고맙겠습니다. ^^)

      그래서, 부득이 FOSSology build, Postgesql, PHP, Apache 등을 개별적으로 설치 및 설정해주는 방식으로 P.CL에서 설치하였습니다. FOSSology는 오픈소스로 공개되어 있기 때문에, 누구나 자체적으로 설치하여 운영할 수 있습니다. 아래의 설명이, 오픈소스 라이선스 스캔 도구가 필요하신 분들에게 도움이 되길 바라겠습니다. 

       


      P.CL 보안 정책 추가

      P.CL에서는 보안정책을 추가해야 80포트 이용하여 web 접속이 가능하다.

      1. P.CL > 보안그룹 추가 : inboud > 0.0.0.0/0 > 80 port
      2. 보안 정책이 제대로 반영되었는지 Apache 설치 후 http://[ip] 로 확인 (참고 : https://blog.lael.be/post/1721)

      // 설치
      $ sudo yum install httpd

      // 부팅 시 자동 실행 enable 및 적용여부 확인
      $ sudo yum enable httpd.service
      $ sudo systemctl list-unit-files --type=service | grep httpd

      // httpd 시작 및 status 확인
      $ sudo systemctl start httpd.service
      $ sudo systemctl status httpd.service

      SELinux 해제

      (P.CL 보안 정책에 따라 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

      (P.CL이 제공하는 서버에 이미 설치되어 있을 수 있다.)

      // 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

      Intall 완료 후 추가 사항

      // /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 참고 

      // FOSSology가 설치되어 있는 경로 지정
      $ sudo vi /etc/httpd/conf/httpd.conf
      ...

      DocumentRoot "/usr/local/share/fossology/www/ui"
      ...

      # Relax access to content within /var/www.
      #

      "/usr/local/share/fossology/www/ui">
      ...

      # Further relax access to the default document root:
      >

      // 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

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      haksung 님의 최신 블로그

      더보기
      동영상 기고하기