Whether you are a Drupal newcomer or a seasoned Drupal ninja, you’re bound to run into one, some, or all of the issues outlined below. Some are obvious, some not so obvious, but I’ll show you how to troubleshoot them all regardless.
Some of these issues took a while to troubleshoot, so if you use Drupal as much as we do, make sure you bookmark this page for easy reference in the future. There is nothing worse than spending hours on a problem that can be solved within minutes with the right information (we’ve all been there).
1. Users with ‘edit page content’ access cannot edit simple pages
Chances are the nodes that the users are trying to edit have an input format that they’re not permitted to use. Try this:
- Check the input format for the body field. If its “Full HTML” or “PHP Code” for example, and that user role cannot create content of that input type, they won’t even see an edit tab for that node. Either change the input format to one they can access, or grant access to that input format at: “admin/settings/filters”
- Double check that their role has permission to edit that particular node type at “admin/user/permissions”
2. My client cannot see content he/she has created after logging out
This is likely a caching issue. They can see the content when they are logged in because some caching instances are based on user roles. Check the following:
- Clear cached data at “admin/settings/performance”
- Clear your browser’s cache
- Adjust the “Minimum Cache lifetime” setting also under “admin/settings/performance”
3. Images within posts are disappearing after publishing the node
This is likely related to the “Input Format” (again). If the node is using the default settings, “Filtered HTML”, input format tags such as img, object, script, etc. will be stripped out. Try the following:
- Grant the role in question access to the “Full HTML” input format
- Create a custom Input Format that includes the tags you want
4. My theme (CSS/template) changes aren’t showing up
- Is CSS caching turned on? If so, turn it off while your theme is still under development. You can do so at “admin/settings/performance”
- If that still doesn’t work, try clearing your browser’s cache
If you’re using Drupal 6, you may also need to clear out the theme registry if you have added new theme functions or new templates. While you’re at admin/settings/performance, you can hit the “Clear cached data” button. Check out a full write-up about the new theme registry. (Thanks Steven Merrill!)
5. I’ve lost all my anonymous user content! (comments)
When was the last time you imported/exported your database? This issue seems to happen when MySQL creates the user’s table from a batch file (or database transfer via Navicat) – the user id from the table is auto-incremented and the required ‘0’ value is replaced. Try the following:
- Manually reset the uid value for the anonymous visitors in the users table. More info found here at Drupal.org
6. I’m getting the dreaded white screen of death!
There are many possible causes for this: PHP error reporting settings, memory exhaustion, etc. Try the following:
- Read this article on Drupal.org
7. My web pages take forever to load. What’s the deal?
8. It’s a pain to try and develop a theme starting with Garland. Isn’t there a better way to theme from scratch?
Yes, there is. Install the Zen theme starter kit. Zen makes it easy to theme from scratch, and best of all, Zen is a standards-compliant theme.
9. My blog gets hit with a ton of spam, what can I do?
1 word: Mollom; install the Mollom spam module, configure it, and you’ll forget that spam ever existed. Mollom has a free and a paid version – the free will be sufficient for most sites and it even includes some impressive statistics reporting.
10. How can I figure out which theme function (or template file) I need to override in different places?
Install the Devel module. The Devel module was created specifically for Drupal developers. It will streamline your Drupal development process by showing you which functions/templates were used to render parts of the page.
11. My layout looks “broken” all of the sudden, what happened?
This may be a CSS issue, it may be a caching issue, or it may be something else. Try emptying the cache (admin/settings/performance) or try rebuilding the theme registry. Side note: you can easily empty Drupal’s cache and rebuild the theme registry using the menu provided by the Devel module mentioned above.
12. CSS images disappear when caching CSS caching is turned on
There are a number of potential causes for this:
- Check the permissions to the files and CSS folders at (sites/default and sites/default/files/css respectively) – the server needs read and write access
- Is your CSS file importing another with @import? This could be breaking things. Try embedding the imported CSS directly
- Are you using relative or absolute paths? There seems to be an issue with this as well
- Do you have any funny characters in your URL? While working on a local version of one our sites, we had parenthesis in a directory name; this was breaking the link
- Check this article for some more information
13. My custom URL alias keeps being overridden!
If you have the Pathauto module installed, it might be overriding your custom URL. To fix this, uncheck “Automatic URL Alias” under the URL alias fieldset – this will allow you to use your custom URL in conjunction with the Pathauto module. Also, there is a patch that apparently fixes this issue – though we have yet to test this.
14. Users cannot view/edit custom CCK field(s)
Do you have the “Content Permissions” helper module enabled that comes packaged with CCK? If so, check the field permissions for that user role. By default, only users with administer CCK privileges can edit/view each field.
15. A specific Drupal user isn’t able to perform a necessary task (such as editing a specific content type)
Double check the permissions for the user’s Role(s); they probably don’t have sufficient privileges to carry out the task.
Did we miss anything?
If you have any Drupal bugs or problems which you feel may be common, leave a comment below and we’ll add it to the list.