Drupal related
记录一些 Drupal 相关的文章,主要翻译一些有用的放在此处备忘。
4.7 的模块
为了新的项目,寻找一些合用的模块。
Admin block
drupal.org/node/19309
为管理员显示一个板块,显示那些需要管理的评论,方便进行编辑和删除。
貌似不错的模块,只是站点评论少,就可以免了。
Bad Behavior
drupal.org/node/30501
Bad Behavior 是一系列 PHP 片断的集合,通过分析实际的 HTTP 请求来识别垃圾机器人,并进行阻止。
好像不错,不过暂时站点访问量小,也可以不考虑。
Block Bar
Block Bar
是其他板块的容器,类似 Outlook 风格。
如果侧边栏的板块多就可以用这个来节约空间。
Bookmarks
Bookmarks
允许用户有自己的书签板块,可以添加任何 URL 到列表中,还有一个快速连接特性使得用户轻易将当前访问的页面添加到书签中。
说的不错,只是我没有看到那个快速连接,每个 URL 都要手工输入,烦不烦?
Browscap
Browscap 对访问站点的浏览器进行识别,并对他们进行统计和监视,让管理员了解客户端的情况。
很好的模块,有一定帮助。
captcha
captcha 随机产生一个有字符或数字的图片,必须看图识字,输入图中文字才能发表。
防止垃圾,很有效。
Drupal 的安装
Drupal 在各种环境下的安装。
常规安装 Drupal
本文依据随 Drupal 发布的 INSTALL.TXT 文件翻译整理。
首先当然要从 Drupal.org 下载需要的版本。
在 Linux 下可以用 wget 来下,例如最新的 4.7 版:
wget
http://drupal.org/files/projects/dru...0-beta3.tar.gz
然后解压,在 Linux 下直接执行:
tar zxvf drupal-4.7.0-beta3.tar.gz
在 Windows 下可以用 7-zip(一个根据 GNU LGPL 协议发布的免费压缩/解压缩软件)。
解压后得到 drupal-4.7.0-beta3 目录。
如果在本地可以直接将该目录移动过去,例如:
mv drupal-4.7.0-beta3 /var/www/html
如果是在远程主机上,就用FTP客户端上传 drupal-4.7.0-beta3 目录下所有内容。
未完成~~~~
必要条件
要安装一个 Drupal 站点,需要满足一定的条件,当然现在这种条件很容易满足。
本文由 Holz 根据
http://drupal.org/node/270 翻译整理。
一个可以执行 PHP 脚本的 Web 服务器。
推荐: Apache。 Drupal 在 1.3.x 版下进行开发,但 2.0.x 版也已经成功通过测试。
可选: IIS。 Drupal 在开发时就注意了与 IIS 的兼容,而且也有报告显示 Drupal 在 IIS 中是可以正常工作的。
PHP
对于 Drupal 4.6,需要 4.3.3+ 的 PHP (PHP 5 也 得到了 4.6 的支持)。 Drupal 4.2 到 4.5.2 需要 4.1+ 的 PHP。 更老版本的 Drupal 能运行在 PHP 4.0.6+。 推荐使用最新版本的 PHP 4.x。
PHP XML 扩展 (用于 {bloggerapi|drupal|jabber|ping}.module)。 这个扩展在一个标准安装的 PHP 中 默认已启用, windows 版的 PHP 内建本扩展支持。
一个 Drupal 内核安装需要 8MB 的 php 内存。 如果您安装了额外的模块可能需要 增加 php 允许的内存。 重新打包的 Drupal 发行版例如 CivicSpace 可能需要更高的 php 内存。
PHP 需要 下列 配置 指令 使得 drupal 能正常工作:
session.save_handler: user
此外我们 推荐 下面的设置:
session.cache_limiter: none
(这里只写出与 PHP 4.0.6 默认 php.ini-dist / php.ini-recommended 不同的地方)
上面的这些设置包含在随 Drupal 发布的默认 .htaccess 文件中,因此您实际上不需要设置他们。 虽然如此,仍然值得注意的是, .htaccess 中的 php 配置仅仅适用于
Apache (或兼容的 webserver),
当 .htaccess 确实被读取,如 AllowOverride 不是 None,
当 php 作为一个 Apache 模块安装时。
参考 此处 了解如何改变其他接口的 PHP 设置。
使用一个支持 PEAR 的数据库 (见后文) 要求 (理所当然) PEAR 已正确 安装。
一个支持 PHP 的数据库服务器
推荐: MySQL, v3.23.17 或更新版本 (我们使用 INNER JOIN's with join_condition's)。 MySQL 4 就不错。
drupal 在某些廉价的主机计划中一些功能不能用,例如 LOCK TABLE
从 4.7 以后工作良好的有: PostgreSQL, 7.3 或更新 (7.2 也许能工作,但从 4.6 更新时可能会有一些错误)。 其他数据库需要您的实验。
注意: 如果您的系统/主机运行 MySQL 4.1 以上版本,在疑难解答部分的 (
http://drupal.org/node/35226) 会连接到 这个页面,那里有一些有助于定位 PHP 4.x 和 PHP5 问题的信息。 还有一些次要的 OS 文章讨论 MySQL 5+ 安装 主要基于 Windows 不过也部分适用于 *nix 安装。
同样, 基于 xTemplate (4.6.x 及以前版本的默认主题引擎) 的主题也有一些关于 php5.0.5 和 5.1 的文章。 换用 phpTemplate (4.7 的默认主题引擎) 引擎看起来是个不错的解决办法。
Drupal 的手册页面代码
Drupal 的 handbook 页面是一个很不错的效果,所以上次的站点丢失以后,还是继续将这个代码找回来,记录下来以备后用。 这个代码需要 CSS 的配合。
<?php
// Book nids and their titles
$books = array(1 => "About Drupal", 258 => "Installation and upgrading", 257 => "Configuration and customization", 316 => "Developing for Drupal", 14279 => "About Drupal documentation");
foreach ($books as $nid => $title) {
print '<h2 style="clear: left;">'. l($title, url('node/'. $nid)) .'</h2>';
// Fetch first level children
$result = db_query("SELECT DISTINCT b.nid, n.title FROM {book} b INNER JOIN {node} n ON b.nid = n.nid WHERE b.parent = %d AND n.moderate = 0 AND n.status = 1 ORDER BY b.weight ASC", $nid);
// Output pretty two-column list
$half = ceil(db_num_rows($result) / 2); $i = 0;
$section = '<div class="column-left"><ul>';
while ($page = db_fetch_object($result)) {
$section .= '<li>'. l($page->title, 'node/'. $page->nid) .'</li>';
$i++;
if ($i == $half) {
$section .= '</ul></div><div class="column-right"><ul>';
}
}
$section .= '</ul></div>';
print $section;
}
?>
这时 Drupal 的 CSS 代码,改改就可以自己用了。
/* Styles for nside nodes */
.column-left {
float: left;
width: 47%;
padding-right: 3%;
}
.column-right {
float: left;
width: 47%;
}
.node img.right {
margin-left: 5px;
clear: right;
float: right;
padding: 1px;
border: 1px solid #ccc;
}
.node img.left {
margin-left: 5px;
clear: right;
float: right;
padding: 1px;
border: 1px solid #ccc;
}
.node .gallery-item {
float: left;
width: auto;
margin-right: 12px;
}
.node .gallery-item img {
border: 0px;
float: left;
clear: both;
}
ul.bulky li {
margin-bottom: 0.5em;
}
在 Byethost 上安装 Drupal
我自己在 byethost 上安装 Drupal 的经历。
在 byethost 上装 Drupal 很花了一些时间,主要是一开始不清楚该主机的特别要求,例如要更改 htaccess 等,还有 FTP 上传,一开始用错客户端,几乎放弃。
01.注册用户
登陆 Byethost。
单击页面下面的 Click Here to Sign-up 连接,根据提示建立一个用户,然后等待 Byethost 来信。
一定要用一个正确的邮箱,否则收不到信就白忙活了。
02.收到来信
过了好长时间,大约二天,收到来自 Byethost 的信,标题大约是 “You have been approved for a Byethost account ”
下面是信件内容,中文为我自己添加的说明:
Thank you for registering at byethost15.com. We are delighted to inform you that your account holz.byethost15.com has been successful !
大意说感谢在 byethost15.com 这台服务器上注册,很高兴您的账号 holz.byethost15.com 开通了,holz.byethost15.com 既是账号,也是将来网站的域名。
Your account will be activated, and you should be able to login to the Cpanel, in 15 - 20 minutes .
账号将在 15-20 分钟内激活,那时就可以登陆控制面板了。
Take careful note of your login details below and consider printing them for your own records.
下面是详细的登陆信息,一定要记住。
---------------------------------------------------
Cpanel Username: holz.byethost15.com
控制面板登陆的用户名是 holz.byethost15.com
Cpanel Password: 123456789
控制面板的密码是 123456789
Your URL: holz.byethost15.com
您的网站地址是 holz.byethost15.com
FTP IP : 209.190.18.74
FTP Login : MUST CREATE IN CPANEL
FTP 登陆用户名必须由你自己在控制面板建立
FTP Password : MUST CREATE IN CPANEL
FTP 登陆密码也要自己在控制面板建立
MySQL Database Name: MUST CREATE IN CPANEL
MySQL 数据库名称要自己在控制面板建立
MySQL Username : MUST CREATE IN CPANEL
MySQL 用户名要自己在控制面板建立
MySQL Password : MUST CREATE IN CPANEL
MySQL 密码要自己在控制面板建立
MySQL Server: localhost
MySQL 服务器必须是 localhost
Cpanel URL:
http://www.cpanel.byethost15.com
这是登陆控制面板的地址。
---------------------------------------------------
Please , do firstly create an FTP account, in your cpanel, the ftp account login will look like an email address , e.g. you enter 'admin' as the FTP user name on (holz.byethost15.com) then your ftp username will be
admin@holz.byethost15.com
请第一时间建立一个 FTP 账号,在控制面板中,FTP 登陆账号看起来象 E_Mail 地址,例如你建立一个名为 admin 的FTP用户,那么你的 FTP 登陆用户应该是
admin@holz.byethost15.com
PLEASE NOTE ALL WEBSITE FILES SHOULD BE UPLOADED TO THE 'HTDOCS' FOLDER
POR FAVOR, OBSERVE QUE TODOS LOS FICHEROS SEAN CARGADOS EN LA CARPETA 'HTDOCS'
MERKEN SIE BITTE ALLE WEB SITE AKTE SOLLTE ZUM ' HEFT DES HTDOCS' GEHOCHLADEN WERDEN
NOTI PREGO TUTTA LA LIMA DI WEB SITE DOVREBBE UPLOADED AL DISPOSITIVO DI PIEGATURA 'DEL HTDOCS
ANOTE POR FAVOR TODA A LIMA DO WEB SITE DEVE UPLOADED AO DOBRADOR ' DO HTDOCS'
HOUDT U ER AUB REKENING MEE DAT ALLE WEBSITE DOCUMENTEN NAAR DE 'HTDOCS' FOLDER DIENEN TE WORDEN GEUPLOAD.
ANOTE POR FAVOR TODA A LIMA DO WEB SITE DEVE UPLOADED AO DOBRADOR ' DO HTDOCS'
上面用各种语言告诉你网站的文件,例如 Drupal 必须上传到 HTDOCS 目录下。
下面还有一些感谢,FAQ等,省略。
03.控制面板
登陆 Byethost 的控制面板后,发现是 VHCS 管理系统。
对各项进行简要介绍:
General information,一般性信息,包括个人信息、密码、界面语言、主机计划(例如想升级为付费空间)等管理。
Manage domains,管理域名,如果你有注册到域名,可以通过 Add Alias 绑定。
Email Accounts,是 byethost 送你的邮局。
FTP Accounts,第一次登陆就要访问这里,建立一个 FTP 登陆账号。注意当你建立一个名为 admin 的 FTP 用户时,实际上登陆 FTP 的用户应该是
admin@holz.byethost15.com(假设您的 byethost 账号为 holz.byethost15.com)。
Manage SQL,管理 MySQL 数据库的地方,首先用 Add SQL Database 建立一个数据库,然后在该数据库下面用 Add SQL User 建立该数据库相对应的用户。
例如我要装 Drupal,就可以建立一个名为 drupal 的数据库,然后添加 admin 为数据库用户,admin123456 作为用户密码。
Webtools,一些工具,如包含区域、每日备份、错误页定制等。
Domain statistics,域名统计,按月统计浏览之类的信息。
New Support System,byethost 新的帮助系统,会连接到 byethost.com:8080,我的一些问题就是在此找到答案的。请遇到问题首先访问此处,找不到答案再写信给 Byethost。
Logout,不用说,完成作业要退出系统,免得他人作乱。
04.Drupal 设置
建立好 FTP 账号、MySQL 数据库等之后,到 Drupal.org 下载一个发行。例如我自己下了一个 4.7-Beta 4,解压得到 drupal-4.7.0-beta4 目录,现在要根据 Byethost 修改一些数据。
首先修改 .htaccess 文件
将 "php_" 开头的那些部分删除。
具体就是下面这些:
<IfModule mod_php4.c>
php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0
</IfModule>
<IfModule sapi_apache2.c>
php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0
</IfModule>
如果不愿意删除,也可以在每行前面用“#”号注释掉。
将 "options -index" 和 "options" 这样的行删除,具体是两行:
# Set some options.
Options -Indexes
Options +FollowSymLinks
同样,如果不愿意删除,也可以在每行前面用“#”号注释掉。
编辑 setting 文件。
这个文件是 sites/default/setting.php,只要修改两个地方:
将
$db_url = 'mysql://username

assword@localhost/database';
改为
$db_url = 'mysql://admin:admin123456@localhost/drupal';
因为我们在控制面板中建立了名为 drupal 的数据库以及 admin 用户。
将
$base_url = 'http://www.example.com'; // NO trailing slash!
改为
$base_url = 'http://holz.byethost15.com'; // NO trailing slash!
因为我的网站地址是 holz.byethost15.com,注意不用画蛇添足加一个斜杠哦。
为什么要修改 .htaccess 文件?这是依据 500 Internal Server Error 上的说明做的,如果不这样修改,那么将来会出现 500 错误。
05.上传 Drupal
对于 byethost 的主机,最佳的 FTP 客户端就是 SmartFTP,这个软件个人使用免费,并且有官方的中文语言包。
针对 Byethost 的主机,smartftp 应该做以下设置,打开 SETTINGS >> Connection。
Max. Retries =10
Retry Delay = 30
Connection Timeout = 40
Protocol Family = IPv4
Send FEAT = enable
Mode = PASV
Port IP mode = auto
Force PASV = disable
Keep Alive = Enable
然后输入 byethost 的 FTP 地址,输入你自己的 FTP 用户名和密码,登陆后,进入 htdocs 目录,选中本地目录 drupal-4.7.0-beta4 下所有内容,上传。
个人经验:千万不用 FlashFXP,那速度真是杀死人的慢(仅针对 Byethost)!
06.导入数据表
登陆 Byethost 控制面板,点 Manage SQL。
点击 PhpMyAdmin,在弹出的提示中输入 MySQL 用户名和密码(都是在控制面板中建立的),进入 PhpMyAdmin 界面。
在左边选择数据库,然后在右侧点 SQL 标签,如下:
单击 浏览... 按钮,选择 drupal-4.7.0-beta4/database/database.mysql 文件。
单击右下方的 执行 按钮将数据表导入数据库,应该有 56 个表。
07.完成站点设置
立刻访问自己的站点,例如 holz.byethost15.com,不出意外你应该是第一个访问的人,根据提示创建第一个用户。
登陆站点,在 administrater >> settings 下面设置自己的站点名称、口号、任务、页脚信息、缓存、错误处理、文件系统等;到 administrater >> categories 下面设置一些基本的分类;到 administrater >> modules 启用一些模块,如 blog、forum、path、locale 等;到 administrater >> blocks 调整一些板块设置。
然后就可以在导航菜单中的 create content 下面撰写文章了。
只有第一个用户具有所有的权限,所以自己的站点一定要拥有第一个用户的账号,否则这个站点不能说是你的。