So you've decided to choose Drupal for your web project right? Good decision. I won't repeat all advantages of Drupal here, but this is a best platform for your web project unless you want to stick with PHP Framework and to start your development nearly from a scratch. Ok, I guess you already read all these articles about 'Top 10 things to do with Drupal' and bla bla bla... Well there are maybe some useful, but most of those tip lists are real content bullshit. Sorry for the strong word 'bullshit', but I'm tired of surfing and scanning through obvious steps as 'Create content' or 'register user 1'. I will tell you about The 11 Most Important Things To Do After You Install Drupal. You will do this earlier or later, but after this checklist you will do them from the start and will save your precious time in future. Ok, let's start:
Go to modules and disable: Color module - you don't need this cause you will use your very own theme and won't colorize Garland (We're making a serious project, right?).
Go to modules and enable: Path module - you'll need this one to have a control over Drupal paths. Also enable PHP filter module, it allows embedded PHP code/snippets to be evaluated. And don't forget about Search module, it will let your visitors search on the site.
Install Administration menu (http://drupal.org/project/admin_menu) module - this module is a real time saver. Install it right after steps 1 and 2 or even you can execute step 3 right before 1 and 2. The module renders all administrative menu items below 'administer' in a clean, attractive and purely CSS-based menu at the top of your website. It contains not only regular menu items - local tasks are also included, giving you extremely fast access to any administrative resource and function your Drupal installation provides. This is a must have modules for every developer and site adminstator. Access any menu fast and easy. I remember my days without this module, this was a real nightmare surfing through multiple Drupal menu links.
Install CCK (Content Construction Kit http://drupal.org/project/cck) I'm sure, someday this module will enter Drupal core package. CCK works as its name sounds, it let's you to contstruct and content type with any fields set you wish. Want a fields with select boxes or Imageuploads or maybe, radio buttons or check boxes? No problem, CCK's posibilities are nearly endless. You can't live without this module.
Install Views (http://drupal.org/project/views). Views is one of the most popular Drupal modules. It works in close with CCK (however it can live without CCK). The Views module provides a flexible method for Drupal site designers to control how lists and tables of content are presented. This tool is essentially a smart query builder that, given enough information, can build the proper query, execute it, and display the results. It has four modes, plus a special mode, and provides an impressive amount of functionality from these modes. However I love the fact Views exists, I personally don't use it much because of somewhat expensive queries it produces. But it will work for most of your tasks. Fully themable and flexible.
OK, we have already enabled path module. Let's install three more. Pathauto (http://drupal.org/project/pathauto), Token (http://drupal.org/project/token) and Globalredirect (http://drupal.org/project/globalredirect). Pathauto and Token work together and will help you to automate clean url and aliases. You can define the structure of the path depended on content type, taxonomy, vocabulary, etc. Global redirect is another handy modules which will save your life from Google Double Content penalty nightmare. It will 301 redirect your 'node/11'-like paths to their aliases.
I'm sure you know about this simple rule: no SEO, no visitors, no customers, no money. So you need a SEO friendly site! There are two main modules for SEO to be installed: Nodewords (second name Meta Tags, http://drupal.org/project/nodewords) and Page Title (http://drupal.org/project/page_title). Nodewords module allows you to set some meta tags for each node, view or panels page. Page Title allows you to set custom page titles for any node (page or content type), also you can specify patterns for how the title should be structured.
One of the main features of every site is the Search. Web Users often use web site search and this feature should be properly configured, you need to build a proper and regular built-in Drupal search index. Go to Site configuration -> Search settings and check your settings.
Always do backups, especially, before doing any significant changes. There are plenty of various solutions for FTP and MySQL backup, but start with small: install Backup and Migrate (http://drupal.org/project/backup_migrate). Backup and Migrate simplifies the task of backing up and restoring your Drupal database or migrating data from one Drupal site to another. It supports gzip, bzip and zip compression as well as automatic scheduled backups. Very useful and saves data and time, the two most precious things for a web developer.
I won't explain how to configure cron jobs on your server. This is simple, just check your hosting provider's FAQ. But don't forget to do this in order your search re-indexing and sheduled backups to work. The path you need to call is http://www.example.com/cron.php
There are lots of Drupal oriented books, but there is one essential, written by Drupal developers: Pro Drupal Development, Second Edition. You can get it from Amazon. (CLICK HERE). This one will help to understand Drupal and how to develop modules, so you will be able to change any module or write a new one from a scratch.
The following steps were added thanks to useful comments of my readers:
Bump your memory limit to 96MB. Most of hosting providers allow to do this, if yours doesn't, leave him with no regrets. You can extent a memory limit either in htaccess or settings.php.
a) For .htaccess tweak: edit the .htaccess file in the Drupal root directory. Look for the section:
`_# Override PHP settings. More in sites/default/settings.php
and immediately after this add the following line:
_php_value memory_limit 96M_
b) If you're afraid of tweakening .htaccess, you can do the same with the sites/default/settings.php file. Locate the PHP settings section and add the following line at the end of that section:
Why did we set limit to 96M? Well, 96M is suitable enough for most modules, for example Image module requires 96M of memory to operate correctly.
Drupal modules produce numerous .css and .js files. Almost every enabled module adds its own files. The more .css and .js files you have to load on every page, the more http requests your server should serve, the longer loading and page rendering time your visitors will experience. But there is a nice solution built in the Drupal: enable caching and css /js compression in admin/settings/performance. This will compress all of your .css and .js files in one combined file each which will reduce the time of page rendering and the number of http requests. As a result, your pages will load much faster and your server will experience lower load. But use this function wisely, enable it only on a production web site.
Drupal offers endless opportunities for Web developers and for casual users too. I hope these 11 first steps will help you to unleash the power of Drupal. If you have additions to this post, feel free to contact me here!