跳转到主要内容
Elysium 提交于 1 December 2014

简介

Drupal 是一个运行在lamp(linux+apache+mysql+php)上的健壮的内容管理系统,默认的数据库是mysql,但是drupal也支持持PostgreSQL数据库,

.最近的ubuntu发行版在仓库中都包含了drupal6和drupal7,这也是ubuntu仅支持的两个drupal版本,在选择drupal版本时请注意!

LAMP 系统安装

使用其他方法安装lamp,请访问 Apache PHP MySQL

简单方法安装lamp

最简易的方式是使用终端命令行安装整个lamp包

sudo tasksel install lamp-server

如果你的系统不支持tasksel命令,请安装: 

sudo apt-get install tasksel

我(可选)也推荐启用apache2的rewrite功能,它对drupal的很多模块和apache服务器的页面重定向很有帮助

编辑文件 "/etc/apache2/sites-available/default" ,修改每一处的 "AllowOverride none" 为 "AllowOverride All", 然后执行: 

sudo gedit /etc/apache2/sites-available/default

sudo a2enmod rewrite

sudo service apache2 restart

Drupal 安装

备注:下列两种安装方法是不兼容的,从ubuntu包(仓库中)和人工安装的目录是不同的,选择一种安装方式,不要尝试同时使用,不支持两种方式切换

 从ubuntu仓库中安装drupal包

你可以在ubuntu仓库中选择安装drupal6 或者drupal 7,如往常一样,仓库中的版本不是最新的,但是可以很容易的更新

sudo apt-get install drupal6

或者

sudo apt-get install drupal7

允许 dbconfig-common 配置你的数据库 (默认数据库: MySQL) 

然后,向apache注册drupal模块: 

sudo cp /etc/drupal/6/apache2.conf /etc/apache2/mods-enabled/drupal.conf

或者

sudo cp /etc/drupal/7/apache2.conf /etc/apache2/mods-enabled/drupal.conf

最后,重启apache服务器: 

sudo service apache2 restart

 手动安装drupal

以下步骤以drupal7系列中的drupal 7.25版本为例,它是写这篇文章时的最新版本(该步骤也通用drupal6)

wget http://ftp.drupal.org/files/projects/drupal-7.25.tar.gz

tar -xvzf drupal-7.25.tar.gz

sudo mkdir /var/www/drupal

sudo mv drupal-7.25/* drupal-7.25/.htaccess drupal-7.25/.gitignore /var/www/drupal

需要在drupal默认的站点安装目录下新建一个子文件夹,用来存放定制的logo,用户名和其他的你的新站点的媒体文件。

sudo mkdir /var/www/drupal/sites/default/files

sudo chown www-data:www-data /var/www/drupal/sites/default/files

也需要为默认站点创建一个启动配置文件. 

sudo cp /var/www/drupal/sites/default/default.settings.php /var/www/drupal/sites/default/settings.php

sudo chown www-data:www-data /var/www/drupal/sites/default/settings.php

为Drupal手工配置mysql数据库

你需要为drupal创建一个数据库用来导入drupal的数据库表,可以通过phpmyadmin或者命令行创建该数据库 

mysqladmin -u root -p create drupal

为drupal创建一个名为drupal的数据库,当然,你可以自定义该数据库名

mysql -u root -p

 

mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON drupal.* TO 'drupaluser'@'localhost' IDENTIFIED BY 'drupalpass';

你肯定不想drupal使用root账号连接数据库,上面命令创建了一个拥有一定权限的不同于mysql root的数据库用户:drupaluser ,drupalpass ,你可以使用其他用户名和密码来替换drupaluser和drupalpass,如果命令成功激活新的权限:

mysql> FLUSH PRIVILEGES;

退出mysql命令: 

mysql> \q

为drupal配置 PostgreSQL 数据库

编辑 /var/www/drupal/sites/default/settings.php 文件,指定drupal使用的用户名,密码和数据库 

sudo gedit /var/www/drupal/sites/default/settings.php

        * Database URL format:

        $db_url = 'pgsql://username:password@localhost/databasename';

        where username = drupaluser  password = drupaluserpass databasename = drupaldb

重启 Apache

最后重启Apache2. 

sudo service apache2 restart

使用浏览器完成drupal的最终安装

最后,在浏览器里输入 http://localhost/drupal/install.php (或者可能是 http://localhost/drupal6/install.php 或者 http://localhost/drupal7/install.php 如果安装使用的是官方仓库),创建一个账号,登陆,按照安装指示连接数据库,然后配置你的站点 ,第一个账号将会自动的成为拥有所有权限的主要管理账户

 

安装Drupal 7 的特殊问题

当你在本地安装drupal 7 的时候,可能会遇到关于“模块” “主题” 和 “邮件认证”的特殊问题 

安装新模块

当安装一个新的模块的时候,可能会遇到下列错误: 

"WARNING: You are not using an encrypted connection, so your password will be sent in plain text. Learn more." 

 

"To continue, provide your server connection details"

该警告提示有点儿误导,错误是有服务器的目录写权限引起的

写权限

如果你不担心安全问题,最快的解决方式是更改写权限

当apache的用户是 www-data(apache默认的,ngnix也是默认的): 

sudo chown www-data:www-data -R /var/www/drupal/sites

命令行

安全的解决方式是通过ssh的命令行方式解决,慢但是更安全

例如: 安装Wysiwyg 

wget http://ftp.drupal.org/files/projects/wysiwyg-7.x-2.1.tar.gz

tar -xvzf wysiwyg-7.x-2.1.tar.gz

sudo mkdir -p /var/www/drupal/sites/all/modules/wysiwyg

sudo mv wysiwyg/*  /var/www/drupal/sites/all/modules/wysiwyg

Wysiwvg 需要客户方的编辑器, CKEditor 运行以下

wget http://download.cksource.com/CKEditor/CKEditor/CKEditor%203.6.1/ckeditor_3.6.1.tar.gz

tar -xvzf ckeditor_3.6.1.tar.gz

sudo mkdir -p /var/www/drupal/sites/all/libraries/ckeditor

sudo mv ckeditor/*  /var/www/drupal/sites/all/libraries/ckeditor

调整php内存限制

你应该增加默认的php内存限制值(内存值用来支持运行脚本),默认的8M是不够的,使用96M或者160M,如果你想使用图形界面(尽管基本的32m足够了)

在drupal6的较新版本中,简单的你可以编辑settiings.php文件增加下列值

ini_set('memory_limit', '96M');

Drupal 版本