Drupal 7 是一个功能强大的内容管理系统,虽然它现在已经进入维护期,但很多老项目仍在使用,本教程将带你一步步完成从零开始的安装过程。

linux drupal 7安装教程
(图片来源网络,侵删)

Drupal 7 在 Linux (CentOS 7) 上的完整安装教程

本教程将涵盖以下步骤:

  1. 环境准备:安装 LAMP (Linux, Apache, MySQL, PHP) 栈。
  2. 创建数据库:为 Drupal 准备独立的数据库和用户。
  3. 下载 Drupal:获取 Drupal 7 的源代码。
  4. 设置文件权限:让 Web 服务器可以写入必要目录。
  5. Web 安装向导:通过浏览器完成最后的安装配置。

第一步:环境准备

在安装 Drupal 之前,你的服务器需要满足其运行环境要求,Drupal 7 需要 PHP 5.2.5 或更高版本MySQL 5.0 或更高版本,我们将安装一个稳定的 LAMP 环境。

更新系统

登录到你的 Linux 服务器(通过 SSH),并更新所有已安装的软件包。

sudo yum update -y

安装 Apache Web 服务器

Apache 是最流行的 Web 服务器之一。

linux drupal 7安装教程
(图片来源网络,侵删)
sudo yum install httpd -y

安装完成后,启动 Apache 服务并设置其开机自启。

sudo systemctl start httpd
sudo systemctl enable httpd

你可以通过访问服务器的 IP 地址(http://你的服务器IP)来测试 Apache 是否正常运行,你应该能看到 Apache 的测试页面。

安装 MySQL 数据库服务器

MariaDB 是 MySQL 的一个流行分支,完全兼容。

sudo yum install mariadb-server mariadb -y

同样,启动 MariaDB 服务并设置开机自启。

linux drupal 7安装教程
(图片来源网络,侵删)
sudo systemctl start mariadb
sudo systemctl enable mariadb

为了安全起见,运行 mysql_secure_installation 脚本,它会帮你设置 root 密码、移除匿名用户、禁止 root 远程登录等,根据提示操作即可,大部分问题直接按 Y (是) 回答即可。

sudo mysql_secure_installation

安装 PHP 及所需扩展

Drupal 7 需要 PHP 以及一些特定的扩展才能正常运行。

sudo yum install php php-mysql php-gd php-xml php-mbstring -y
  • php: 核心 PHP 包。
  • php-mysql: PHP 与 MySQL 数据库通信的模块。
  • php-gd: 用于处理图片。
  • php-xml: 用于处理 XML 和 RSS。
  • php-mbstring: 用于处理多字节字符串(对中文等语言至关重要)。

安装完成后,重启 Apache 服务以加载 PHP 模块。

sudo systemctl restart httpd

第二步:创建 Drupal 数据库

为了安全和管理的方便,我们不应该使用 root 用户来连接 Drupal 数据库,我们将创建一个专用的数据库和用户。

  1. 登录到 MySQL/MariaDB 使用 root 用户登录。

    mysql -u root -p

    然后输入你在 mysql_secure_installation 中设置的 root 密码。

  2. 创建数据库 输入以下 SQL 命令来创建一个名为 drupal_db 的数据库,你可以根据喜好更改数据库名。

    CREATE DATABASE drupal_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

    注意utf8mb4utf8 的超集,能更好地支持包括 emoji 在内的完整 Unicode 字符,推荐使用。

  3. 创建用户并授权 创建一个名为 drupal_user 的用户,密码设为 your_strong_password请务必替换成一个强密码!)。

    CREATE USER 'drupal_user'@'localhost' IDENTIFIED BY 'your_strong_password';
  4. 授予用户权限drupal_db 数据库的所有权限授予 drupal_user

    GRANT ALL PRIVILEGES ON drupal_db.* TO 'drupal_user'@'localhost';
  5. 刷新权限并退出

    FLUSH PRIVILEGES;
    EXIT;

你的数据库环境已经准备就绪。


第三步:下载 Drupal

我们将把 Drupal 安装到 Apache 的默认网站根目录 /var/www/html 中。

进入网站根目录

cd /var/www/html

下载 Drupal 7

我们使用 wget 从 Drupal 官方源下载最新的 Drupal 7.x 版本,请访问 https://www.drupal.org/project/drupal 获取最新的稳定版本号。

# 请将 7.98 替换为最新的 Drupal 7.x 版本号
wget https://ftp.drupal.org/files/projects/drupal-7.98.tar.gz

解压文件

下载完成后,解压压缩包。

tar -zxvf drupal-7.98.tar.gz

重命名并移动文件

为了更简洁,我们将解压出的 drupal-7.98 目录重命名为 drupal,并将其内容移动到 /var/www/html 根目录。

mv drupal-7.98 drupal
mv drupal/* .
mv drupal/.* . 2>/dev/null || true
rmdir drupal

注意mv drupal/.* . 这条命令是为了移动隐藏文件(如 .htaccess),2>/dev/null || true 是为了避免因为某些目录下没有隐藏文件而报错。

Drupal 的所有文件都在 /var/www/html 目录下了。


第四步:设置文件权限

Web 服务器(Apache,运行在 apache 用户下)需要能够写入 Drupal 的某些目录(如 sites/default/files)和文件(如 sites/default/settings.php)。

更改目录所有者

/var/www/html 目录的所有者更 apache 用户。

sudo chown -R apache:apache /var/www/html

设置正确的权限

  • sites/default 目录需要可写,以便安装程序可以创建 settings.phpfiles 目录。
  • sites/default/files 目录需要可写,以便上传文件(如图片、文档)。
# 设置 sites/default 目录为 755
sudo chmod 755 sites/default
# 设置 sites/default/files 目录为 755 (或 2775,如果希望新文件继承组)
sudo chmod 755 sites/default/files
# sites/default/settings.php 文件已存在,需要设置为可写
# 在安装过程中,它会自动创建
# sudo chmod 664 sites/default/settings.php

第五步:Web 安装向导

最简单的部分来了,通过你的浏览器访问 Drupal 网站,即可启动图形化安装程序。

  1. 打开浏览器,在地址栏输入:http://你的服务器IP
  2. 你会看到 Drupal 的安装界面,选择语言,然后点击 “Save and continue”
  3. 选择配置文件:选择 "Standard" (标准),这是最常用的配置,包含博客、故事、论坛等常用模块,点击 “Save and continue”
  4. 验证数据库设置
    • 数据库类型: 选择 MySQL, MariaDB, or equivalent
    • 数据库名称: 输入我们之前创建的数据库名 drupal_db
    • 数据库用户名: 输入 drupal_user
    • 数据库密码: 输入你设置的强密码 your_strong_password
    • 数据库主机: localhost
    • 数据库端口: 留空(使用默认的 3306)。
    • 数据库前缀: 留空。
    • 点击 “Save and continue”
  5. 设置站点
    • 站点名称: 输入你的网站名称。
    • 站点邮箱: 输入管理员邮箱。
    • 管理员用户名: 输入你的管理员用户名。
    • 密码: 设置一个强大的管理员密码。
    • 邮件地址: 再次输入管理员邮箱。
    • 点击 “Save and continue”

Drupal 将完成安装,并自动配置好所有必要的信息,安装完成后,系统会自动将 sites/default 目录和 settings.php 文件的权限修改为只读,以增强安全性。

点击 “Visit your new site”,你就可以登录到你的新 Drupal 7 网站了!

常见问题排查

  • 问题:安装时出现 "The directory sites/default is not writable" 错误。 解决:返回第四步,确保 sites/default 目录的权限是 755,并且所有者是 apache

  • 问题:页面显示乱码或中文字符显示为方框。 解决:确保在创建数据库时使用了 utf8mb4 字符集,Drupal 的配置中也正确设置了字符编码(通常默认就是正确的)。

  • 问题:无法上传文件或图片。 解决:确保 sites/default/files 目录的权限是 755,并且所有者是 apache

  • 问题:访问网站时看到 403 Forbidden 错误。 解决:确保 /var/www/html 目录的权限不是 777,正确的权限通常是 755,并且文件所有者是 apache

恭喜!你已经成功在 Linux 服务器上安装了 Drupal 7,你可以登录到 /admin 路径,安装主题、模块,开始构建你的网站。