참고:
- 이 자습서는 Oracle에서 제공하는 무료 실습 환경에서 사용할 수 있습니다.
- Oracle Cloud Infrastructure 인증서, 테넌시 및 구획에 예제 값을 사용합니다. 실습을 마치면 이 값을 클라우드 환경에 고유한 값으로 대체하십시오.
MySQL 데이터베이스와 함께 Oracle Linux에 Drupal CMS 설치
소개
Drupal은 PHP로 작성된 웹 CMS(Content Management System)입니다. Drupal은 개인 블로그부터 기업, 정치 및 정부 사이트에 이르기까지 전 세계 웹 사이트를 위한 인프라를 제공합니다. 매우 확장 가능하고 모듈식이며 다양한 시나리오에서 사용할 수 있습니다.
이 워크샵을 시작점으로 사용하여 Oracle Linux 및 Oracle MySQL Database Service를 기반으로 전체 설치를 수행하십시오.
성공에 이르는 단계
이 워크샵에서는 다음과 같은 내용을 배우게 됩니다.
- VCN 및 서브넷 생성
- Linux 인스턴스 생성
- Apache HTTP Server 설치 및 구성
- MySQL Database Service 인스턴스 생성 및 채우기
- Drupal 설치 및 구성
필요 조건
- Oracle Cloud Infrastructure 계정이 필요합니다.
- 웹 브라우저
- SSH Terminal - Cloud Shell(OCI 콘솔에서 제공) 또는 SSH(Linux 또는 MAC)가 있는 터미널, GitBash/Putty 또는 WSL이 있는 Windows 시스템(Linux용 Windows 서브시스템)
가상 클라우드 네트워크 및 관련 구성요소 생성
VCN 및 서브넷을 생성합니다.
Linux 인스턴스를 인터넷에 연결하도록 VCN(가상 클라우드 네트워크)을 설정합니다. 가상 네트워크를 생성하는 데 필요한 모든 구성요소를 구성합니다.
-
탐색 메뉴를 엽니다. Core Infrastructure 아래에서 Networking으로 이동하고 Virtual Cloud Networks를 누릅니다.
왼쪽에 있는 컴파트먼트 목록에서 컴파트먼트(또는 사용자에게 지정된 컴파트먼트)가 선택되어 있는지 확인합니다.
-
VCN 마법사 시작을 누릅니다.
-
인터넷 접속을 통한 VCN을 선택한 후 VCN 마법사 시작을 누릅니다.
-
다음을 입력합니다. 설명은 기울임꼴이며 시나리오의 값으로 바꿉니다.
-
이름: 클라우드 네트워크의 이름 입력
-
COMPARTMENT: 원하는 구획을 선택합니다.
-
VCN CIDR 블록: 10.0.0.0/16
-
공용 서브넷 CIDR 블록: 10.0.0.0/24
-
프라이빗 서브넷 CIDR 블록: 10.0.1.0/24
-
DNS 해상도: 선택
참고 공용 서브넷과 전용 서브넷은 다른 CIDR 블록을 사용합니다.
-
-
Next를 누릅니다.
Create a VCN with Internet Connection 구성 대화 상자가 표시되고 방금 입력한 모든 값을 확인하고 생성될 추가 구성 요소가 나열됩니다.
-
생성을 눌러 워크플로우를 시작합니다.
-
워크플로우가 완료되면 가상 클라우드 네트워크 보기를 누르면 생성한 VCN의 세부정보 페이지가 표시됩니다.
HTTP 수신 접속을 허용하도록 보안 목록을 구성합니다.
기본 보안 목록에서 포트 80/TCP 및 443/TCP의 수신 연결을 허용하는 규칙을 생성합니다.
-
새 VCN을 보려면 가상 클라우드 네트워크 보기를 누르십시오.
-
새 VCN이 표시된 상태에서 공용(public) 서브넷 링크를 누릅니다.
공용 서브넷 정보는 페이지 아래쪽에 보안 목록과 함께 표시됩니다. VCN의 기본 보안 목록에 대한 링크가 있어야 합니다.
-
Default Security List 링크를 누릅니다.
VCN의 기본 수신 규칙이 표시됩니다.
-
Add Ingress Rules를 누릅니다.
수신 규칙 추가 대화상자가 표시됩니다.
-
다음을 입력합니다.
-
Stateless: 선택 안함
-
소스 유형: CIDR
-
소스 CIDR: 0.0.0.0/0
-
IP 프로토콜: TCP
-
소스 포트 범위: (비어 있음)
-
대상 포트 범위: 80
-
설명: HTTP 연결 허용
수신 규칙 추가를 누르면 인바운드 HTTP 접속이 허용됩니다.
-
-
1-4단계를 반복하여 다음을 입력합니다.
-
Stateless: 선택 안함
-
소스 유형: CIDR
-
소스 CIDR: 0.0.0.0/0
-
IP 프로토콜: TCP
-
소스 포트 범위: (비어 있음)
-
대상 포트 범위: 443
-
설명: HTTPS 연결 허용
수신 규칙 추가를 누르면 인바운드 HTTPS 연결이 허용됩니다.
-
MySQL 수신 접속을 허용하도록 보안 목록을 구성합니다.
전용 서브넷의 보안 목록-VCN 이름 보안 목록에서 3306/TCP 및 33060/TCP 포트에서 수신 연결을 허용하는 규칙을 생성합니다.
-
새 VCN을 보려면 가상 클라우드 네트워크 보기를 누르십시오.
-
새 VCN이 표시된 상태에서 전용 서브넷 링크를 누릅니다.
전용 서브넷 정보는 페이지 아래쪽에 보안 목록과 함께 표시됩니다. 전용 서브넷의 전용 서브넷 보안 목록-VCN 이름에 대한 링크가 있어야 합니다.
-
전용 서브넷의 보안 목록-VCN 이름 링크를 누릅니다.
VCN의 기본 수신 규칙이 표시됩니다.
-
Add Ingress Rules를 누릅니다.
수신 규칙 추가 대화상자가 표시됩니다.
-
다음을 입력합니다.
- Stateless: 선택 안함
- 소스 유형: CIDR
- 소스 CIDR: 10.0.0.0/24
- IP 프로토콜: TCP
- 소스 포트 범위: (비어 있음)
- 대상 포트 범위: 3306
- 설명: MySQL 연결 허용
수신 규칙 추가를 누르면 공용 서브넷의 인바운드 MySQL 접속이 허용됩니다.
-
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 섹션으로 이동할 수 있습니다.
-
탐색 메뉴를 엽니다. 거버넌스 및 관리에서 ID로 이동하고 정책을 누릅니다.
-
Policies 페이지의 List Scope에서 Compartment(root)를 선택하고 Create Policy 버튼을 누릅니다.
-
다음 정보를 입력합니다.
- 이름: policy name
- 구획: (root)
-
정책 작성기에서 사용자 정의(고급)를 누릅니다.
-
다음과 같은 필수 MySQL Database Service 정책을 입력합니다.
정책 문
- 테넌시에서 {COMPARTMENT_INSPECT}(으)로 관리자 그룹 허용
- 테넌시에서 Administrators 그룹이 {VCN_READ, SUBNET_READ, SUBNET_ATTACH, SUBNET_DETACH} 수행하도록 허용
- 테넌시에서 Administrators 그룹이 mysql-family를 관리하도록 허용
-
Create를 누릅니다.
Oracle MySQL Database Service 생성
-
탐색 메뉴를 엽니다. 데이터베이스에서 MySQL로 이동하고 DB Systems를 누릅니다.
-
DB 시스템 페이지에서 구획을 선택하고 MySQL DB 시스템 생성을 누릅니다.
-
다음 정보를 입력합니다.
- 이름: DB system name
- 설명: MySQL system Description
- 구획: 구획 선택
- 가용성 도메인 선택: select the availability domain
- 결함 도메인: 선택사항입니다. 선택하지 않은 상태로 둘 수 있음
- 구성 선택: Change Shape을 눌러 원하는 구성 선택
- 데이터 스토리지 크기(GB): 원하는 스토리지 크기를 입력합니다.
- 유지보수 기간 시작 시간: 없음
-
다음을 눌러 데이터베이스 정보 화면으로 진행합니다.
-
다음 정보를 입력합니다.
- 사용자 이름: administrator user name
- 암호: admin password
- 암호 확인: admin password
- 가상 클라우드 네트워크 위치: VCN 구획 선택
- 가상 클라우드 네트워크: 전용 VCN 선택
- 호스트 이름: hostname name
- MySQL 포트: 3306
- MySQL X 프로토콜 포트: 33060
-
다음을 눌러 백업 정보 화면으로 진행합니다.
-
다음 정보를 입력합니다.
- Enable Automatic Backups: checked
- 백업 보존 기간: 7
- 기본 백업 기간: checked
-
MySQL DB 시스템의 세부정보 페이지로 이동합니다. 노란색 육각형이 녹색으로 바뀌면 DB 시스템이 프로비저닝되고 작동되어 실행됩니다.
VM 컴퓨트 인스턴스 생성 및 Apache/PHP 구성
Apache 웹 서버를 호스팅할 Oracle Linux 인스턴스를 생성합니다.
-
Oracle Cloud Infrastructure 기본 메뉴를 엽니다.
-
Compute(컴퓨트), Instances(인스턴스)를 차례로 선택합니다.
-
인스턴스 목록 화면에서 인스턴스 생성을 누릅니다.
-
인스턴스 이름을 입력합니다.
-
인스턴스를 생성할 구획을 선택합니다.
-
Configure placement and hardware 섹션에서 다음을 완료합니다.
- 가용성 도메인: 인스턴스를 생성하려는 가용성 도메인 선택
- 결함 도메인: 선택사항입니다. 선택하지 않은 상태로 둘 수 있음
- 이미지: Latest Oracle Linux(기본적으로 지원되는 최신 버전은 이미 선택됨)
- 구성: 원하는 구성 선택
-
네트워킹 구성 섹션에서 다음을 완료합니다.
- 네트워크 기존 가상 클라우드 네트워크 선택
- 가상 클라우드 네트워크 위치: 원하는 VCN이 있는 구획 선택
- 네트워크: 가상 네트워크 클라우드 네트워크 선택
- 서브넷 위치: 원하는 VCN이 있는 구획 선택
- 서브넷: 공용 서브넷 선택 *
- 네트워크 보안 그룹을 사용해서 트래픽 제어:unchecked
- 공용 IP 주소: 공용 IPv4 주소 지정
-
SSH 키 추가 섹션에서 다음을 수행합니다.
SSH 키 쌍이 없을 경우:
- SSH 키 쌍 생성을 선택합니다.
- 전용 키 저장을 누르고 브라우저 프롬프트에 따라 전용 키를 저장합니다.
- 공용 키 저장을 누르고 브라우저 프롬프트에 따라 공용 키를 저장합니다.
공용(public) 키가 있는 경우 다음을 수행할 수 있습니다.
- 공개 키 파일 선택을 선택합니다.
- 공용 키 파일을 끌어 놓거나 또는 위치를 찾아봅니다. 위치를 찾고 파일을 선택합니다. 또는
- 공개 키 붙여넣기를 선택합니다.
- 공용 키 값을 SSH 키에 붙여넣습니다(다른 키를 눌러 여러 키를 추가할 수 있음).
-
부트 볼륨 구성에서 모든 옵션을 선택하지 않은 상태로 둡니다.
-
Create를 누릅니다.
-
인스턴스의 세부정보 페이지로 이동합니다. 노란색 사각형이 녹색으로 바뀌면 인스턴스가 프로비저닝되고 작동되어 실행됩니다.
PHP로 Apache HTTP Server 설치 및 구성
-
Oracle Cloud Infrastructure 기본 메뉴를 엽니다.
-
Compute(컴퓨트), Instances(인스턴스)를 차례로 선택합니다.
-
인스턴스 목록에서 HTTP 서버를 구성할 인스턴스 이름을 누릅니다.
-
인스턴스 세부정보가 로드되면 오른쪽의 인스턴스 액세스에서 공용 IP 주소를 찾습니다. 공용 IP 액세스를 복사합니다.
-
터미널(Cloud Shell 또는 기타 SSH 사용 터미널)에서 인스턴스에 연결합니다.
ssh -i </path/private key file> opc@<instance's public IP> -
Apache HTTP Server 및 php를 설치합니다. 종속성이 자동으로 확인되어 설치됩니다.
sudo yum install -y httpd -
Apache HTTP Server를 사용으로 설정하고 시작합니다.
sudo systemctl enable httpd --now -
로컬 iptables 방화벽에서 HTTP 및 HTTPS를 허용합니다.
sudo firewall-cmd --permanent --add-port=80/tcp sudo firewall-cmd --permanent --add-port=443/tcp sudo firewall-cmd --reload -
추가 저장소 추가:
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 -
PHP를 설치합니다.
sudo yum install -y php sudo systemctl restart httpd -
테스트 php 페이지를 생성합니다.
echo -e '<?php \nphpinfo();' | sudo tee /var/www/html/test.php -
웹 브라우저에서 http://public server IP/test.php로 이동합니다.
MySQL 및 MySQL 셸 설치
-
MySQL 릴리스 패키지를 설치합니다.
sudo yum -y install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm -
MySQL 셸을 설치합니다.
sudo yum -y install mysql-shell
Drupal CMS 설치
Oracle Linux 인스턴스에 Drupal 설치
-
SSH 사용 터미널에서 SSH를 눌러 Drupal이 설치될 Oracle Linux 인스턴스로 이동합니다.
ssh -i <path/private key> opc@<instance public IP> -
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 -
httpd.conf를 편집합니다.
sudo vim /etc/httpd/conf/httpd.conf -
<Directory "/var/www/html"> 섹션을 찾아 해당 섹션에서 AllowOverride All을 AllowOverride None으로 변경합니다. 파일을 찾을 때까지 파일을 탐색하거나 "/"를 누르고 Options Indexes FollowSymLinks를 입력할 수 있습니다.
-
Apache를 다시 시작합니다.
sudo systemctl restart httpd -
Drupal 웹 사이트에서 Drupal을 다운로드합니다.
curl -L -o drupallatest.tar.gz https://www.drupal.org/download-latest/tar.gz -
latest.tar.gz를 /var/www/html(Apache 문서 루트)에 추출합니다.
sudo tar zxf drupallatest.tar.gz -C /var/www/html/ --strip 1 -
소유권을 조정합니다.
sudo chown apache. -R /var/www/html/ -
settings.php를 생성합니다.
cd /var/www/html/sites/default/ cp default.settings.php settings.php -
소유권을 조정합니다.
sudo chown apache. -R /var/www/html/
- SE Linux를 조정합니다.
sudo chcon -R -t httpd_sys_content_rw_t /var/www/html/sites/
- Apache가 외부 데이터베이스에 접속하도록 허용합니다.
sudo setsebool -P httpd_can_network_connect_db 1
- MySQL 셸을 사용하여 MDS 데이터베이스에 연결합니다.
mysqlsh --sql -u admin -h <MDS end point IP>
- Drupal 데이터베이스 및 사용자를 생성합니다.
create database drupal;
create user drupaluser IDENTIFIED BY 'ComplexPass0rd!';
GRANT ALL PRIVILEGES ON drupal.* To drupaluser;
\quit
-
브라우저에서 http://instance public IP/에 액세스합니다.
-
언어를 선택하고 저장 후 계속을 누릅니다.
-
설치 프로파일을 선택하고 표준 프로파일을 선택한 다음 저장 후 계속을 누릅니다.
-
모든 설정이 올바르면 데이터베이스 구성 페이지가 표시됩니다. 다음 정보를 입력합니다.
- 데이터베이스 유형: MySQL, MariaDB, Percona Server 또는 동급
- 데이터베이스 이름: drupal
- 데이터베이스 사용자 이름: drupaluser
- 데이터베이스 비밀번호: ComplexPass0rd! 고급 옵션을 확장합니다.
- 호스트: MDS IP 주소
-
Install site를 누릅니다.
-
다음 정보를 입력하여 사이트를 구성합니다.
- 사이트 이름: 사이트 이름 선택
- 사이트 전자 메일 주소: 사이트에서 보낸 자동 전자 메일의 전자 메일 계정
- 사용자 이름: Drupal 관리자
- 비밀번호: Drupal 관리자 비밀번호
- 암호 확인: 암호 확인
- 전자메일 주소: 전자메일 주소
- 기본 국가: 국가 선택
- 기본 시간대: 시간대 선택
- 자동으로 업데이트 확인: 선택됨
- 전자 메일 통지 받기: 선택 해제
-
Save and continue를 누릅니다.
-
브라우저 액세스 http://인스턴스 공용 IP/에서 관리 사용자로 로그인하고 웹 사이트 사용자정의를 시작합니다.
관련 링크
- Oracle MySQL Database Service를 통해 Drupal 실행에서 비디오를 시청하십시오.
감사의 글
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를 참조하십시오.
Install Drupal CMS on Oracle Linux with MySQL database
F38453-06
September 2022
Copyright © 2022, Oracle and/or its affiliates.