下面列出一些常见问题:
如果在使用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功能需要这一权限,所以就会造成上面的错误。一般来说,只要你可以赋予数据库用户这一权限就可以了。但如果你使用虚拟主机,一些服务商可能不允许使用这一权限,你需要联系你的服务商看看是否能够解决这一问题。
虽然也有一些折中的解决办法,但并不推荐使用,如果你的服务商不能开放这一权限,那么他们肯定不是适合你的Drupal的选择。
如果5.x下面Garland主题的自动配色功能不见了,那么可能是下面几个原因:
如果你碰到类似下面的错误信息,说明 Drupal 需求的内存超过了 PHP 允许内存值。
Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)...你可以通过下面几种办法增加 PHP 内存上限:
memory_limit = **M 这一行就行了。 ini_set('memory_limit', '**M'); php_value memory_limit **M 尝试增加 memory_limit 的值,将 **M 改为更高(例如 20M ),直到上面的错误信息消失。官方文档显示 Drupal 6.x 的最小需求 PHP 内存值为 16M。
Drupal5.x开始提供了一个hook_uninstall钩子,供模块卸载使用。绝大数5.x模块都使用了这一钩子(可以在.install文件中看到),用于卸载模块时彻底删除掉该模块的信息(数据库、变量等)。
在卸载模块时,您需要先到“管理->模块->列表(admin/build/modules)”下面,关闭该模块,但这只是暂时关闭模块,并没有完全卸载,您还需要点击页面上方的“卸载” tab 进一步卸载该模块,才能彻底从数据库中清除掉该模块的信息。
在有些情况下,如果模块没有正常卸载(比如关闭模块后,您没有再卸载,而只是手动删除了相关数据库表单),下次再重新安装该模块时可能会出现问题。这是因为,在数据库system table里面有所有已安装模块的记录,如果正常卸载,Drupal会删除掉这一项,下次再安装时会先查询这一项,如果不存在就通过hook_install来新建相应数据库表单。如果没有正常卸载,system表单中这一项还存在,那么下次再安装时,Drupal会误认为此模块已存在,而造成安装不能正常进行。解决的办法,通过MySQL/PHPMyadmin把相关项删除:
DELETE FROM system WHERE name = 'modulename';
//modulename就是您要卸载的模块名称当在试用或者测试一些模块时,如果模块有问题,可能会造成页面显示为一个空白页面,而使你无法回到模块管理页面去关闭它。这时候通常有两个办法可以解决:
1. 通过ftp删除这个有问题的模块;
或者
2. 直接进行下面的数据库操作:
UPDATE `system` SET `status` = '0' WHERE `name` = 'module_name' LIMIT 1;这之后你应该可以访问模块管理页面来关闭它了。
从4.7开始可以在 管理>>设置 里可以将你的站点设置为"维护状态",这时用户将只能看到"站点维护中"的页面,也无法登陆。作为管理员,你还是可以同过下面这个链接登陆进去修改设置:
www.example.com/?q=user
最好使用第一个用户(uid=1)作为管理员登录,其他的管理员账号可能并没有"管理站点设置"的权限,并可能造成你无法退出的情况。这时候就必须清除浏览器缓存,再访问上面的链接,然后使用有正确权限的管理员账号登录。
作为最后一招,你还可以直接更改数据库来接触站点的"维护状态":
UPDATE variable SET value = 's:1:"0";' WHERE name= 'site_offline';