Kali Linux에 devilbox 설치 및 local DB 연결하기
XAMPP 와 HeidiSQL를 사용해야 하는 강의를 들었는데, VM 리눅스 환경과 호환이 좋지 않았습니다.
여러 차례 vm 재설치, 리눅스 재설치 등 삽질을 좀 했습니다.
실습 환경을 그대로 재현하는 건 빠르게 포기하고, debian-linux에서 강의에서 봤던 것과 유사한
AMP 웹 서버 환경 구성과 데이터베이스 관리 툴 dbeaver 을 사용하는 방법을 기록합니다.
❓LAMP Stack (Linux + Apache + MySQL + PHP)
LAMP 스택은 개발자가 웹 사이트와 웹 애플리케이션을 빌드하는 데 사용하는 4가지 소프트웨어 기술의 번들입니다. LAMP는 Linux(운영 체제), Apache(웹 서버), MySQL(데이터베이스 서버), PHP(프로그래밍 언어)의 두문자어입니다. 이 4가지 기술 모두 오픈 소스이므로 커뮤니티에서 유지 관리되며 누구나 무료로 사용할 수 있습니다. 개발자는 LAMP 스택을 사용하여 웹 콘텐츠를 생성, 호스팅 및 유지 관리합니다. LAMP 스택은 오늘날 일반적으로 사용하는 많은 웹 사이트를 지원하는 널리 사용되는 솔루션입니다.
https://aws.amazon.com/ko/what-is/lamp-stack/
Environment
VM : VMware Fusion
OS : Kali Linux debian-12-arm
uname -a
Linux kali-blue 6.12.38+kali-arm64
#1 SMP Kali 6.12.38-1kali1 (2025-08-12) aarch64 GNU/Linux
1. install devilbox
xampp를 대체할 오픈 소스 프로젝트 devilbox 를 VM에 설치했습니다.
설치 방법은 레포 README에 잘 설명되어 있습니다.
https://github.com/cytopia/devilbox
# devilbox kali linux에 설치
git clone https://github.com/cytopia/devilbox
cd devilbox
cp env-example .env # 환경 변수는 공유하면 안됩니다
devilbox는 도커 컴포즈에서 실행됩니다.
칼리 리눅스에 docker와 docker-compose를 우선 설치해야 합니다.
sudo apt install docker.io
docker 와 docker compose 를 모두 설치했다고 가정하고,
devilbox 를 실행합니다:
docker compose up httpd php mysql
devilbox 를 사용한 이유는 :
-
xampp를 대체할 만한 오픈 소스를 찾고 있었고, -
devilbox로LAMP개발 환경을 만들어보고 싶었고, -
(칼리) 리눅스와 도커를 익히기에도 좋을 것 같았습니다.
-
격리된 컨테이너 단위로 취약점 테스트를 수행하는 것이 좋지 않을까 싶었습니다.
패키지 설치 도중에 VM 디스크 공간이 부족해
시스템 부하가 걸린 순간이 몇번 있었는데, 용량을 늘려 gparted로 할당도 해보고
df -h , du -sh /* 로 용량도 확인하면서 리눅스 fs를 여러 면으로 탐색했습니다.
VM에서 메모리가 부족하여 docker compose up 을 했더니
도커 이미지 pulling과정에서 시스템이 다운되었습니다 😅
로컬호스트에 설치된
devilbox를 확인할 수 있습니다.
다음으로 dbeaver 를 설치하도록 하겠습니다.
snap 패키지 설치 이후 다음 명령어로 쉽게 다운받을 수 있습니다.
sudo snap install dbeaver-ce
.deb 인스톨러 설치 방법은 아래와 같습니다.
.deb 파일이 다운됩니다. 이 파일에 적절한 권한 설정을 해준 뒤
루트 권한으로 설치파일을 apt 대신 dpkg로 실행합니다.
이 부분을 잘 몰라서 시간 소요가 조금 있었습니다.
sudo chmod +x ./dbeaver-{version}-installer.deb
dpkg -i ./dbeaver-{v}-installer.deb
❓dpkg
dpkg와 apt 차이가 궁금해서 검색한 내용을 정리합니다.
-
dpkg:.deb파일을 직접 설치/삭제하는 저수준(low-level) 패키지 관리 도구.deb파일을 설치 및 삭제하는 기본 도구- 로컬에 있는
.deb파일만 설치 가능 - 의존성 문제 자동으로 해결하지 못함
-
apt:dpkg의 기능을 활용하며 의존성 문제를 자동으로 해결하고 원격 저장소에서 패키지를 다운로드하는 고수준(high-level) 도구dpkg를 기반으로 작동하는 고수준 도구- 원격 저장소에서 패키지를 자동으로 다운로드 및 설치 가능
- 의존성 문제 자동으로 해결함
-
일반적으로 더 편리한
apt를 사용하고,dpkg는 특정 상황에서 사용
npm vs yarn 같은 패키지 매니저 비교로 이해하니 한결 수월합니다.
개인적으로 apt , dpkg 명령어를 잘 모르고 사용하면서
의존성 문제가 많이 생겼던 것 같습니다.
다운로드 완료 이후, 명령어dbeaver 를 입력하면, 브라우저로 DBeaver 웹 UI가 실행됩니다.
xamppp 의 데이터베이스 조회/조작과 거의 동일한 기능을 제공합니다.
이제 상단의 메뉴바에서 Database > Connect를 실행하여 로컬 MySQL과 연결합니다.
사실 devilbox 에도 myAdminPHP 웹 UI를 제공합니다. 여기에서 데이터베이스를 조회/조작할 수 있습니다.