Debian Etch에 ImpressCMS 1.0 Final 설치하기

간단요약: 이 가이드는 Debian Etch 최소 설치 환경에 ImpressCMS 1.0 Final을 설치하는 실무형 단계별 안내입니다. Apache, PHP, MySQL 설치와 설정, 가상호스트 구성, 파일 권한 설정, 설치 마법사 사용 및 설치 후 점검 체크리스트를 포함합니다.
중요: 이 문서는 실무 가이드이며 이론적 배경을 다루지 않습니다. 제공된 명령과 경로는 예시이므로 실제 환경에 맞게 조정하세요.
버전 및 저자
버전: 1.0
저자: Oliver Meyer
이 문서는 Debian Etch에 ImpressCMS 1.0 Final을 설치하는 방법을 설명합니다. ImpressCMS는 동적 웹 사이트를 쉽고 안전하게 구축·유지하기 위한 커뮤니티 개발 콘텐츠 관리 시스템입니다. 여기서는 한 가지 실무적 설치 방법을 제시합니다.
사전 준비
이 안내서는 네트워크 설치로 구성된 최소 Debian Etch 시스템으로 작성되었습니다. 예시 VM 구성:
- 호스트명: server1.example.com
- IP: 192.168.0.100
- 게이트웨이: 192.168.0.2
- 모든 비밀번호 예시: howtoforge
필요한 권한: 루트 또는 sudo 사용 권한이 필요합니다.
1 필요한 패키지 설치
다음 명령으로 Apache, PHP, MySQL 관련 패키지를 설치합니다.
apt-get install apache2 libapache2-mod-php5 php5-mysql mysql-server mysql-client
설치가 끝나면 서비스가 정상 기동하는지 확인하세요.
2 MySQL 구성
2.1 바인드 주소
MySQL 서버가 모든 네트워크 인터페이스에서 수신하도록 설정을 변경합니다.
vi /etc/mysql/my.cnf
다음 행을 찾아 주석 처리합니다.
bind-address = 127.0.0.1
변경 후:
# bind-address = 127.0.0.1
설정을 적용하려면 MySQL을 재시작합니다.
/etc/init.d/mysql restart
2.2 MySQL 루트 사용자 비밀번호 설정
루트 사용자 비밀번호를 설정합니다 (환경에 맞는 비밀번호로 교체).
mysqladmin -u root password %sql_root_password%
mysqladmin -h server1.example.com -u root password %sql_root_password%
2.3 ImpressCMS 데이터베이스 및 사용자 생성
ImpressCMS 전용 데이터베이스를 생성합니다.
mysqladmin -u root -p create impresscms
그 다음, 데이터베이스 사용자를 생성하고 권한을 부여합니다.
mysql -u root -p
MySQL 프롬프트에서:
GRANT CREATE, ALTER, INDEX, DROP, CREATE TEMPORARY TABLES, SELECT, INSERT, UPDATE, DELETE ON impresscms.* TO 'impresscms_admin'@'localhost' IDENTIFIED BY '%impresscms_admin_password%';
GRANT CREATE, ALTER, INDEX, DROP, CREATE TEMPORARY TABLES, SELECT, INSERT, UPDATE, DELETE ON impresscms.* TO 'impresscms_admin'@'localhost.localdomain' IDENTIFIED BY '%impresscms_admin_password%';
FLUSH PRIVILEGES;
quit;
중요: 위 명령에서 ‘%impresscms_admin_password%’는 실제 강력한 비밀번호로 교체하세요.
3 Apache 가상호스트(vhost) 설정
문서 루트와 트러스트 디렉터리를 생성합니다.
mkdir /var/www/impresscms/
mkdir /var/www/impresscms_trust/
가상호스트 설정 파일을 만듭니다.
vi /etc/apache2/sites-available/impresscms
예시 구성:
NameVirtualHost 192.168.0.100:80
ServerName server1.example.com
ServerAdmin [email protected]
DocumentRoot /var/www/impresscms/
LogLevel warn
ErrorLog /var/log/apache2/impresscms_error.log
CustomLog /var/log/apache2/impresscms_access.log combined
새 사이트를 활성화하고 Apache를 재시작합니다.
a2ensite impresscms
/etc/init.d/apache2 restart
4 ImpressCMS 다운로드 및 파일 배치
항상 최신 버전을 확인하세요: http://www.impresscms.org/modules/mastop_publish/?tac=Download
예시 (문서 작성 시 버전 1.0):
cd /tmp/
wget http://downloads.sourceforge.net/impresscms/impresscms_1.0_final.tar.gz
tar xvfz impresscms_1.0_final.tar.gz
압축을 푼 후 htdocs의 내용을 가상호스트 문서 루트로 복사합니다.
cp -R /tmp/htdocs/* /var/www/impresscms/
파일 권한을 변경합니다.
chown -R www-data:www-data /var/www/impresscms/ /var/www/impresscms_trust/
chmod -R 755 /var/www/impresscms/uploads/ /var/www/impresscms/cache/ /var/www/impresscms/templates_c/ /var/www/impresscms/mainfile.php 
참고: 위 코드 블록은 원문에 포함된 형태를 그대로 유지했습니다. 실제로는 다음과 같이 두 개의 명령으로 나누어 실행하는 것이 일반적입니다:
chown -R www-data:www-data /var/www/impresscms/ /var/www/impresscms_trust/
chmod -R 755 /var/www/impresscms/uploads/ /var/www/impresscms/cache/ /var/www/impresscms/templates_c/
chmod 444 /var/www/impresscms/mainfile.php # 설치 후 권한 변경 예시
5 설치(웹 마법사)
브라우저에서 http://server1.example.com/ 를 열면 설치 마법사가 실행됩니다. 설치 과정 중 추가 언어 파일은 ImpressCMS SourceForge 페이지에서 확인할 수 있습니다.
스크립트가 서버 구성 체크를 수행하며 모든 항목이 초록색으로 표시되어야 합니다.
파일 및 디렉터리 권한을 확인합니다. 트러스트 경로를 “/var/www/impresscms_trust”로 설정하고 경로를 생성하세요.
데이터베이스 이름, 사용자, 비밀번호를 입력합니다(3.3절에서 생성한 값 사용).
계속 진행하면 설치 스크립트가 데이터베이스 테이블을 생성하고 초기 데이터를 삽입합니다.
관리자 계정 정보를 입력합니다 (예: admin).
설치가 완료되면 사이트 보기를 클릭합니다.
설치가 끝난 후, 보안을 위해 설치 디렉터리를 삭제하고 mainfile 권한을 변경합니다.
rm -Rf /var/www/impresscms/install/
chmod 444 /var/www/impresscms/mainfile.php
이제 설치 시 만든 관리자 계정으로 로그인할 수 있습니다.
6 설치 후 점검표(관리자 체크리스트)
- 설치 디렉터리(/var/www/impresscms/install/) 삭제 여부 확인
- mainfile.php 권한이 읽기 전용(444)인지 확인
- uploads, cache, templates_c 디렉터리 소유자가 웹서버 사용자(www-data)인지 확인
- MariaDB/MySQL의 루트 및 CMS 사용자 암호가 강력한지 확인
- Apache 로그(/var/log/apache2/)에 에러가 없는지 확인
- 웹사이트의 주요 페이지(공개 페이지, 로그인, 관리자 대시보드) 접속 확인
7 보안 권장사항
- MySQL 원격 접속이 필요하지 않다면 bind-address를 로컬로 제한하세요.
- SSL(HTTPS)을 적용하여 관리자 로그인과 데이터 전송을 보호하세요.
- 주기적 백업(파일 + 데이터베이스)을 설정하세요.
- PHP와 서버 패키지를 최신 보안 업데이트로 유지하세요.
8 문제 해결(간단한 런북)
- Apache가 시작하지 않음
- /var/log/apache2/error.log 확인
- 포트 충돌 확인: netstat -tulpen | grep :80
- PHP 에러(페이지가 비정상)
- Apache에서 PHP 모듈이 활성화되었는지 확인: a2enmod php5 후 재시작
- php.ini 설정(메모리 제한, 업로드 크기 등) 확인
- 데이터베이스 연결 실패
- my.cnf의 bind-address 설정과 MySQL 재시작 확인
- DB 사용자 및 권한(GRANT)이 정확한지 확인
- 파일 업로드 안됨
- uploads 디렉터리 권한 및 소유자 확인
9 대안 및 확장
- 운영 환경에서는 Debian Etch 대신 최신 안정화 배포판(Debian 안정 버전 또는 Ubuntu LTS)과 최신 ImpressCMS 버전을 사용하는 것을 권장합니다.
- 데이터베이스로 MariaDB 사용 가능(호환성 확인).
- 리버스 프록시(Nginx)를 앞단에 두고 PHP-FPM으로 구성하는 방법도 성능/보안 측면에서 유리합니다.
10 참고 링크
- Debian: http://www.debian.org/
- ImpressCMS: http://www.impresscms.org/
- ImpressCMS on SourceForge: http://sourceforge.net/projects/impresscms/
요약 및 마무리
이 가이드는 Debian Etch 환경에서 ImpressCMS 1.0 Final을 설치하는 전체 흐름을 다룹니다: 패키지 설치, MySQL 설정, 가상호스트 구성, 파일 배포, 설치 마법사 사용, 설치 후 보안 점검과 기본 문제 해결 방법까지 포함합니다. 실제 운영 환경에서는 패키지 버전, 보안 업데이트, SSL 적용 등을 추가로 고려하세요.
핵심 체크: 데이터베이스 사용자·비밀번호 설정, 문서 루트와 트러스트 디렉터리 권한, 설치 디렉터리 삭제 및 mainfile 권한 변경을 완료하면 기본 설치는 안전하게 마무리됩니다.