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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 在 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 标签页面,那里可以找到教程来帮助你。你还会找到一个问答区,可以从社区获取帮助或做出贡献。


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
1月前
|
Ubuntu Linux 网络安全
Linux服务器之Ubuntu的安装与配置
Ubuntu Desktop是目前最成功、最流行的图形界面的Linux发行版;而Ubuntu Server也在服务器端市场占据了较大的份额。今天为大家详细介绍了Ubuntu Server的安装与配置,希望对你能有所帮助。关于VMware、VirtualBox等虚拟化软件的使用,朱哥还会在后续的文章中为大家详细介绍,敬请关注!
|
23天前
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。
|
26天前
|
弹性计算 小程序 容灾
2025购买阿里云服务器配置选择方法:企业+个人+学生攻略
2025年阿里云服务器购买省钱攻略,涵盖个人、中小企业及高性能配置推荐。个人用户优选38元轻量或99元ECS,企业用户选199元2核4G服务器,游戏用户适合4核16G或8核32G配置,详情请参考最新活动及攻略。
272 3
|
1月前
|
Ubuntu Linux
如何在 Ubuntu 服务器上安装桌面环境(GUI)
如果你有任何问题,请在评论区留言。你会在服务器上使用 GUI 吗?参照本文后你遇到了什么问题吗?
161 0
|
1月前
|
缓存 监控 前端开发
详述uniapp项目部署于Nginx服务器的配置优化方法。
综上所述,uniapp项目部署于Nginx的优化方法多种多样,应根据实际情况灵活地采取合适的策略。配置后持续监控和调试,适时调整配置以保持最佳性能,并确保随着应用需求和访问模式的变化,服务器配置得到适当的更新和优化。
92 0
|
2月前
|
Windows
Windows下版本控制器(SVN)-验证是否安装成功+配置版本库+启动服务器端程序
Windows下版本控制器(SVN)-验证是否安装成功+配置版本库+启动服务器端程序
109 2
|
2月前
|
安全 关系型数据库 网络安全
安全加固:启动PostgreSQL 14服务器SSL加密的方法指南在CentOS 7环境中
通过上述步骤,你可以为PostgreSQL数据库服务器设置SSL加密,从而增加数据在传输中的安全性。确保维持证书的有效性,并且定期更新和管理密钥,以防止未授权访问。
113 0
|
2月前
|
存储 Ubuntu 安全
如何在服务器上快速安装 ERPNext 最新版本?
ERPNext 是一款开源且功能全面的企业资源规划软件,在企业信息化管理中广泛应用。本文介绍如何通过 Websoft9 控制台安装其最新版本,以提升部署效率。内容涵盖安装前的服务器准备、Websoft9 控制台登录,到通过应用市场安装 ERPNext 的详细步骤,以及安装后的验证与基础配置。帮助企业快速搭建稳定高效的信息化管理平台,满足财务、采购、销售、库存等多方面业务需求,助力企业降本增效,实现可持续发展。
|
25天前
|
弹性计算 编解码 大数据
性价比最高提升50%!阿里云企业级云服务器上新
阿里云ECS云服务器推出全新升级的u2系列实例,包括基于Intel的u2i实例与首个基于AMD的u2a实例,提供企业级独享算力,综合性价比最高提升50%。u2i实例已开放公测,适用于中小型数据库、企业网站建设等场景。同时发布基于AMD的第九代旗舰实例g9ae,性能提升65%,适用于大数据、视频转码等密集型业务。
147 0
|
1月前
|
弹性计算 运维 安全
阿里云轻量应用服务器是什么?看完你就知道了
阿里云轻量应用服务器是面向网站建设、开发测试等轻量场景的云服务器,按套餐售卖,内置多种应用镜像,支持一键部署,操作简单,适合个人开发者和中小企业使用。
240 0