참고:

MySQL 데이터베이스와 함께 Oracle Linux에 Drupal CMS 설치

소개

Drupal은 PHP로 작성된 웹 CMS(Content Management System)입니다. Drupal은 개인 블로그부터 기업, 정치 및 정부 사이트에 이르기까지 전 세계 웹 사이트를 위한 인프라를 제공합니다. 매우 확장 가능하고 모듈식이며 다양한 시나리오에서 사용할 수 있습니다.

이 워크샵을 시작점으로 사용하여 Oracle Linux 및 Oracle MySQL Database Service를 기반으로 전체 설치를 수행하십시오.

성공에 이르는 단계

이 워크샵에서는 다음과 같은 내용을 배우게 됩니다.

필요 조건

VCN 및 서브넷을 생성합니다.

Linux 인스턴스를 인터넷에 연결하도록 VCN(가상 클라우드 네트워크)을 설정합니다. 가상 네트워크를 생성하는 데 필요한 모든 구성요소를 구성합니다.

  1. 탐색 메뉴를 엽니다. Core Infrastructure 아래에서 Networking으로 이동하고 Virtual Cloud Networks를 누릅니다.

    왼쪽에 있는 컴파트먼트 목록에서 컴파트먼트(또는 사용자에게 지정된 컴파트먼트)가 선택되어 있는지 확인합니다.

  2. VCN 마법사 시작을 누릅니다.

  3. 인터넷 접속을 통한 VCN을 선택한 후 VCN 마법사 시작을 누릅니다.

  4. 다음을 입력합니다. 설명은 기울임꼴이며 시나리오의 값으로 바꿉니다.

    • 이름: 클라우드 네트워크의 이름 입력

    • COMPARTMENT: 원하는 구획을 선택합니다.

    • VCN CIDR 블록: 10.0.0.0/16

    • 공용 서브넷 CIDR 블록: 10.0.0.0/24

    • 프라이빗 서브넷 CIDR 블록: 10.0.1.0/24

    • DNS 해상도: 선택

      참고 공용 서브넷과 전용 서브넷은 다른 CIDR 블록을 사용합니다.

  5. Next를 누릅니다.

    Create a VCN with Internet Connection 구성 대화 상자가 표시되고 방금 입력한 모든 값을 확인하고 생성될 추가 구성 요소가 나열됩니다.

  6. 생성을 눌러 워크플로우를 시작합니다.

  7. 워크플로우가 완료되면 가상 클라우드 네트워크 보기를 누르면 생성한 VCN의 세부정보 페이지가 표시됩니다.

HTTP 수신 접속을 허용하도록 보안 목록을 구성합니다.

기본 보안 목록에서 포트 80/TCP 및 443/TCP의 수신 연결을 허용하는 규칙을 생성합니다.

  1. 새 VCN을 보려면 가상 클라우드 네트워크 보기를 누르십시오.

  2. 새 VCN이 표시된 상태에서 공용(public) 서브넷 링크를 누릅니다.

    공용 서브넷 정보는 페이지 아래쪽에 보안 목록과 함께 표시됩니다. VCN의 기본 보안 목록에 대한 링크가 있어야 합니다.

  3. Default Security List 링크를 누릅니다.

    VCN의 기본 수신 규칙이 표시됩니다.

  4. Add Ingress Rules를 누릅니다.

    수신 규칙 추가 대화상자가 표시됩니다.

  5. 다음을 입력합니다.

    • Stateless: 선택 안함

    • 소스 유형: CIDR

    • 소스 CIDR: 0.0.0.0/0

    • IP 프로토콜: TCP

    • 소스 포트 범위: (비어 있음)

    • 대상 포트 범위: 80

    • 설명: HTTP 연결 허용

      수신 규칙 추가를 누르면 인바운드 HTTP 접속이 허용됩니다.

  6. 1-4단계를 반복하여 다음을 입력합니다.

    • Stateless: 선택 안함

    • 소스 유형: CIDR

    • 소스 CIDR: 0.0.0.0/0

    • IP 프로토콜: TCP

    • 소스 포트 범위: (비어 있음)

    • 대상 포트 범위: 443

    • 설명: HTTPS 연결 허용

      수신 규칙 추가를 누르면 인바운드 HTTPS 연결이 허용됩니다.

MySQL 수신 접속을 허용하도록 보안 목록을 구성합니다.

전용 서브넷의 보안 목록-VCN 이름 보안 목록에서 3306/TCP 및 33060/TCP 포트에서 수신 연결을 허용하는 규칙을 생성합니다.

  1. 새 VCN을 보려면 가상 클라우드 네트워크 보기를 누르십시오.

  2. 새 VCN이 표시된 상태에서 전용 서브넷 링크를 누릅니다.

    전용 서브넷 정보는 페이지 아래쪽에 보안 목록과 함께 표시됩니다. 전용 서브넷의 전용 서브넷 보안 목록-VCN 이름에 대한 링크가 있어야 합니다.

  3. 전용 서브넷의 보안 목록-VCN 이름 링크를 누릅니다.

    VCN의 기본 수신 규칙이 표시됩니다.

  4. Add Ingress Rules를 누릅니다.

    수신 규칙 추가 대화상자가 표시됩니다.

  5. 다음을 입력합니다.

    • Stateless: 선택 안함
    • 소스 유형: CIDR
    • 소스 CIDR: 10.0.0.0/24
    • IP 프로토콜: TCP
    • 소스 포트 범위: (비어 있음)
    • 대상 포트 범위: 3306
    • 설명: MySQL 연결 허용

    수신 규칙 추가를 누르면 공용 서브넷의 인바운드 MySQL 접속이 허용됩니다.

  6. 1-4단계를 반복하여 다음을 입력합니다.

    • Stateless: 선택 안함
    • 소스 유형: CIDR
    • 소스 CIDR: 10.0.0.0/24
    • IP 프로토콜: TCP
    • 소스 포트 범위: (비어 있음)
    • 대상 포트 범위: 33060
    • 설명: MySQL X 연결 허용

    수신 규칙 추가를 누르면 공용 서브넷의 인바운드 MySQL X 접속이 허용됩니다.

Oracle MySQL Database Service 생성 및 구성

Oracle MySQL Database Service 필수 정책 생성

: Oracle에서 제공하는 무료 실습 랩을 사용 중인 경우 이 정책을 생성할 필요가 없습니다. Create your Oracle MySQL Database Service 섹션으로 이동할 수 있습니다.

  1. 탐색 메뉴를 엽니다. 거버넌스 및 관리에서 ID로 이동하고 정책을 누릅니다.

  2. Policies 페이지의 List Scope에서 Compartment(root)를 선택하고 Create Policy 버튼을 누릅니다.

  3. 다음 정보를 입력합니다.

    • 이름: policy name
    • 구획: (root)
  4. 정책 작성기에서 사용자 정의(고급)를 누릅니다.

  5. 다음과 같은 필수 MySQL Database Service 정책을 입력합니다.

    정책 문

    • 테넌시에서 {COMPARTMENT_INSPECT}(으)로 관리자 그룹 허용
    • 테넌시에서 Administrators 그룹이 {VCN_READ, SUBNET_READ, SUBNET_ATTACH, SUBNET_DETACH} 수행하도록 허용
    • 테넌시에서 Administrators 그룹이 mysql-family를 관리하도록 허용
  6. Create를 누릅니다.

Oracle MySQL Database Service 생성

  1. 탐색 메뉴를 엽니다. 데이터베이스에서 MySQL로 이동하고 DB Systems를 누릅니다.

  2. DB 시스템 페이지에서 구획을 선택하고 MySQL DB 시스템 생성을 누릅니다.

  3. 다음 정보를 입력합니다.

    • 이름: DB system name
    • 설명: MySQL system Description
    • 구획: 구획 선택
    • 가용성 도메인 선택: select the availability domain
    • 결함 도메인: 선택사항입니다. 선택하지 않은 상태로 둘 수 있음
    • 구성 선택: Change Shape을 눌러 원하는 구성 선택
    • 데이터 스토리지 크기(GB): 원하는 스토리지 크기를 입력합니다.
    • 유지보수 기간 시작 시간: 없음
  4. 다음을 눌러 데이터베이스 정보 화면으로 진행합니다.

  5. 다음 정보를 입력합니다.

    • 사용자 이름: administrator user name
    • 암호: admin password
    • 암호 확인: admin password
    • 가상 클라우드 네트워크 위치: VCN 구획 선택
    • 가상 클라우드 네트워크: 전용 VCN 선택
    • 호스트 이름: hostname name
    • MySQL 포트: 3306
    • MySQL X 프로토콜 포트: 33060
  6. 다음을 눌러 백업 정보 화면으로 진행합니다.

  7. 다음 정보를 입력합니다.

    • Enable Automatic Backups: checked
    • 백업 보존 기간: 7
    • 기본 백업 기간: checked
  8. MySQL DB 시스템의 세부정보 페이지로 이동합니다. 노란색 육각형이 녹색으로 바뀌면 DB 시스템이 프로비저닝되고 작동되어 실행됩니다.

VM 컴퓨트 인스턴스 생성 및 Apache/PHP 구성

Apache 웹 서버를 호스팅할 Oracle Linux 인스턴스를 생성합니다.

  1. Oracle Cloud Infrastructure 기본 메뉴를 엽니다.

  2. Compute(컴퓨트), Instances(인스턴스)를 차례로 선택합니다.

  3. 인스턴스 목록 화면에서 인스턴스 생성을 누릅니다.

  4. 인스턴스 이름을 입력합니다.

  5. 인스턴스를 생성할 구획을 선택합니다.

  6. Configure placement and hardware 섹션에서 다음을 완료합니다.

    • 가용성 도메인: 인스턴스를 생성하려는 가용성 도메인 선택
    • 결함 도메인: 선택사항입니다. 선택하지 않은 상태로 둘 수 있음
    • 이미지: Latest Oracle Linux(기본적으로 지원되는 최신 버전은 이미 선택됨)
    • 구성: 원하는 구성 선택
  7. 네트워킹 구성 섹션에서 다음을 완료합니다.

    • 네트워크 기존 가상 클라우드 네트워크 선택
    • 가상 클라우드 네트워크 위치: 원하는 VCN이 있는 구획 선택
    • 네트워크: 가상 네트워크 클라우드 네트워크 선택
    • 서브넷 위치: 원하는 VCN이 있는 구획 선택
    • 서브넷: 공용 서브넷 선택 *
    • 네트워크 보안 그룹을 사용해서 트래픽 제어:unchecked
    • 공용 IP 주소: 공용 IPv4 주소 지정
  8. SSH 키 추가 섹션에서 다음을 수행합니다.

    SSH 키 쌍이 없을 경우:

    1. SSH 키 쌍 생성을 선택합니다.
    2. 전용 키 저장을 누르고 브라우저 프롬프트에 따라 전용 키를 저장합니다.
    3. 공용 키 저장을 누르고 브라우저 프롬프트에 따라 공용 키를 저장합니다.

    공용(public) 키가 있는 경우 다음을 수행할 수 있습니다.

    1. 공개 키 파일 선택을 선택합니다.
    2. 공용 키 파일을 끌어 놓거나 또는 위치를 찾아봅니다. 위치를 찾고 파일을 선택합니다. 또는
    3. 공개 키 붙여넣기를 선택합니다.
    4. 공용 키 값을 SSH 키에 붙여넣습니다(다른 키를 눌러 여러 키를 추가할 수 있음).
  9. 부트 볼륨 구성에서 모든 옵션을 선택하지 않은 상태로 둡니다.

  10. Create를 누릅니다.

  11. 인스턴스의 세부정보 페이지로 이동합니다. 노란색 사각형이 녹색으로 바뀌면 인스턴스가 프로비저닝되고 작동되어 실행됩니다.

PHP로 Apache HTTP Server 설치 및 구성

  1. Oracle Cloud Infrastructure 기본 메뉴를 엽니다.

  2. Compute(컴퓨트), Instances(인스턴스)를 차례로 선택합니다.

  3. 인스턴스 목록에서 HTTP 서버를 구성할 인스턴스 이름을 누릅니다.

  4. 인스턴스 세부정보가 로드되면 오른쪽의 인스턴스 액세스에서 공용 IP 주소를 찾습니다. 공용 IP 액세스를 복사합니다.

  5. 터미널(Cloud Shell 또는 기타 SSH 사용 터미널)에서 인스턴스에 연결합니다.

    ssh -i </path/private key file> opc@<instance's public IP>
    
    
  6. Apache HTTP Server 및 php를 설치합니다. 종속성이 자동으로 확인되어 설치됩니다.

    sudo yum install -y httpd
    
    
  7. Apache HTTP Server를 사용으로 설정하고 시작합니다.

    sudo systemctl enable httpd --now
    
    
  8. 로컬 iptables 방화벽에서 HTTP 및 HTTPS를 허용합니다.

    sudo firewall-cmd --permanent --add-port=80/tcp
    sudo firewall-cmd --permanent --add-port=443/tcp
    sudo firewall-cmd --reload
    
    
  9. 추가 저장소 추가:

    sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    sudo yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
    sudo yum-config-manager --enable remi-php74
    
  10. PHP를 설치합니다.

    sudo yum install -y php
    sudo systemctl restart httpd
    
  11. 테스트 php 페이지를 생성합니다.

    echo -e '<?php \nphpinfo();' | sudo tee /var/www/html/test.php
    
  12. 웹 브라우저에서 http://public server IP/test.php로 이동합니다.

MySQL 및 MySQL 셸 설치

  1. MySQL 릴리스 패키지를 설치합니다.

    sudo yum -y install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
    
  2. MySQL 셸을 설치합니다.

    sudo yum -y install mysql-shell
    

Drupal CMS 설치

Oracle Linux 인스턴스에 Drupal 설치

  1. SSH 사용 터미널에서 SSH를 눌러 Drupal이 설치될 Oracle Linux 인스턴스로 이동합니다.

    ssh -i <path/private key> opc@<instance public IP>
    
  2. Drupal 필수 패키지를 설치합니다.

    sudo yum install -y  php-mbstring php-gd php-xml php-pear php-fpm php-mysql php-pdo php-opcach
    sudo systemctl restart httpd   
    
  3. httpd.conf를 편집합니다.

    sudo vim /etc/httpd/conf/httpd.conf
    
  4. <Directory "/var/www/html"> 섹션을 찾아 해당 섹션에서 AllowOverride AllAllowOverride None으로 변경합니다. 파일을 찾을 때까지 파일을 탐색하거나 "/"를 누르고 Options Indexes FollowSymLinks를 입력할 수 있습니다.

  5. Apache를 다시 시작합니다.

    sudo systemctl restart httpd
    
  6. Drupal 웹 사이트에서 Drupal을 다운로드합니다.

    curl -L -o drupallatest.tar.gz  https://www.drupal.org/download-latest/tar.gz
    
  7. latest.tar.gz를 /var/www/html(Apache 문서 루트)에 추출합니다.

    sudo tar zxf drupallatest.tar.gz -C /var/www/html/ --strip 1
    
  8. 소유권을 조정합니다.

    sudo chown apache. -R /var/www/html/
    
  9. settings.php를 생성합니다.

    cd /var/www/html/sites/default/
    cp default.settings.php settings.php
    
  10. 소유권을 조정합니다.

sudo chown apache. -R /var/www/html/
  1. SE Linux를 조정합니다.
sudo chcon -R -t httpd_sys_content_rw_t /var/www/html/sites/
  1. Apache가 외부 데이터베이스에 접속하도록 허용합니다.
sudo setsebool -P httpd_can_network_connect_db 1
  1. MySQL 셸을 사용하여 MDS 데이터베이스에 연결합니다.
mysqlsh --sql -u admin -h <MDS end point IP>
  1. Drupal 데이터베이스 및 사용자를 생성합니다.
create database drupal;
create user drupaluser IDENTIFIED BY 'ComplexPass0rd!';
GRANT ALL PRIVILEGES ON drupal.* To drupaluser;
\quit
  1. 브라우저에서 http://instance public IP/에 액세스합니다.

  2. 언어를 선택하고 저장 후 계속을 누릅니다.

  3. 설치 프로파일을 선택하고 표준 프로파일을 선택한 다음 저장 후 계속을 누릅니다.

  4. 모든 설정이 올바르면 데이터베이스 구성 페이지가 표시됩니다. 다음 정보를 입력합니다.

    • 데이터베이스 유형: MySQL, MariaDB, Percona Server 또는 동급
    • 데이터베이스 이름: drupal
    • 데이터베이스 사용자 이름: drupaluser
    • 데이터베이스 비밀번호: ComplexPass0rd! 고급 옵션을 확장합니다.
    • 호스트: MDS IP 주소
  5. Install site를 누릅니다.

  6. 다음 정보를 입력하여 사이트를 구성합니다.

    • 사이트 이름: 사이트 이름 선택
    • 사이트 전자 메일 주소: 사이트에서 보낸 자동 전자 메일의 전자 메일 계정
    • 사용자 이름: Drupal 관리자
    • 비밀번호: Drupal 관리자 비밀번호
    • 암호 확인: 암호 확인
    • 전자메일 주소: 전자메일 주소
    • 기본 국가: 국가 선택
    • 기본 시간대: 시간대 선택
    • 자동으로 업데이트 확인: 선택됨
    • 전자 메일 통지 받기: 선택 해제
  7. Save and continue를 누릅니다.

  8. 브라우저 액세스 http://인스턴스 공용 IP/에서 관리 사용자로 로그인하고 웹 사이트 사용자정의를 시작합니다.

감사의 글

Authors: Orlando Gentil 및 Frédéric Descamps

추가 학습 자원

docs.oracle.com/learn의 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 접근할 수 있습니다. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer로 전환할 수 있습니다.

제품 설명서는 Oracle Help Center를 참조하십시오.