Ubuntu 18.04에 Microweber 설치하기

소개
Microweber는 PHP와 Laravel 프레임워크 기반의 오픈소스 드래그 앤 드롭 CMS입니다. 라이브 편집, 온라인 상점, 템플릿, WYSIWYG HTML 편집기 등 웹사이트 구축에 필요한 기능을 제공합니다. 이 문서는 Ubuntu 18.04 서버에 Microweber를 설치하고 운영 준비를 마치는 실무 절차를 담고 있습니다.
중요 용어 한 줄 정의:
- LAMP: Linux(OS) + Apache(웹서버) + MariaDB(또는 MySQL) + PHP(서버사이드 언어)
요구사항
- Ubuntu 18.04가 실행 중인 서버
- sudo 권한이 있는 비루트 사용자
- 도메인(예: example.com) — 선택 사항이지만 권장
사전 준비
먼저 시스템 패키지를 최신으로 업데이트하세요:
sudo apt-get update -y
sudo apt-get upgrade -y
업데이트 후 시스템을 재부팅하여 커널 및 서비스 변경을 적용합니다.
LAMP 스택 설치
Apache, MariaDB, PHP 및 Microweber가 필요로 하는 PHP 확장들을 설치합니다:
sudo apt-get install apache2 mariadb-server php7.2 libapache2-mod-php7.2 php7.2-common php7.2-mbstring php7.2-xmlrpc php7.2-soap php7.2-mysql php7.2-gd php7.2-xml php7.2-cli php7.2-zip unzip wget -y
설치 후 php.ini 파일을 열어 메모리 제한, 업로드 용량, 실행 시간, 타임존을 조정하세요. 타임존 예시는 한국 시간(Asia/Seoul)로 바꿔 두었습니다:
sudo nano /etc/php/7.2/apache2/php.ini
변경 예시:
memory_limit = 256M
upload_max_filesize = 150M
max_execution_time = 360
date.timezone = Asia/Seoul
파일을 저장하고 닫습니다.
그 다음 Apache와 MariaDB 서비스를 시작하고 부팅 시 자동 시작하도록 설정합니다:
sudo systemctl start apache2
sudo systemctl start mariadb
sudo systemctl enable apache2
sudo systemctl enable mariadb
중요: PHP 버전 호환성(예: Microweber가 지원하는 최소 PHP 버전)을 미리 확인하세요. 필요하면 PHP 버전을 조정하거나 OS 업그레이드를 고려해야 합니다.
MariaDB 보안 설정 및 데이터베이스 생성
기본적으로 MariaDB는 추가 보안 설정이 필요합니다. 아래 스크립트를 실행하여 루트 비밀번호 설정, 익명 사용자 제거, 원격 루트 로그인 금지, 테스트 DB 제거 등을 수행하세요:
sudo mysql_secure_installation
프롬프트 예시 (질문에 따라 Y/N로 응답):
Enter current password for root (enter for none): ENTER
Set root password? [Y/n]: N
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y
보안 설정 후 MariaDB에 접속하여 Microweber용 데이터베이스와 사용자를 생성합니다. 아래 예시에서 ‘password’는 실제 안전한 비밀번호로 교체하세요:
mysql -u root -p
MariaDB [(none)]> CREATE DATABASE microweberdb;
MariaDB [(none)]> CREATE USER 'microweber'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> GRANT ALL ON microweberdb.* TO 'microweber'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
보안 팁: 운영 환경에서는 로컬 접근만 허용하거나 별도 DB 사용자 권한을 최소화하세요. 원격 접속이 필요한 경우 방화벽과 사용자 권한을 엄격히 관리하세요.
Microweber 다운로드 및 설치
공식 사이트에서 최신 Microweber 패키지를 /tmp로 다운로드하고 웹 루트로 압축을 풉니다:
cd /tmp
wget https://microweber.com/download.php -O microweber-latest.zip
sudo mkdir /var/www/html/microweber
sudo unzip microweber-latest.zip -d /var/www/html/microweber
파일 권한을 올바르게 설정합니다(웹서버가 파일을 읽고 쓸 수 있어야 합니다):
sudo chown -R www-data:www-data /var/www/html/microweber/
sudo chmod -R 755 /var/www/html/microweber/
권한 정책 설명: www-data 사용자(또는 웹서버 사용자)에게 소유권을 주어 업로드/캐시 등 쓰기 작업이 가능하게 합니다. 755는 디렉터리 접근 권한을 안전하게 유지합니다.
Apache 가상호스트 구성
Microweber용 Apache 가상호스트 파일을 생성합니다:
sudo nano /etc/apache2/sites-available/microweber.conf
다음 내용을 추가하세요(도메인을 자신의 도메인으로 교체):
ServerAdmin [email protected]
DocumentRoot /var/www/html/microweber
ServerName example.com
ServerAlias www.example.com
Options FollowSymlinks
AllowOverride All
Require all granted
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
가상호스트 활성화 및 rewrite 모듈 활성화 후 Apache 재시작:
sudo a2ensite microweber.conf
sudo a2enmod rewrite
sudo systemctl restart apache2
Apache 상태 확인:
sudo systemctl status apache2
정상 동작 시 서비스가 active(running) 상태여야 합니다.
방화벽 설정 및 HTTPS 적용
Ubuntu 서버에서 UFW를 사용한다면 HTTP/HTTPS를 허용하세요:
sudo ufw allow OpenSSH
sudo ufw allow 'Apache Full'
sudo ufw enable
sudo ufw status
Let’s Encrypt로 무료 SSL을 적용하려면 certbot을 사용합니다:
sudo apt-get install certbot python-certbot-apache -y
sudo certbot --apache -d example.com -d www.example.com
인증서 자동 갱신을 확인하려면 다음을 실행하세요:
sudo certbot renew --dry-run
Note: 도메인이 올바르게 DNS에 연결되어 있어야 발급이 성공합니다.
웹 설치 화면에서 입력할 값
웹 브라우저로 http://example.com 에 접속하면 설치 마법사가 나타납니다. 다음 정보를 준비하세요:
- 데이터베이스 이름: microweberdb
- 데이터베이스 사용자: microweber
- 데이터베이스 비밀번호: (위에서 설정한 비밀번호)
- 관리자 계정 이름, 이메일, 비밀번호
- 사이트 제목 및 템플릿 선택
설치가 완료되면 대시보드로 리디렉션됩니다:
설치 확인 기준
다음 항목이 모두 충족되면 설치가 성공적으로 완료된 것입니다:
- 웹사이트 루트(예: http://example.com)에 접속하여 설치 마법사 또는 대시보드가 표시된다.
- 관리자 계정으로 로그인하여 대시보드 접근 가능.
- 데이터베이스 연결 오류가 발생하지 않음.
- Apache 서비스가 활성 상태: sudo systemctl status apache2 출력에서 active(running).
- 웹서버가 파일 시스템에 쓰기 가능: sudo -u www-data test -w /var/www/html/microweber/storage (또는 업로드 테스트로 확인).
- HTTPS가 적용된 경우 브라우저에서 안전 연결(자물쇠 아이콘) 확인.
문제 해결 팁
- 500 내부 서버 오류: Apache 에러 로그 확인 /var/log/apache2/error.log
- 데이터베이스 연결 실패: MariaDB 사용자/비밀번호/데이터베이스 이름을 재확인
- 권한 문제(업로드 불가 등): 소유자와 퍼미션 확인, www-data로 소유권 부여
- PHP 확장 문제: php -m로 로드된 모듈 확인, 필요한 확장이 빠졌다면 php-확장 패키지 설치
예시: Apache 에러 로그 확인
sudo tail -n 50 /var/log/apache2/error.log
운영에 유용한 체크리스트
시스템 관리자 체크리스트:
- 방화벽(UFW)과 불필요한 포트 차단
- 정기 백업(파일 + DB) 자동화 스크립트 설정
- SSL 인증서 자동 갱신 확인
- 시스템 및 PHP 보안 업데이트 주기 점검
개발자/운영팀 체크리스트:
- 파일 업로드 크기·타임아웃 설정 검토
- 캐시 및 퍼포먼스(예: OPcache) 고려
- 외부 플러그인 설치 전 코드 검토
콘텐츠 담당자 체크리스트:
- 관리자 계정으로 로그인하여 템플릿·모듈 테스트
- 이미지 업로드 및 온라인 상점 제품 등록 테스트
- 권한(편집자/관리자) 분리 및 계정 관리
백업 간단 방법
파일 백업 예시:
sudo rsync -avz /var/www/html/microweber/ user@backup-server:/backups/microweber/
데이터베이스 덤프 예시:
mysqldump -u root -p microweberdb > microweberdb-$(date +%F).sql
정기 백업은 cron 또는 백업 툴을 사용해 자동화하세요.
보안 권고 사항
- 운영 환경에서는 Microweber와 플러그인을 항상 최신으로 유지하세요.
- 데이터베이스 비밀번호는 강력하고 주기적으로 변경하세요.
- 관리자 계정에 2단계 인증이 제공되는 경우 활성화하세요(플랫폼에서 지원 시).
- 불필요한 PHP 함수(예: exec, shell_exec) 제한 고려.
대체 접근방법
- Nginx 환경을 선호한다면 LEMP 스택 구성으로 변경 가능(설정 파일·권한·rewrite 규칙이 다름).
- Docker 컨테이너로 Microweber를 격리해 배포하면 환경 일관성과 배포 자동화를 용이하게 할 수 있습니다.
요약
Microweber 설치는 LAMP 스택 구성, 데이터베이스 생성, 파일 권한 설정, Apache 가상호스트 설정, 웹 설치 마법사 완료의 단계를 거칩니다. 설치 후에는 보안(방화벽, SSL), 백업, 권한 관리를 통해 운영 안정성을 확보하세요.
중요: 서버 환경(특히 PHP 버전 및 확장)은 Microweber 요구사항과 일치해야 합니다. 문제가 발생하면 로그를 먼저 확인하고 권한·DB 설정·PHP 확장을 점검하세요.
추가 질문이나 특정 오류 로그가 있다면 오류 내용과 함께 알려주시면 더 구체적으로 도와드리겠습니다.