如何在 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文件并将其安装到我们的Web目录之前,我们需要准备我们的系统,虽然Apache,PHP和MySQL已经安装,但我们需要做一些额外的更改,并为我们的安装做一些调整。

配置 MySQL 用户和数据库用于 Drupal

我们要做的第一件事是为我们的Drupal安装配置一个MySQL用户和数据库,因为安全原因,配置一个专用用户和数据库很重要。

要开始,请登录MySQL:

1mysql -u root -p

您将被要求提供您在安装该软件时配置的MySQL root用户密码。

一旦您成功身份验证,您将被放入MySQL提示. 首先,为您的Drupal安装创建一个数据库,以便使用。

1CREATE DATABASE drupal;

接下来,您需要创建一个 Drupal 软件可以使用的用户连接到数据库. 在本指南中,我们将将我们的用户称为drupaluser

1CREATE USER drupaluser@localhost IDENTIFIED BY 'password';

现在,我们有一个数据库和一个用户,但我们的用户还没有权限在数据库上执行任何操作。我们可以通过授予用户权限来解决这个问题。Drupal需要各种权限才能正常运作。

1GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,CREATE TEMPORARY TABLES,LOCK TABLES ON drupal.* TO drupaluser@localhost;

您的用户现在已获得管理我们创建的数据库的权限. 要立即实施这些更改,我们需要将权限信息清除到磁盘:

1FLUSH PRIVILEGES;

现在,我们可以退出我们的交互式MySQL会话:

1exit

你会被扔回你的bash会话。

安装PHP模块并调整配置

接下来,我们将安装一些PHP模块,这些模块将需要Drupal应用程序。

更新本地包缓存并通过键入安装它们:

1sudo apt-get update
2sudo apt-get install php5-gd php5-curl libssh2-php

我们还将对我们的PHP配置文件做一些小调整,这些都是Drupal开发人员推荐的。在文本编辑器中打开Apache PHP配置文件,使用sudo特权:

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

搜索expose_php指令和allow_url_fopen指令,并将它们设置为关闭:

1. . .
2expose_php = Off
3. . .
4allow_url_fopen = Off
5. . .

保存并关闭文件,当你完成。

启用在Apache中重写功能和Htaccess文件

接下来,我们应该看看Apache。 首先,我们想要启用重写功能,这将允许我们的Drupal网站将URL修改为人性友好的字符串。

实际的Apachemod_rewrite模块已经默认安装了,但是它没有启用,我们可以通过键入下面的方式转换开关来启用该模块:

1sudo a2enmod rewrite

在重新启动 Apache 之前,我们需要调整我们的虚拟主机配置以允许使用.htaccess 文件。

现在打开默认 virtualhost 文件:

1sudo nano /etc/apache2/sites-enabled/000-default.conf

VirtualHost区块中,添加一个指向我们的网页根的目录区块。在这个区块中,将AllowOverride指令设置为All。您还可能想要添加一个ServerName指令,指向您的域名,并更改ServerAdmin指令以反映有效的电子邮件地址:

 1<VirtualHost *:80>
 2    . . .
 3    ServerName example.com
 4    ServerAdmin webmaster@example.com
 5    DocumentRoot /var/www/html
 6
 7    <Directory /var/www/html>
 8        AllowOverride All
 9    </Directory>
10    . . .
11</VirtualHost>

保存并关闭文件,当你完成。

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

1sudo service apache2 restart

安装 Drupal 文件

现在我们的系统已经准备好了,我们可以将Drupal安装到我们的Web根中。

事實上,我們將最初解包檔案到我們的家庭目錄,然後將其複製到適當的位置. 這樣做將為我們提供已準備的存取原始檔案,如果某些事情發生錯誤或如果任何檔案隨後被意外刪除。

转到 Drupal 下载页面并在推荐版本部分中查阅最新版本。右键单击您感兴趣的版本的tar.gz链接,选择复制链接地址或您的浏览器提供的任何类似选项。

回到您的服务器上,更改到您的主目录,并使用wget下载使用您复制的链接的项目文件:

1cd ~
2wget http://ftp.drupal.org/files/projects/drupal-7.32.tar.gz

您的链接可能会在末尾有一个不同的版本号. 一旦文件已下载,通过键入提取应用程序目录:

1tar xzvf drupal*

现在,进入新提取的目录结构,并使用rsync实用程序安全地将所有文件复制到您的服务器的Web根目录。我们正在使用这个命令中的点来指定当前目录。

1cd drupal*
2sudo rsync -avz . /var/www/html

现在你有原始版本的文件在您的主文件夹中的目录,如果您需要参考它们,我们将移动到Web根目录来自定义我们的安装:

1cd /var/www/html

调整 Drupal 文件以确保安全性和安装方便

基于 Web 的安装脚本要求我们对我们的 Drupal 目录进行一些更改,以便正确地完成这个过程. 我们应该提前从中脱颖而出,以便我们不必在 Web 浏览器和命令行之间往返。

首先,我们需要在网站/默认子树下创建一个名为文件的新目录:

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

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

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

此活跃的设置文件在安装过程中暂时需要一些额外的权限. 我们需要给组所有者暂时的写权限(我们将暂时分配组所有者给网页用户)。

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

接下来,我们需要把我们文件的集体所有权交给网页用户,在Ubuntu中是www-data

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

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

完成基于 Web 的安装程序

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

1http://server_domain_or_IP

您将看到 Drupal 安装程序的首页:

Drupal choose profile

除非你有理由不这样做,否则选择标准安装,然后单击保存并继续。单击接下来的几个继续按钮,直到你到达数据库配置页面。

对于本指南,我们使用了一个名为drupal的数据库,一个名为drupaluser的数据库用户,以及一个名为password的密码。在用户创建阶段,您应该选择不同的密码。

Drupal database config

** 注意** :当您点击保存并继续,有可能将您重定向到相同的数据库配置页面。

您将在页面顶部看到一个信息框,告诉您现在更改设置文件的权限是合适的。我们会暂时这样做. 现在,您需要设置一些关于您的网站的基本信息。

Drupal configure site

点击保存并继续按钮最后一次完成安装,您现在可以通过访问您的域名访问您的网站:

Drupal completed install

您已成功完成 Drupal 安装。

然而,我们仍然需要重置我们的设置文件的权限,以便未经授权的用户无法进行更改。

1chmod 644 /var/www/html/sites/default/settings.php

这应该阻止对设置文件的进一步更改。

故障解析

如果 Drupal 安装的最后阶段未完成,请检查您的错误日志:

1sudo tail /var/log/apache2/error.log

如果你看到这样的错误:

1[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
2sh: 1: /usr/sbin/sendmail: not found

这表明安装没有成功完成,Drupal 记录了这个错误的几个原因和修复:

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

一些最可能的修复包括编辑 /etc/php5/apache2/php.ini 文件,以提高 max_execution_time:

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

檔案:

1max_execution_time = 300

您可能还想尝试在 Chrome 以外的浏览器中安装浏览器,例如 Safari。

无论如何,一旦实施修复,您将不得不删除现有的 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 标签页面,在那里您可以找到教程来帮助您。

Published At
Categories with 技术
comments powered by Disqus