在 Ubuntu 14.04 服务器上使用 Apache 安装 Drupal 的方法

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 在 Ubuntu 14.04 服务器上使用 Apache 安装 Drupal 的方法

介绍

Drupal 是一款流行的内容管理系统(CMS),用于运行互联网上一些最大的博客和网站。由于其稳定的基础、平台的适应性和活跃的社区,Drupal 在出现十多年后仍然是一个受欢迎的选择。

在本指南中,我们将介绍如何在 Ubuntu 14.04 服务器上安装 Drupal。我们将使用 Apache 来提供我们的网站,因为这是 Drupal 团队推荐的配置。

先决条件

在开始本指南之前,您需要一个完成了一些基本配置的 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 root 用户的密码。

成功验证后,您将进入 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 模块。幸运的是,它们在 Ubuntu 的默认存储库中。

通过输入以下命令更新本地软件包缓存并安装它们:

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>

完成后保存并关闭文件。

现在,我们只需要重新启动 Web 服务器以实施我们对 Apache 和 PHP 的更改:

sudo service apache2 restart

安装 Drupal 文件

现在我们的系统已经准备好了,我们可以将 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 目录进行一些更改,以便正确完成该过程。我们应该提前完成这些更改,这样我们就不必在网页浏览器和命令行之间来回切换。

首先,我们需要在子树 sites/default 下创建一个名为 files 的新目录:

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

接下来,我们应该将默认设置文件复制到 Drupal 用于活动配置的文件名:

cp /var/www/html/sites/default/default.settings.php /var/www/html/sites/default/settings.php

在安装过程中,这个活动设置文件暂时需要一些额外的权限。我们需要临时为组所有者授予写权限(我们将很快将其分配给 web 用户)。安装成功后,我们将删除这些权限:

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

接下来,我们需要将文件的组所有权分配给 web 用户,在 Ubuntu 中是 www-data。我们希望将整个 Drupal 安装都拥有这些所有权属性:

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

您的服务器现在已经适当配置以运行基于网络的安装脚本。

完成基于网络的安装过程

安装的其余部分将在您的网页浏览器中进行。打开浏览器并导航到您的服务器的域名或 IP 地址:

http://server_domain_or_IP

您将看到 Drupal 安装过程的初始页面:

!Drupal choose profile

除非您有理由不这样做,选择“标准”安装并单击“保存并继续”。点击接下来的几个继续按钮,直到您到达数据库配置页面。填写您在配置数据库和用户时使用的详细信息。

对于本指南,我们使用了一个名为 drupal 的数据库,一个名为 drupaluser 的数据库用户,以及一个密码 password。在用户创建阶段,您应该选择了不同的密码。填写完您的数据库详细信息后,再次单击“保存并继续”:

!Drupal database config

注意:当您单击“保存并继续”时,有可能会被重定向回相同的数据库配置页面。如果发生这种情况,只需刷新页面。数据库将被配置,配置文件将被安装。

您将在页面顶部看到一个信息框,告诉您现在适合更改设置文件的权限。我们马上就会这样做。现在,您需要设置有关您的网站的一些基本信息。使用适合您的网站的合适值填写字段:

!Drupal configure site

最后,单击“保存并继续”按钮以完成安装。现在,您可以通过访问您的域名来访问您的网站:

!Drupal completed install

您已成功完成 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 文档中记录了许多导致此错误的原因和解决方法:

https://www.drupal.org/node/481758

一些最可能的解决方法包括编辑 /etc/php5/apache2/php.ini 文件以提高 max_execution_time

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

文件内容:

max_execution_time = 300

你可能还想尝试在除了 Chrome 之外的浏览器中进行安装,比如 Safari。浏览器的 cookie 设置可能会干扰安装过程。

无论如何,一旦你实施了修复,你将需要删除现有的 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 标签页面,那里可以找到教程来帮助你。你还会找到一个问答区,可以从社区获取帮助或做出贡献。


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3月前
|
安全 Ubuntu 网络安全
本地服务器 Odoo 安装指南,并实现公网访问
本指南详细介绍基于 Odoo 的企业应用部署流程。首先通过 VMware 安装虚拟机并配置 Ubuntu 系统,为运行环境打下基础;接着利用 Websoft9 平台简化中间件与 Odoo 服务的安装,实现快速部署与版本管理;然后借助 cpolar 实现内网穿透并完成域名解析,确保公网访问畅通;最后进行功能测试与性能优化,提供运维建议以保障系统稳定性和安全性。适合初学者及中小型企业参考实施。
332 4
|
2月前
|
Ubuntu 网络协议 应用服务中间件
在 Ubuntu 上安装 Nginx
在 Ubuntu 上安装和配置 Nginx 非常简单。首先更新系统包,然后通过 `apt` 安装 Nginx,检查服务状态并配置防火墙规则。访问服务器 IP 测试是否成功显示默认页面。还可管理服务、创建虚拟主机及排查常见问题,适合新手快速上手部署高性能 Web 服务。
265 0
|
1月前
|
存储 Ubuntu Docker
Ubuntu 安装 docker
本文介绍了在 Ubuntu 系统上安装 Docker 的详细步骤,包括卸载旧版本、设置 Docker 官方存储库、安装 Docker 包以及配置镜像源加速。首先通过移除旧版组件如 `docker.io` 和 `docker-compose` 等进行清理,然后添加官方 GPG 密钥并配置 APT 源,接着安装最新 Docker 组件。此外,还提供了阿里云和 1Panel 的镜像源配置方法以提升下载速度,并通过运行 `hello-world` 镜像测试安装是否成功。
751 3
Ubuntu 安装 docker
|
21天前
|
Ubuntu 安全 数据安全/隐私保护
在Docker容器中部署GitLab服务器的步骤(面向Ubuntu 16.04)
现在,你已经成功地在Docker上部署了GitLab。这就是我们在星际中的壮举,轻松如同土豆一样简单!星际旅行结束,靠岸,打开舱门,迎接全新的代码时代。Prepare to code, astronaut!
94 12
|
20天前
|
Ubuntu 机器人 定位技术
Loam在Ubuntu 18.04上的一站式安装指南
现在,你已经完成了Loam在Ubuntu 18.04上的一站式安装盛宴。从更新系统清洁,到搭建魔法环境的工作空间,再到召唤和激活Loam精髓的艺术——每步都妙不可言,每步都至关重要,让你在这场技术的饕餮盛宴中大显身手。
42 8
|
2月前
|
Ubuntu 开发工具
Ubuntu环境下以源码编译方式安装Vim的步骤介绍
以上就是在Ubuntu环境下以源码编译方式安装Vim的全部步骤。就像煮一杯咖啡,虽然过程中需要耐心和一些技巧,但等到你熟悉之后,你会发现,不仅可以定制自己喜欢的口味,过程中的乐趣也是不能忽视的。希望你在编译安装Vim的过程中,能体验到这份乐趣。
111 21
|
2月前
|
Ubuntu 定位技术 开发工具
在Ubuntu 20.04系统中安装SLAM库的具体操作步骤
以上是在Ubuntu 20.04系统中安装SLAM库的具体操作步骤。就像积木游戏,需要按照正确的步骤,适时地添加正确的部件,才能够构建出我们想要的积木模型。在现实操作中可能会遇到各种问题,就像积木构建中的各种困难,我们要有耐心和决心去解决它们,最后得到我们想要的结果。希望这个有趣的积木游戏比方能帮助你更好地理解SLAM库的安装过程,并在实际操作中得到应用。
96 34
|
2月前
|
Ubuntu 机器人 Shell
在Jetson TX2的Ubuntu18.04系统中安装ROS的教程
所有这些步骤并不复杂,但确实需要仔细一点。如果遇到问题,不要灰心,问题是解决问题的开始。保持耐心,细心阅读错误信息,通常情况下,问题的答案就藏在其中。祝ROS旅程顺利!
88 18
|
2月前
|
Ubuntu Windows
处理ubuntu启动过程中报错error:proc_thermal_add错误的方法
了解以上方法,就像寻找鬼屋出口的吊灯,当初见“error:proc_thermal_add错误”时的恐惧不翼而飞。各位Ubuntu使用者都是勇敢的探险家,遇到的问题无非是丛林中的野兽,尝试、努力和坚持总能找到解决的办法。
92 21
|
2月前
|
存储 运维 Ubuntu
Ubuntu环境下NTP时间同步服务的离线安装方法
以上就是Ubuntu环境下离线安装和配置NTP时间同步服务的全过程。这种有效的操作不仅可为有网络隔离需求的安全重要环境提供参考,同时也能帮助研发、运维人员在同类情况下处理问题。太阳走过万丈高空,而我们通过NTP服务,轻松把握时间,如同手握流沙,控制每一颗时间粒子的行走。
433 23

热门文章

最新文章