웹사이트 검색

Apache를 사용하여 Ubuntu 14.04 서버에 Drupal을 설치하는 방법


소개

Drupal은 인터넷에서 가장 큰 블로그와 웹사이트를 운영하는 데 사용되는 인기 있는 콘텐츠 관리 시스템(CMS)입니다. 기반의 안정성, 플랫폼의 적응성 및 활성 커뮤니티로 인해 Drupal은 10년 이상 현장에서 인기 있는 선택으로 남아 있습니다.

이 가이드에서는 Ubuntu 14.04 서버에 Drupal을 설치하는 방법을 설명합니다. Drupal 팀에서 권장하는 구성이므로 Apache를 사용하여 사이트를 제공할 것입니다.

전제 조건

이 가이드를 시작하기 전에 몇 가지 기본 구성이 완료된 Ubuntu 14.04 서버가 필요합니다. Ubuntu 14.04 초기 서버 설정 가이드에 따라 sudo 권한이 설정된 비루트 사용자를 얻으십시오.

또한 서버에 Apache, PHP 및 MySQL이 구성되어 있어야 합니다. Ubuntu 14.04에 LAMP를 설치하는 방법에 대한 가이드를 따라 이를 설정하는 방법을 배울 수 있습니다.

위의 요구 사항을 충족했으면 이 가이드를 계속 진행하세요.

Drupal 파일을 가져와 웹 디렉토리에 설치하기 전에 시스템을 준비해야 합니다. Apache, PHP 및 MySQL이 이미 설치되어 있지만 추가로 변경하고 설치를 위해 이들 각각에 약간의 조정을 해야 합니다.

Drupal용 MySQL 사용자 및 데이터베이스 구성

가장 먼저 할 일은 Drupal 설치에서 사용할 MySQL 사용자 및 데이터베이스를 구성하는 것입니다. 보안상의 이유로 전용 사용자 및 데이터베이스를 구성하는 것이 중요합니다.

시작하려면 MySQL에 로그인합니다.

mysql -u root -p

해당 소프트웨어를 설치하는 동안 구성한 MySQL 루트 사용자 암호를 입력하라는 메시지가 표시됩니다.

인증에 성공하면 MySQL 프롬프트로 이동됩니다. 먼저 사용할 Drupal 설치용 데이터베이스를 생성합니다. 단순화를 위해 데이터베이스를 drupal이라고 합니다.

CREATE DATABASE drupal;

다음으로 Drupal 소프트웨어가 데이터베이스에 연결하는 데 사용할 수 있는 사용자를 생성해야 합니다. 이 가이드에서는 사용자를 drupaluser라고 합니다. 아래 블록에 있는 암호를 대체할 강력한 암호를 선택하십시오.

CREATE USER drupaluser@localhost IDENTIFIED BY 'password';

이제 데이터베이스와 사용자가 있지만 사용자는 아직 데이터베이스에서 작업을 수행할 수 있는 권한이 없습니다. 사용자 권한을 부여하여 문제를 해결할 수 있습니다. Drupal이 제대로 작동하려면 다양한 권한이 필요합니다. 다음은 데이터베이스를 불필요하게 노출하지 않고 소프트웨어가 작동할 수 있도록 하는 좋은 선택입니다.

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,CREATE TEMPORARY TABLES,LOCK TABLES ON drupal.* TO drupaluser@localhost;

이제 귀하의 사용자에게 우리가 생성한 데이터베이스를 관리할 수 있는 권한이 부여되었습니다. 지금 당장 이러한 변경 사항을 구현하려면 권한 정보를 디스크로 플러시해야 합니다.

FLUSH PRIVILEGES;

이제 대화형 MySQL 세션을 종료할 수 있습니다.

exit

bash 세션으로 되돌아갑니다.

PHP 모듈 설치 및 구성 조정

다음으로 Drupal 애플리케이션에 필요한 몇 가지 PHP 모듈을 설치합니다. 다행히 우분투의 기본 리포지토리에 있습니다.

로컬 패키지 캐시를 업데이트하고 다음을 입력하여 설치합니다.

sudo apt-get update
sudo apt-get install php5-gd php5-curl libssh2-php

또한 PHP 구성 파일에 몇 가지 작은 조정을 할 것입니다. 이들은 Drupal 개발자가 권장합니다. 텍스트 편집기에서 sudo 권한으로 Apache PHP 구성 파일을 엽니다.

sudo nano /etc/php5/apache2/php.ini

expose_php 지시어와 allow_url_fopen 지시어를 검색하고 모두 "Off\로 설정합니다.

. . .
expose_php = Off
. . .
allow_url_fopen = Off
. . .

완료되면 파일을 저장하고 닫습니다.

Apache에서 재작성 기능 및 Htaccess 파일 활성화

다음으로 Apache를 살펴보겠습니다. 먼저 재작성 기능을 활성화하려고 합니다. 이렇게 하면 Drupal 사이트에서 URL을 사람에게 친숙한 문자열로 수정할 수 있습니다.

실제 Apache mod_rewrite 모듈은 기본적으로 이미 설치되어 있습니다. 그러나 사용할 수 없습니다. 다음을 입력하여 스위치를 뒤집어 해당 모듈을 활성화할 수 있습니다.

sudo a2enmod rewrite

이렇게 하면 다음에 Apache를 다시 시작할 때 모듈이 활성화됩니다. Apache를 다시 시작하기 전에 .htaccess 파일을 사용할 수 있도록 가상 호스트 구성을 조정해야 합니다. 이 파일에는 실제 재작성 규칙이 포함되며 기본적으로 Drupal 설치에 포함됩니다.

지금 기본 가상 호스트 파일을 엽니다.

sudo nano /etc/apache2/sites-enabled/000-default.conf

"VirtualHost\ 블록 내에서 웹 루트를 가리키는 디렉터리 블록을 추가합니다. 이 블록 내에서 AllowOverride 지시어를 "All\로 설정합니다. 도메인 이름을 가리키도록 ServerName 지시어를 추가하고 유효한 이메일 주소를 반영하도록 ServerAdmin 지시어를 변경할 수도 있습니다.

<VirtualHost *:80>
    . . .
    ServerName  example.com
    ServerAdmin webmaster@example.com
    DocumentRoot /var/www/html

    <Directory /var/www/html>
        AllowOverride All
    </Directory>
    . . .
</VirtualHost>

완료되면 파일을 저장하고 닫습니다.

이제 Apache 및 PHP에 대한 변경 사항을 구현하기 위해 웹 서버를 다시 시작하기만 하면 됩니다.

sudo service apache2 restart

드루팔 파일 설치

이제 시스템이 준비되었으므로 Drupal을 웹 루트에 설치할 수 있습니다.

사실 처음에는 파일을 홈 디렉토리에 압축을 푼 다음 적절한 위치에 복사합니다. 이렇게 하면 문제가 발생하거나 나중에 파일이 실수로 삭제되는 경우 원본 파일에 즉시 액세스할 수 있습니다.

Drupal 다운로드 페이지로 이동하여 "권장 릴리스\ 섹션에서 최신 버전을 확인하십시오. 관심 있는 버전의 tar.gz 링크를 마우스 오른쪽 버튼으로 클릭하고 "링크 주소 복사\를 선택하거나 귀하의 브라우저가 제공하는 유사한 옵션이 무엇이든 상관없습니다.

서버로 돌아가서 홈 디렉토리로 변경하고 wget을 사용하여 복사한 링크를 사용하여 프로젝트 파일을 다운로드합니다.

cd ~
wget http://ftp.drupal.org/files/projects/drupal-7.32.tar.gz

링크 끝에 다른 버전 번호가 있을 수 있습니다. 파일이 다운로드되면 다음을 입력하여 애플리케이션 디렉토리를 추출합니다.

tar xzvf drupal*

이제 새로 추출된 디렉토리 구조로 이동하고 rsync 유틸리티를 사용하여 모든 파일을 서버의 웹 루트 디렉토리에 안전하게 복사하십시오. 이 명령에서 점을 사용하여 현재 디렉터리를 지정합니다. 이것은 필요한 일부 숨겨진 파일을 복사하기 위해 필요합니다.

cd drupal*
sudo rsync -avz . /var/www/html

이제 파일을 참조해야 하는 경우를 대비하여 홈 폴더 내의 디렉토리에 파일의 원래 버전이 있습니다. 설치를 사용자 정의하기 위해 웹 루트 디렉토리로 이동합니다.

cd /var/www/html

보안 및 설치 용이성을 위해 Drupal 파일 조정

웹 기반 설치 스크립트는 프로세스를 올바르게 완료하기 위해 Drupal 디렉토리를 일부 변경해야 합니다. 웹 브라우저와 명령줄 간에 전환할 필요가 없도록 사전에 이를 제거해야 합니다.

먼저 files라는 하위 트리 sites/default 아래에 새 디렉토리를 만들어야 합니다.

mkdir /var/www/html/sites/default/files

다음으로 기본 설정 파일을 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

다음으로 파일의 그룹 소유권을 웹 사용자에게 부여해야 합니다. Ubuntu에서는 www-data입니다. 전체 Drupal 설치에 다음과 같은 소유권 속성을 부여하려고 합니다.

sudo chown -R :www-data /var/www/html/*

이제 웹 기반 설치 스크립트를 실행하도록 서버가 적절하게 구성되었습니다.

웹 기반 설치 절차 완료

나머지 설치는 웹 브라우저에서 수행됩니다. 브라우저를 열고 서버의 도메인 이름 또는 IP 주소로 이동합니다.

http://server_domain_or_IP

Drupal 설치 절차의 초기 페이지가 표시됩니다.

특별한 이유가 없다면 "표준\ 설치를 선택하고 "저장하고 계속하기\를 클릭하십시오. 데이터베이스 구성 페이지에 도달할 때까지 다음 몇 개의 계속 단추를 클릭하십시오. 데이터베이스와 사용자를 구성할 때 사용한 세부 정보를 입력합니다.

이 가이드에서는 drupal이라는 데이터베이스, drupaluser라는 데이터베이스 사용자 및 password라는 암호를 사용했습니다. 사용자 생성 단계에서 다른 비밀번호를 선택했어야 합니다. 데이터베이스 세부 정보를 입력했으면 "저장하고 계속하기\를 다시 클릭하십시오.

참고: "저장하고 계속하기\를 클릭하면 동일한 데이터베이스 구성 페이지로 다시 리디렉션될 수 있습니다. 이 경우 페이지를 새로 고치십시오. 데이터베이스가 구성되고 프로필이 설치됩니다. .

이제 설정 파일의 권한을 변경하는 것이 적절하다는 정보 상자가 페이지 상단에 표시됩니다. 우리는 이것을 일시적으로 할 것입니다. 지금은 사이트에 대한 몇 가지 기본 정보를 설정해야 합니다. 사이트에 적합한 값을 사용하여 필드를 채우십시오.

"저장하고 계속하기\ 버튼을 마지막으로 클릭하여 설치를 완료합니다. 이제 도메인 이름으로 이동하여 사이트를 방문할 수 있습니다.

Drupal 설치를 성공적으로 완료했습니다.

그러나 권한이 없는 사용자가 변경할 수 없도록 설정 파일에 대한 권한을 되돌려야 합니다. 서버에서 다음을 입력하여 파일에 대한 쓰기 액세스를 제한합니다.

chmod 644 /var/www/html/sites/default/settings.php

이렇게 하면 설정 파일에 대한 추가 변경 사항이 잠깁니다.

문제 해결

Drupal 설치의 마지막 단계가 완료되지 않으면 오류 로그를 확인하십시오.

sudo tail /var/log/apache2/error.log

다음과 같은 오류가 표시되는 경우:

[Wed Nov 12 13:40:10.566144 2014] [:error] [pid 7178] [client 108.29.37.206:55238] 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이 문서화한 이 오류에 대한 몇 가지 원인과 수정 사항이 있습니다.

가장 가능성이 높은 수정 사항에는 max_execution_time을 높이기 위한 /etc/php5/apache2/php.ini 파일 편집이 포함됩니다.

sudo nano /etc/php5/apache2/php.ini

파일:

max_execution_time = 300

Safari와 같은 Chrome 이외의 브라우저에서 브라우저 설치를 시도할 수도 있습니다. 브라우저 쿠키 설정이 설치를 방해할 수 있습니다.

그럼에도 불구하고 일단 수정 사항을 구현하면 기존 Drupal 데이터베이스와 기존 /var/www/html/sites/default/settings.php 파일을 제거하고 기본 복사본으로 교체한 다음 시작해야 합니다. 설치를 다시 합니다. 보존할 가치가 있는 데이터나 설정이 있으면 백업하십시오.

이렇게 하려면 MySQL에 로그인하고 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 주소를 다시 방문하고 최종 설치를 다시 시도하십시오.

결론

이제 Drupal 사이트를 구축할 수 있는 견고한 기반이 생겼습니다. Drupal은 매우 유연하여 귀하의 필요와 사용자의 필요에 따라 사이트의 모양과 기능을 사용자 정의할 수 있습니다.

여기에서 어디로 가야 할지 아이디어를 얻으려면 Drupal 태그 페이지를 방문하여 길을 따라가는 데 도움이 되는 자습서를 찾을 수 있습니다. 또한 커뮤니티에서 도움을 받거나 커뮤니티에 기여할 수 있는 질문 및 답변 영역을 찾을 수 있습니다.