Drupal Install Checklist

This is not meant to be a full fledged install tutorial... There exists plenty of good install tutorials are available... This is more a checklist of the 10 things I do when drupal is installed (I wish drupal would do that by default). Note that drush commands are included... so technically, it is possible to daisy chain most of these commands in a bash script file... making enabling modules on a new install a breeze.

  • Setup a database/ database user - mysql is the most common setup. You could use sqlite but some distribs like centos 5 out of the box have a version of sqlite that is too old
  • Fix permissions - When you install drupal you need to tweak permissions. ie: Give web user the right to write in the files directory  and settings.php during install (then set it to read only)
  • Install Drush - see related article on drush for details and a list of useful commands. This article assumes drush is installed with commands to setup things from the command prompt. You can obviously download the modules manually and install/enable them manually
  • Clean URLs - Make sure that clean urls are enabled (needs mod_rewrite on apache, rewrite module on iis). With drush, "drush vset clean_url 1" (if you need to disable them, use 0) but you can enable it from the configuration menu in admin
  • Wysiwyg module - I am not really sure why it does not come by default but, here it goes:
    • download and install the wysiwyg modul either manually or with:
      • drush install wysiwyg
      • drush en -y wysiwyg
    • download a wysiwyg html plugin (I use ckeditor), and put it in sites/libraries/[module] (for example sites/libraries/ckeditor)
    • Enable the wysiwyg module in content types
  • Adsense module - if the site is public, it is always nice to enable the adsense module
    • download and install adsense module
      • drush install adsense
      • drush en - y adsense
    • Configure adsense in Configuration > Webservices > Adsense
  • enable the book module - this is useful if like on webdevpower, you want to have hierarchical pages to sort content
  • Analytics module - very useful to get statistics (though technically you have many options included drupal's own statistics.
    • drush install google_analytics
    • drush en -y google_analytics
  • Enable path auto module - automatic aliases for urls... very useful for SEO. Note we download the token module too needed by pathauto
    • drush dl token
    • drush en -y token
    • drush dl pathauto
    • drush en -y pathauto
  • Create a cron job - this updates search and other functions that are not run automatically
    • First find out the url for cron... for drupal 6, it used to be just http://yoursite.com/cron.php but since drupal 7, to prevent abuse, the url has been protected.
      Get the url from the admin menu -> reports -> status report
    • create a cronjob crontab -e from shell
      0 * * * * wget -O - -q -t 1 http://site.com/[cronurl obtained in previous step]
  • User registration approve only - Unless the site is open to the public, set the user registration mode to approve (or closed if you know that no one will be added), that will prevent spammers from coming in but still allow people in.
  • edit content filters - in my taste the default filtered html is a bit restrictive, I add a few tags
  • edit content types - CCK allows really neat customization of content types. Why not add custom fields (if appropriate) 
  • Install drupal meta tags module - good for SEO
  • Change the default theme - even if you are to build a theme later, at least change the logo and default colors (default theme supports recoloring)
  • Create a non admin user - It is always good to post as someone other than admin user. Not foolproof security but one more step
  • Descriptive 1st post - Put a quick first post that is descriptive, especially if the site is on the internet - preferably with interesting keywords for search engines to start indexing you.


Obviously, many more steps are needed from there but this is a good way to get a decent head start.