注意:

使用 MySQL 数据库在 Oracle Linux 上安装 Drupal CMS

简介

Drupal 是以 PHP 编写的 Web 内容管理系统 (CMS)。Drupal 为全球各地的网站提供基础设施 - 从个人博客到企业、政治和政府网站。非常可扩展和模块化,可用于多种场景。

可以从本研习会开始,在 Oracle Linux 和 Oracle MySQL Database Service 上构建完整的安装。

成功步骤

在此研讨会中,您将学习:

先决条件

创建 VCN 和子网

设置虚拟云网络 (VCN) 以将 Linux 实例连接到互联网。您将配置创建虚拟网络所需的所有组件。

  1. 打开导航菜单。在“Core Infrastructure(核心基础结构)”下,转到“Networking(网络)”并单击“Virtual Cloud Networks(虚拟云网络)”。

    确保在左侧的“区间”列表中选择了区间(或为您指定的区间)。

  2. 单击启动 VCN 向导

  3. 选择“具有 Internet 连接的 VCN”,然后单击启动 VCN 向导

  4. 输入以下内容(说明是斜体化的,替换为方案的值):

    • 名称:输入云网络的名称

    • 比较:选择所需的区间

    • VCN CIDR 块: 10.0.0.0.0/16

    • 公共子网 CIDR 块: 10.0.0.0/24

    • 专用子网 CIDR 块: 10.0.1.0/24

    • DNS 解析: checked

      注意,公共和专用子网具有不同的 CIDR 块。

  5. 单击“下一步”。

    此时将显示“Create a VCN with Internet Connection(使用 Internet 连接创建 VCN)”配置对话框,确认刚输入的所有值并列出将要创建的其他组件。

  6. 单击创建以启动工作流。

  7. 工作流完成后,单击查看虚拟云网络,您将被定向到您创建的 VCN 的详细信息页。

配置安全列表以允许 HTTP 传入连接

在默认安全列表中创建允许端口 80/TCP 和 443/TCP 上传入连接的规则。

  1. 单击“View Virtual Cloud Network(查看虚拟云网络)”以查看新 VCN。

  2. 显示新 VCN 后,单击“Public subnet(公共子网)”链接。

    公共子网信息与安全列表一起显示在页面底部。应具有指向 VCN 的默认安全列表的链接。

  3. 单击默认安全性列表链接。

    此时将显示 VCN 的默认入站规则。

  4. 单击 "Add Ingress Rules"。

    此时将显示添加入站规则对话框。

  5. 输入以下信息:

    • 无状态:不选择

    • 源类型:CIDR

    • 来源 CIDR:0.0.0.0/0

    • IP 协议:TCP

    • 源端口范围:(留空)

    • 目的地端口范围:80

    • 说明:允许 HTTP 连接

      单击添加入站规则后,将允许入站 HTTP 连接。

  6. 重复步骤 1-4,然后输入以下内容:

    • 无状态:不选择

    • 源类型:CIDR

    • 来源 CIDR:0.0.0.0/0

    • IP 协议:TCP

    • 源端口范围:(留空)

    • 目的地端口范围:443

    • 说明:允许 HTTPS 连接

      单击添加入站规则后,将允许入站 HTTPS 连接。

配置安全列表以允许 MySQL 传入连接

专用子网的安全列表 -VCN 名称 安全列表中创建一个规则,以允许端口 3306/TCP 和 33060/TCP 上的传入连接。

  1. 单击“View Virtual Cloud Network(查看虚拟云网络)”以查看新 VCN。

  2. 显示新 VCN 后,单击您的专用子网链接。

    专用子网信息与安全列表一起显示在页面底部。应该有一个指向专用子网的安全列表 -VCN 名称 的链接。

  3. 单击专用子网的安全列表 -VCN 名称 链接。

    此时将显示 VCN 的默认入站规则。

  4. 单击 "Add Ingress Rules"。

    此时将显示添加入站规则对话框。

  5. 输入以下信息:

    • 无状态:不选择
    • 源类型:CIDR
    • 来源 CIDR:10.0.0.0/24
    • IP 协议:TCP
    • 源端口范围:(留空)
    • 目的地端口范围:3306
    • 说明:允许 MySQL 连接

    单击添加入站规则后,允许来自公共子网的入站 MySQL 连接。

  6. 重复步骤 1-4,然后输入以下内容:

    • 无状态:不选择
    • 源类型:CIDR
    • 来源 CIDR:10.0.0.0/24
    • IP 协议:TCP
    • 源端口范围:(留空)
    • 目的地端口范围:33060
    • 说明:允许 MySQL X 连接

    单击添加入站规则后,允许来自公共子网的入站 MySQL X 连接。

创建和配置 Oracle MySQL Database Service

创建 Oracle MySQL Database Service 所需策略

注意:如果您使用的是免费的 Oracle 提供的上机操作实验,则不需要创建此策略。可以转到“创建 Oracle MySQL Database Service”部分。

  1. 打开导航菜单。在监管和管理下,转到身份并单击策略

  2. 在“Policies(策略)”页的“List Scope(列表范围)”下,选择区间 (root) 并单击“Create Policy(创建策略)”按钮。

  3. 输入以下信息:

    • 名称: policy name
    • 区间: (root)
  4. 策略生成器中,单击自定义(高级)

  5. 输入以下必需的 MySQL Database 服务策略:

    策略语句

    • 允许组管理员在租户中 {COMPARTMENT_INSPECT}
    • 允许组管理员在租户中 {VCN_READ,SUBNET_READ,SUBNET_ATTACH,SUBNET_DETACH}
    • 允许组管理员管理租户中的 mysql-family
  6. 单击创建

创建 Oracle MySQL Database Service

  1. 打开导航菜单。在 Database(数据库)下,转至 MySQL ,然后单击 DB Systems(数据库系统)

  2. 数据库系统页上,选择区间并单击创建 MySQL 数据库系统

  3. 输入以下信息:

    • 名称: DB system name
    • 说明:MySQL system Description
    • 区间:选择区间
    • 选择可用性域:选择可用性域
    • 容错域:可选。可以保持未选中状态
    • 选择配置:通过单击更改配置来选择所需的配置
    • 数据存储大小 (GB):输入所需的存储大小
    • 维护时段开始时间:
  4. 单击下一步转至数据库信息屏幕。

  5. 输入以下信息:

    • 用户名: administrator user name
    • 口令: admin password
    • 确认密码: admin password
    • 虚拟云网络:选择 VCN 区间
    • 虚拟云网络:选择专用 VCN
    • 主机名:主机名
    • MySQL 端口: 3306
    • MySQL X 协议端口: 33060
  6. 单击下一步转至备份信息屏幕。

  7. 输入以下信息:

    • 启用自动备份:选中
    • 备份保留期: 7
    • 默认备份窗口:选中
  8. 您将转到 MySQL 数据库系统的详细信息页面。黄色六边形变为绿色后,即会预配并启动并运行您的数据库系统。

创建 VM 计算实例并配置 Apache 和 PHP

创建 Oracle Linux 实例以托管 Apache Web 服务器。

  1. 打开 Oracle Cloud Infrastructure 主菜单。

  2. 依次选择计算实例

  3. 从实例列表中单击创建实例

  4. 输入实例名称。

  5. 选择要在其中创建实例的分区。

  6. 完成“配置放置和硬件”部分中的以下内容:

    • 可用性域:选择要在其中创建实例的可用性域
    • 容错域:可选。可以保持未选中状态
    • 映像:最新 Oracle Linux(默认情况下,已选择支持的最新版本)
    • 配置:选择所需的配置
  7. 完成配置网络部分中的以下内容:

    • 网络选择现有虚拟云网络
    • 虚拟云网络位于:选择具有所需 VCN 的区间
    • 网络:选择虚拟网络云网络
    • 子网位于:选择具有所需 VCN 的区间
    • 子网:选择公共子网 *
    • 使用网络安全组控制流量: unchecked
    • 公共 IP 地址: Assign a public IPv4 address
  8. 添加 SSH 密钥部分中:

    如果您没有 SSH 密钥对:

    1. 选择生成 SSH 密钥对
    2. 单击保存专用密钥,然后按照浏览器提示保存专用密钥。
    3. 单击保存公共密钥,然后按照浏览器提示保存公共密钥。

    如果您有公共密钥,可以:

    1. 选择选择公共密钥文件
    2. 将公钥文件拖放到上方或或者浏览到某个位置,找到该位置并选择文件。或者
    3. 选择粘贴公共密钥
    4. 将公钥值粘贴到 SSH 密钥中(可以通过单击其他密钥来添加多个密钥)。
  9. 配置引导卷中,取消选中所有选项。

  10. 单击创建

  11. 您将转到实例的详细信息页面。黄色正方形变为绿色后,您的实例将被预配、启动并运行。

使用 PHP 安装和配置 Apache HTTP 服务器

  1. 打开 Oracle Cloud Infrastructure 主菜单。

  2. 依次选择计算实例

  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. 在 Web 浏览器中,导航到 http://public server IP/test.php

安装 MySQL 和 MySQL Shell

  1. 安装 MySQL 发行版软件包。

    sudo yum -y install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
    
  2. 安装 MySQL Shell。

    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 All 更改为 AllowOverride 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 Shell 连接到 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:// 实例公共 IP/。

  2. 选择语言,然后单击保存并继续

  3. 选择安装配置文件,选择标准配置文件,然后单击保存并继续

  4. 如果所有设置都正确,您将看到数据库配置页面。填写以下信息:

    • 数据库类型:MySQL、MariaDB、Percona Server 或等效项
    • 数据库名称:drupal
    • 数据库用户名:drupaluser
    • 数据库密码:ComplexPass0rd!展开高级选项
    • 主机:MDS IP 地址
  5. 单击 Install site

  6. 通过输入以下信息来配置站点:

    • 站点名称:选择您的站点名称
    • 网站电子邮件地址:网站自动发送电子邮件的电子邮件帐户
    • 用户名:Drupal 管理员
    • 密码:Drupal 管理员密码
    • 确认密码:确认密码
    • 电子邮件地址:
    • 默认的国家/地区:选择国家/地区
    • 默认时区:选择时区
    • 自动检查更新:已选中
    • 接收电子邮件通知:未选中
  7. 单击保存并继续

  8. 从浏览器访问 http:// 实例公共 IP/ 中,使用管理员用户登录并开始定制网站。

确认

作者:Orlando Gentil 和 Frédéric Descamps

更多学习资源

浏览 docs.oracle.com/learn 上的其他实验室,或在 Oracle Learning YouTube 频道上访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心