Drupal 4.6及更早

Drupal汉化

安装Drupal后,您最先遇到的问题就是如何将其中文化,办法很简单:

  1. 下载汉化包:
    由于带宽与方便维护、升级的原因,我们的汉化包同其它众多翻译项目一样,都统一放在drupal.org的zh-hans(简体中文的语言代码)项目下,请选择您对应的Drupal版本下载:

Drupal的版本号说明

我该使用哪个版本的Drupal?
一般建议您使用最新的稳定版本,DrupalChina都会在首页醒目位置标志这些稳定版本的链接。您也可以直接到drupal.org查看。在某些特定情况下,比如某些您必需的模块还没有升级的时候,或者您的站点工作正常而您又没有足够的时间与资源来升级的话,继续使用旧版本也是个不错的选择。但是新版本推出时,常会弥补一些安全漏洞,您至少应该把这些安全补丁更新。

现在Drupal的最新的正式版本是5.1,下一个主要升级版本6.0正在开发中,并不适合作为正式站点使用。Drupal4.7.6是4.7系列中的最新版,4.7系列也还在维护中,但大多数新功能都不会再加入4.7版,如果您现在开始计划新的站点,应该直接考虑使用5.1正式版。

重置第一个用户(超级用户)的密码

如果您忘记了超级用户的密码(uid=1),而通过emaili重置密码又不工作时,可以通过下面的数据库操作重置密码:

UPDATE `users` SET `pass` = MD5('mynewpassword') WHERE `uid` =1 LIMIT 1;

用您的新密码替换上面的mynewpassword就可以了。

启用或关闭模块

有时候您可能需要通过数据库操作来启用或关闭模块,比如使用了有问题的模块时。

使用下面的SQL代码开启名字为"example"的模块:

UPDATE `system` SET status=1 WHERE name='example';

使用下面的SQL代码关闭名字为"example"的模块:

UPDATE `system` SET status=0 WHERE name='example';

清除Drupal缓存

在重装、转移或升级站点时,或者在站点开发测试时,往往需要清除Drupal缓存,以避免一些不必要的问题并及时看到站点的更新。清除缓存本身并不会破坏你的站点,也并不会丢失数据,最多使站点暂时变得较慢,当Drupal缓存重新建立后,你的站点速度也会恢复。下面的SQL代码可以用来清除Drupal缓存。

DELETE FROM cache;

(您也可以下载devel模块,这个模块提供了一些开发常用的工具,包括清除缓存按钮。)

合理利用帐号与用户角色

下面是一些合理使用用户帐号与角色的建议:

  1. 不要使用超级用户帐号(也就是第一个用户帐号uid=1)进行日常活动。这个账户应该主要用于站点设置、升级等管理性操作。
  2. 根据你的站点的需要为你的站点建立适当的用户角色,例如“站点管理员”、“论坛版主”、“手册编辑”等,这样能够帮助你更好的细分管理用户权限。注意“管理用户”这一权限,拥有这一权限的用户将可以给自己添加其它任何权限。
  3. 新模块经常会带来新的权限设定。记住添加新模块后检查一下用户权限页面,有没有需要添加或更改的地方。

开启了有问题的模块而无法回到管理页面去关闭它,怎么办?

当在试用或者测试一些模块时,如果模块有问题,可能会造成页面显示为一个空白页面,而使你无法回到模块管理页面去关闭它。这时候通常有两个办法可以解决:

1. 通过ftp删除这个有问题的模块;
或者
2. 直接进行下面的数据库操作:


UPDATE `system` SET `status` = '0' WHERE `name` = 'module_name' LIMIT 1;

这之后你应该可以访问模块管理页面来关闭它了。

模块编写教程

下面列出一些模块编写教程,有的是中文原创,有的是翻译自drupal.org手册。

在开发新的模块或外观主题时,一定要注意不要与任何已有的模块或主题重名,否则将会引起冲突而不能正常工作。

PHP memory 错误

如果你碰到类似下面的错误信息,说明 Drupal 需求的内存超过了 PHP 允许内存值。

Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)...

你可以通过下面几种办法增加 PHP 内存上限:

  • 如果你可以更改 php.ini 文件,直接修改 memory_limit = **M 这一行就行了。
  • 一般虚拟主机你不能修改 php.ini 设置,那么可以尝试在 sites/default/settings.php 里添加
    ini_set('memory_limit', '**M');

"LOCK TABLES sequences WRITE" 错误

如果在使用Drupal中出现类似下面的错误:

user error: Access denied for user: 'YOUR DATABASE USER@localhost' to database 'YOUR DATABASE'
query: LOCK TABLES sequences WRITE in /your website/database.mysql.inc on line xx

说明你的Drupal安装时对应的数据库用户没有LOCK TABLE权限,而一些Drupal功能需要这一权限,所以就会造成上面的错误。一般来说,只要你可以赋予数据库用户这一权限就可以了。但如果你使用虚拟主机,一些服务商可能不允许使用这一权限,你需要联系你的服务商看看是否能够解决这一问题。