介绍
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
的数据库,一个名为drupaluser
的数据库用户,以及一个名为password
的密码。在用户创建阶段,您应该选择不同的密码。
** 注意** :当您点击保存并继续
,有可能将您重定向到相同的数据库配置页面。
您将在页面顶部看到一个信息框,告诉您现在更改设置文件的权限是合适的。我们会暂时这样做. 现在,您需要设置一些关于您的网站的基本信息。
点击保存并继续
按钮最后一次完成安装,您现在可以通过访问您的域名访问您的网站:
您已成功完成 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 记录了这个错误的几个原因和修复:
一些最可能的修复包括编辑 /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 标签页面,在那里您可以找到教程来帮助您。