如何在Ubuntu 14.04服务器与Apache上安装Drupal

Drupal是一个受欢迎的内容管理系统,权力Internet上一些最大的站点。在本指南中,我们将告诉你如何让你的Ubuntu 14.04服务器上安装的Drupal。我们将安装上安装的Apache,为Drupal推荐的Web服务器之上的应用程序的Drupal。

介绍

Drupal是一个受欢迎的内容管理系统(CMS),用于运行互联网上的一些最大的博客和网站。由于基础的稳定性,平台的适应性和其活跃的社区,Drupal在现场十多年后仍然是一个受欢迎的选择。 在本指南中,我们将介绍如何在Ubuntu 14.04服务器上安装Drupal。我们将使用Apache来服务我们的网站,因为这是Drupal团队推荐的配置。

先决条件

在开始使用本指南之前,您需要一个完成了一些基本配置的Ubuntu 14.04服务器。按照我们的Ubuntu 14.04服务器初始安装指南 ,以获取与设置sudo的特权的非root用户。 您还需要在服务器上配置Apache,PHP和MySQL。你可以学习如何按照我们的指导来设置此得到安装在Ubuntu 14.04 LAMP 。 完成上述要求后,请继续阅读本指南。 在我们得到Drupal文件并将它们安装到我们的web目录之前,我们需要准备我们的系统。虽然Apache,PHP和MySQL已经安装,我们需要进行一些额外的更改,并对我们的安装做一些调整。

为Drupal配置MySQL用户和数据库

我们要做的第一件事是配置一个MySQL用户和数据库,供我们的Drupal安装使用。出于安全原因,配置专用用户和数据库很重要。 首先,登录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指令,然后将两者设为“关”:
. . .
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”块中,添加一个指向我们的Web根目录的目录块。在此块中,设置AllowOverride指令“全部”。 您可能还需要增加一个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安装到我们的web根目录。 实际上,我们将首先将文件解压缩到我们的主目录,然后将它们复制到适当的位置。这样做将使我们在出现问题或以后任何文件被意外删除的情况下,可以随时访问原始文件。 进入Drupal的下载页面和“推荐版本”部分下签的最新版本。 右键单击上tar.gz你有兴趣的版本链接,然后选择“复制链接地址”或任何类似的选项,您的浏览器提供。 回到您的服务器上,切换到你的主目录,并使用wget使用复制的链接下载项目文件:
cd ~
wget http://ftp.drupal.org/files/projects/drupal-7.32.tar.gz
您的链接可能在结尾处有不同的版本号。下载文件后,通过键入以下内容解压缩应用程序目录:
tar xzvf drupal*
现在,移动到新提取目录结构和使用rsync实用安全的所有文件复制到你的服务器的Web根目录下。我们使用此命令中的点来指定当前目录。这是必要的,以便复制一些我们需要的隐藏文件:
cd drupal*
sudo rsync -avz . /var/www/html
现在你有你的主文件夹中的目录中的文件的原始版本,以防你需要引用它们。我们将进入web根目录以自定义我们的安装:
cd /var/www/html

调整Drupal文件的安全性和易于安装

基于Web的安装脚本要求我们对Drupal目录进行一些更改,以便正确完成该过程。我们应该事先得到这个,以便我们不必在Web浏览器和命令行之间来回切换。 首先,我们需要使子树的新目录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
此活动设置文件在安装过程中临时需要一些其他权限。我们需要暂时向组所有者授予写入权限(我们将立即将该组所有者分配给网络用户)。我们将在安装成功后将其删除:
chmod 664 /var/www/html/sites/default/settings.php
接下来,我们需要给我们的文件的组所有权给网络用户,这在Ubuntu是www-data 。我们想给整个Drupal安装这些所有权属性:
sudo chown -R :www-data /var/www/html/*
您的服务器现在已正确配置,以运行基于Web的安装脚本。

完成基于Web的安装过程

其余的安装将在您的Web浏览器中进行。打开浏览器并导航到您的服务器的域名或IP地址:
http://server_domain_or_IP
您将看到Drupal安装过程的初始页面: Drupal选择配置文件 除非有理由不选择,选择“标准”安装并单击“保存并继续”。单击接下来的几个继续按钮,直到进入数据库配置页面。填写配置数据库和用户时使用的详细信息。 对于本指南中,我们使用了一种叫做数据库drupal ,数据库用户名为drupaluser ,以及一个口令password 。您应该在用户创建阶段选择了不同的密码。填写数据库详细信息后,再次单击“保存并继续”: Drupal数据库配置 注意 :当你点击“保存并继续”,还有就是你会被重定向到同一个数据库配置页面的机会。如果发生这种情况,只需刷新页面。将配置数据库并安装配置文件。 您将在页面顶部看到一个信息框,告诉您现在可以更改设置文件的权限。我们会这样做。现在,您需要设置有关您的网站的一些基本信息。使用适合您网站的值填写字段: Drupal配置站点 最后单击“保存并继续”按钮完成安装。您现在可以访问您的网站,方法是访问您的域名: Drupal完成安装 您已成功完成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的标签页 ,在这里您可以找到教程,以帮助你走好人生路。您还将找到一个问题和答案区域,以获得社区的帮助或贡献。