소개
Drupal은 블로그 운영 및 기업 콘텐츠 관리에 가장 선호되는 콘텐츠 관리 시스템(CMS) 중 하나입니다. 개발자와 기업은 강력함과 사용 편의성 때문에 이를 선호합니다. 사용자 정의가 매우 용이하며 다양한 사용 사례를 구현하기 위해 확장할 수 있습니다.
이 튜토리얼에서는 다음 환경에 Drupal을 설치하는 방법을 설명합니다: Ubuntu 20.04 및 Apache.
전제 조건
Ubuntu에 Drupal을 설치할 예정이므로 최신 버전의 Ubuntu가 설치되어 있어야 합니다. 아직 설치하지 않으셨다면 저희 guide to install Ubuntu를 참고하시기 바랍니다. 또한 PHP, MySQL, 그리고 Apache가 설치되어 준비되어 있어야 합니다. 이들이 설치되어 있지 않다면 저희 가이드인 LAMP Stack setup – Linux Apache MySQL PHP.
머신에 Drupal을 다운로드하고 설정하기 전에 시스템에서 몇 가지 조정을 수행해야 합니다. PHP, MySQL, Apache가 설치되었으므로 Drupal 설치를 위해 시스템 구성을 시작하겠습니다.
MySQL 사용자 및 데이터베이스 준비하기
Drupal은 데이터 및 구성을 저장하기 위해 MySQL 데이터베이스에 의존합니다. Drupal 환경이 격리되도록 전용 사용자와 데이터베이스를 설정하겠습니다. 이는 애플리케이션 보안에도 도움이 됩니다. 새 사용자와 데이터베이스를 생성하겠습니다. 먼저 터미널에서 아래 명령을 실행하여 MySQL 서버에 로그인합니다:
|
1 |
mysql -u root -p |
MySQL의 사용자 이름 및 비밀번호를 입력합니다. 인증이 완료되면 아래 명령을 실행하여 새 데이터베이스를 생성합니다. 이름을 drupal:
|
1 |
CREATE DATABASE drupal; |
다음으로, 이 데이터베이스에 연결할 새 사용자를 생성해야 합니다. 이름을 drupaluser로 하겠습니다. 비밀번호는 강력한 비밀번호를 입력해야 합니다. 아래 명령을 실행하여 새 사용자를 생성합니다:
|
1 |
CREATE USER drupaluser@localhost IDENTIFIED BY 'password'; |
생성한 사용자는 이 데이터베이스에서 작업을 수행할 수 있는 권한이 필요합니다. 그러나 모든 권한을 제공하면 애플리케이션이 보안 침해에 노출될 수 있습니다. 따라서 여기서는 아래 명령을 실행하여 필요한 권한만 제공하겠습니다:
|
1 |
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,CREATE TEMPORARY TABLES,LOCK TABLES ON drupal.* TO drupaluser@localhost; |
권한을 부여했다면 다음 단계로 진행할 준비가 되었습니다. 아래 명령을 실행하여 권한을 즉시 적용하도록 플러시(flush)합니다:
|
1 |
FLUSH PRIVILEGES; |
그 후, 아래 명령을 실행하여 MySQL을 종료합니다:
|
1 |
exit |
PHP 모듈 설치 및 구성
Drupal이 작동하려면 PHP 모듈이 필요합니다. Ubuntu 공식 리포지토리에서 다운로드하겠습니다. 아래 명령을 실행하여 로컬 패키지 캐시를 업데이트합니다:
|
1 2 |
sudo apt-get update sudo apt-get install php5-gd php5-curl libssh2-php |
다음으로, Drupal의 권장 사항에 따라 PHP 모듈을 일부 조정하겠습니다. 아래 명령을 사용하여 PHP 구성 파일을 엽니다:
|
1 |
sudo nano /etc/php5/apache2/php.ini |
다음 두 가지 변수를 모두 비활성화합니다: expose_php 및 allow_url_fopen 변수:
|
1 2 3 4 5 |
. . . expose_php = Off . . . allow_url_fopen = Off . . . |
파일을 저장하고 닫습니다. 이제 다음 단계로 진행할 준비가 되었습니다.
Apache에서 Htaccess 파일 수정하기
Drupal은 사용자가 이해하기 쉽도록 URL을 수정해야 합니다. 이를 위해 URL 재작성(rewrite) 권한이 필요합니다. 다행히 재작성을 위한 mod_rewrite 모듈이 Apache에 기본적으로 포함되어 있습니다. 이 모듈을 활성화하기만 하면 됩니다. 아래 명령을 실행하여 이 모듈을 활성화합니다:
|
1 |
sudo a2enmod rewrite |
다음으로 가상 호스트 설정을 업데이트해야 합니다. Drupal이 .htaccess 파일에 액세스할 수 있도록 이 작업을 수행해야 합니다. 아래 명령을 실행하여 virtualhost 파일을 엽니다:
|
1 |
sudo nano /etc/apache2/sites-enabled/000-default.conf |
다음 블록 내에서: virtualhost 설정을 사용하여 웹 루트를 가리키는 폴더를 추가합니다. 여기서는 AllowOverride를 All로 설정합니다. 도메인 이름이 있는 경우 ServerName 지시문을 추가하고, ServerAdmin 지시문을 유효한 이메일 주소를 반영하도록 변경할 수 있습니다:
|
1 2 3 4 5 6 7 8 9 10 11 |
<VirtualHost *:80> . . . ServerName example.com ServerAdmin webmaster@example.com DocumentRoot /var/www/html <Directory /var/www/html> AllowOverride All </Directory> . . . </VirtualHost> |
파일을 저장하고 닫습니다. 이제 모든 준비가 끝났습니다. 변경 사항을 적용하려면 Apache와 PHP를 재시작하기만 하면 됩니다:
|
1 |
sudo service apache2 restart |
Drupal 설치하기
여기서는 웹 루트에 Drupal을 설치합니다. Drupal 파일의 압축을 풀고 복사본을 만들 것입니다. 그 후, 이 복사된 파일들을 대상 디렉토리로 복사합니다. 이렇게 하면 문제가 발생할 경우를 대비한 파일 백업본을 확보할 수 있습니다.
Drupal을 다운로드하려면 https://www.drupal.org/project/drupal를 엽니다. Recommended releases 섹션 아래에서 원하는 릴리스를 찾으십시오. 그런 다음, tar.gz 파일의 주소를 복사합니다. 서버에서 wget 유틸리티를 사용하여 이 파일을 다운로드할 수 있습니다. 터미널에서 아래 명령을 실행하여 복사한 링크 주소를 가져옵니다:
|
1 2 |
cd ~ wget <your link> |
파일이 다운로드되면 다음을 입력하여 애플리케이션 디렉토리의 압축을 풉니다:
|
1 |
tar xzvf drupal* |
이제 아래 명령을 사용하여 새로 생성된 디렉토리로 이동합니다:
|
1 |
cd drupal* |
아래 명령을 실행하여 이 디렉토리의 모든 파일을 웹 루트로 복사합니다:
|
1 |
sudo rsync -avz . /var/www/html |
파일이 복사되면 아래 명령을 실행하여 웹 루트로 이동합니다:
|
1 |
cd /var/www/html |
Drupal 파일을 설치하기 쉽고 안전하게 만들기
웹 기반 설치 스크립트를 통해 Drupal을 설치하는 경우, Drupal 디렉토리를 수정해야 합니다. 이로 인해 브라우저와 명령줄을 번갈아 가며 작업해야 할 수 있습니다. 이 방식으로도 설치할 수 있지만, 더 좋은 방법은 파일을 약간 수정하여 이러한 번거로움을 없애는 것입니다.
하위 트리 sites/default 아래에 다음과 같은 이름으로 새 디렉토리를 생성합니다: files:
|
1 |
mkdir /var/www/html/sites/default/files |
기본 설정 파일을 Drupal이 활성 구성에 사용하는 파일 이름으로 복사합니다:
|
1 |
cp /var/www/html/sites/default/default.settings.php /var/www/html/sites/default/settings.php |
설치를 완료하려면 활성 설정 파일에 권한을 더 부여해야 합니다. 이 설정은 나중에 되돌릴 것입니다. 아래 명령을 실행하여 그룹 소유자에게 쓰기 권한을 부여합니다::
|
1 |
chmod 664 /var/www/html/sites/default/settings.php |
파일의 그룹 소유권을 웹 사용자에게 부여합니다. Ubuntu의 경우 www-data입니다. 전체 Drupal 설치에 이러한 소유권 속성이 필요합니다:
|
1 |
sudo chown -R :www-data /var/www/html/* |
이제 다음 단계로 진행할 수 있습니다.
웹 기반 설치 완료하기
이제부터는 브라우저를 사용합니다. 단계는 쉽고 빠릅니다. 브라우저에 서버의 도메인 또는 IP를 입력하십시오:
|
1 |
http://server_domain_or_ip/ |
Drupal 시작 페이지가 표시됩니다:

대부분의 경우 Standard가 기본 옵션입니다. 특정 사용 사례에서 필요한 경우 Manual을 선택하십시오. Standard를 선택한 후, Save and Continue를 클릭합니다. 몇 가지 프롬프트가 더 나타납니다. 계속해서 Next 및 기본 옵션을 수락하며 데이터베이스 구성 페이지에 도달할 때까지 진행합니다. 이 페이지에서 데이터베이스 정보를 입력하라는 요청을 받게 됩니다. 위에서 사용했던 이 페이지의 사용자 및 비밀번호 및 데이터베이스 정보를 입력하십시오:

다음을 클릭하십시오: Save and Continue. 동일한 데이터베이스 구성 페이지로 다시 리디렉션되는 경우 페이지를 새로 고침하십시오. 데이터베이스 설정이 구성되고 프로필이 설치됩니다.
웹사이트에 대한 몇 가지 추가 정보를 입력하라는 요청을 받게 됩니다. 또한 상단에 설정 파일의 권한을 변경해도 괜찮다는 프롬프트가 표시됩니다. 이 작업은 잠시 동안만 수행한 다음 변경 사항을 되돌릴 것입니다. 웹사이트의 보안을 위태롭게 하고 싶지 않기 때문입니다. 웹사이트에 필요한 정보를 입력하십시오:

설치를 완료하려면 Save and Continue를 한 번 더 클릭해야 합니다. IP/도메인을 입력하여 사이트를 여십시오. 환영 페이지가 표시됩니다:

이것으로 Drupal 설치가 완료되었습니다. 이제 무단 사용을 방지하기 위해 설정 권한을 되돌리겠습니다. 터미널에서 아래 명령을 실행하여 이를 제한하십시오:
|
1 |
chmod 644 /var/www/html/sites/default/settings.php |
문제 해결
Drupal 설치가 완료되었는지 확인해야 합니다. 마지막 단계가 완료되지 않은 경우 아래 명령을 실행하십시오:
|
1 |
sudo tail /var/log/apache2/error.log |
이렇게 하면 로그 파일이 열립니다. 다음으로 파일에서 아래 로그를 찾을 수 있는지 확인하십시오:
|
1 2 |
PHP Fatal error: Call to undefined function field_attach_load() in /var/www/html/includes/entity.inc on line 316, referer: http://12.34.56.78/install.php?profile=standard&locale=en sh: 1: /usr/sbin/sendmail: not found |
위의 줄이 있으면 설치가 성공하지 못했음을 나타냅니다. 이 오류를 제거하기 위해 Drupal은 다음 문서에서 실마리를 제공했습니다: https://www.drupal.org/node/481758
위에서 언급한 오류의 일반적인 원인은 max_execution_time 설정 때문입니다. 이를 늘리려면 아래 명령을 사용하여 php.ini 파일을 여십시오:
|
1 |
sudo nano /etc/php5/apache2/php.ini |
다음으로, max_execution_time을 찾아 아래와 같이 변경하십시오:
|
1 |
max_execution_time = 300 |
자체 데이터베이스를 사용하고 있으므로 Drupal의 기본 데이터베이스와 기존 PHP 설정 파일인 /var/www/html/default/settings.php을 삭제해야 합니다. 그 후 기본 복사본으로 교체하고 설치를 다시 시작하십시오. 예방 조치로 백업을 생성하는 것을 잊지 마십시오.
기존 Drupal 데이터베이스를 삭제하려면 MySQL 데이터베이스에 로그인하고 아래 명령을 실행하십시오:
|
1 |
DROP DATABASE drupal; |
그런 다음 위에서 설명한 대로 데이터베이스를 생성하고 권한을 부여하십시오. 또 다른 옵션은 cp /var/www/html/sites/default/default.settings.php /var/www/html/sites/default/settings.php를 다시 실행하여 설정 파일을 교체하는 것입니다. 또한 chmod 664 /var/www/html/sites/default/settings.php 명령을 실행하여 올바른 권한을 다시 설정해야 합니다. 이제 IP에 접속하여 다시 설치를 시도하십시오.
결론
이 튜토리얼에서는 Ubuntu를 실행하는 머신에 Drupal을 설정하는 방법을 배웠습니다. 이를 통해 Drupal CMS를 시작하기 위한 탄탄한 기반을 마련할 수 있습니다. Drupal 설정을 완료하면 처음부터 모든 것을 코딩할 필요 없이 고도로 맞춤 설정할 수 있는 웹사이트를 운영하는 데 도움이 될 수 있습니다.
또 다른 유용한 CMS인 WordPress에 대해 자세히 알아보려면 다음 튜토리얼을 확인하십시오:
- Ubuntu 20.04에서 Docker 컨테이너로 WordPress를 배포하는 방법
- Ubuntu 20.04에서 LAMP를 사용하여 WordPress를 설치하는 방법
- 웹사이트를 위해 WordPress 클라우드 호스팅을 선택해야 하는 이유는 무엇일까요?
- WordPress에서 CloudSigma PaaS로 웹사이트를 마이그레이션하는 방법
즐거운 컴퓨팅 되세요!
댓글
아직 댓글이 없습니다. 첫 번째로 작성해 보세요.