본문 바로가기
Ubuntu/Ubuntu22.04

[lxc + limesurvey] 리눅스 컨테이너 안에 라임서베이 설치

by 거인과난쟁이 2024. 8. 18.

 

LimeSurvey를 위한 새 컨테이너를 만들고 그 안으로 들어가는 과정을 단계별로 안내해 드리겠습니다.

  1. LimeSurvey 컨테이너 생성: Ubuntu 기반의 컨테이너를 만들겠습니다. 다음 명령어를 실행하세요:
     
     sudo lxc-create -n limesurvey -t ubuntu
     
    이 과정은 몇 분 정도 소요될 수 있습니다.
  2. 컨테이너 시작: 생성된 컨테이너를 시작합니다:
     
     sudo lxc-start -n limesurvey
     
  3. 컨테이너 상태 확인: 컨테이너가 제대로 시작되었는지 확인합니다:
     
     sudo lxc-ls -f
     
    limesurvey 컨테이너의 상태가 RUNNING으로 표시되어야 합니다.
  4. 컨테이너 내부로 진입: 다음 명령어로 컨테이너 내부에 접속합니다:
     
     sudo lxc-attach -n limesurvey
     
    이제 컨테이너 내부의 root 쉘에 접근했습니다.
  5. (선택사항) 새 사용자 생성: root로 작업하는 것은 권장되지 않으므로, 새 사용자를 만들 수 있습니다:
     
     adduser limeuser
     
    화면의 지시에 따라 비밀번호와 사용자 정보를 입력하세요.
  6. (선택사항) 새 사용자에게 sudo 권한 부여:
     
     usermod -aG sudo limeuser
     
  7. 컨테이너 내부에서 나가기: 작업을 마치고 컨테이너에서 나가려면 다음 명령어를 사용하세요:
     
     exit
     

이제 LimeSurvey를 위한 새 컨테이너가 생성되었고, 그 안으로 들어갔다 나왔습니다. 이 컨테이너 안에서 LimeSurvey를 설치하고 구성할 수 있습니다.

컨테이너를 자동으로 시작하도록 설정하려면, 앞서 설명드린 대로 (호스트 서버의) 컨테이너의 설정 파일에 lxc.start.auto = 1을 추가하세요:

 
 sudo nano /var/lib/lxc/limesurvey/config
 

파일 끝에 lxc.start.auto = 1을 추가하고 저장하세요.


다시 라임서베이 컨테이너 안에 들어가서 라임서베이 설정을 본격적으로 해야합니다. 아래의 링크를 참조하십시오.

https://modernity.tistory.com/entry/Limesurvey-Self-Hosting-Procedure-1-Installation

 

Limesurvey Self-Hosting Installation [1]: apache2, php

- Ubuntu22.04 (tested 22.04.3)# dependenciessudo apt update## apachesudo apt install apache2## mariadbsudo apt install mariadb-server### mariadb settingsudo mysql_secure_installation## phpsudo apt install php libapache2-mod-php php-mysql php-xml php-mbstri

modernity.tistory.com


외부에서 LimeSurvey에 접속하기 위해서는 몇 가지 추가 설정이 필요합니다. 다음 단계를 따라해 보세요:

  1. 컨테이너의 IP 주소 확인: 컨테이너 내부에서 다음 명령어를 실행합니다:
     
     ip addr show eth0 | grep inet
     
    여기서 나오는 IP 주소를 기억해두세요 (예: 10.0.3.x).
  2. 호스트 시스템에서 포트 포워딩 설정: 호스트 시스템에서 다음 명령어를 실행합니다:
     
     sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.0.3.x:80
     sudo iptables -t nat -A   POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE
     
    여기서 10.0.3.x는 위에서 확인한 컨테이너의 IP 주소입니다.
  3. Apache 설정 변경 (컨테이너 내부): 컨테이너 내부에서 Apache 설정을 변경하여 모든 IP에서의 접근을 허용합니다:
     
     sudo nano /etc/apache2/ports.conf
     
    "Listen 80"을 "Listen 0.0.0.0:80"으로 변경합니다.
  4. Apache 재시작 (컨테이너 내부):
     
     sudo systemctl restart apache2
     
  5. 호스트 시스템의 방화벽 설정:
     sudo ufw allow 80/tcp
     
  6. 공유기 설정: 공유기 관리 페이지에서 포트 포워딩을 설정합니다. 외부 포트 80을 호스트 컴퓨터의 내부 IP 주소와 포트 80으로 포워딩하세요.
  7. 외부 IP 확인: 호스트 시스템에서 다음 명령어로 외부 IP를 확인합니다:
     
     curl ifconfig.me
     

이제 외부에서 다음 주소로 LimeSurvey에 접속할 수 있어야 합니다:

http://<외부_IP>/limesurvey

주의사항:

  • 보안을 위해 가능하다면 HTTPS를 설정하는 것이 좋습니다.
  • 80번 포트 대신 다른 포트를 사용하고 싶다면, 위의 설정에서 포트 번호를 변경하면 됩니다.
  • 컨테이너와 호스트 시스템을 재부팅한 후에도 설정이 유지되도록 하려면, 포트 포워딩 규칙을 영구적으로 저장해야 합니다.