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.
UPDATE (07/08/09):
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
# but the following cannot be changed at runtime.
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:
ini_set('memory_limit', '96M');
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!
regards,
Tim
Posted in Web Development, July 7th, 2009
Tags: drupal
Great post , good work Tim
By Yukti (not verified)Great post , good work Tim !!
The information provided is a big support for newbies , who really wander after installing the basic drupal setup.
I generally use PLIGG CMS, but compared to Drupal, I am feeling PLIGG provides only at 30% of what drupal does...
Cheers
Yukti.Khanna Vig
I ve just started using
By poi (not verified)I ve just started using Drupal, and I haven t yet finished my first web site
BUT I Have to THANK you for such a great guide, it has helped me TREMENDOUSLY, great support!!
You're welcome, Poi. I'm glad
By TimYou're welcome, Poi. I'm glad that this one was helpful for you.
Do you plan to build on this
By jpw (not verified)Do you plan to build on this success with a new version for Drupal 7? Or is it mainly the same?
WYSIWYG stands for What You
By Law (not verified)WYSIWYG stands for What You See Is What You Get and it allows you to edit a page in a visual fasion instead of having to use the HTML code. Although I highly suggest you learn at least some basic HTML if you are going to be doing much with Drupal, I also know that sometimes its nice to be able to create content fast with out worying about the HTML code.
Awesome, thank you for this
By Cory (not verified)Awesome, thank you for this starter guide.
I found these tips very
By Rich Brill (not verified)I found these tips very useful indeed.
The admin_menu module really is a lifesaver, really!
It beats having to navigate a tree structure on the left hand side and it also feels more stable as though it's part of a solid piece of software (as appose to a web interface on the server itself) - great UI.
Very Nice Tips. Thanks.....
By Sajith (not verified)Very Nice Tips. Thanks.....
I don't think nodewords will
By willem (not verified)I don't think nodewords will do a lot of good. If you're serious about seo, be semantic and install seo_checklist.
I am an SQA Engineer and
By Azeem (not verified)Thanks for this helpful
By Drude (not verified)Thanks for this helpful jump-start.
How Do you install modules?
By Jono Childs (not verified)How Do you install modules?
I agree it would be useful if
By Graham (not verified)I agree it would be useful if it didn't assume you knew how to do this... but it's not difficult.
Download the module from the links in the instructions above. Unzip. FTP to upload the folders into /modules directory. Then go to Administer/Site Building/Modules and select to activate. Save Configuration.
Make sure it goes within
By Chris (not verified)Make sure it goes within /sites/foo/modules, where foo is either all, default, or the site folder itself, like /sites/foo.com/modules, and not just the /modules folder. Where you put it within the /sites only matters if you're doing a multisite setup, in which case putting it in the all folder will make it available to all sites in your multisite setup, and every other folder will make it available to just the site folder you've put it in. Otherwise, I tend to just put everything in the foo.com folder for portability.
One of the reasons that you want to do it this way instead of dropping it in the /modules is that when you need to backup or migrate, all you need is a copy of the sites folder, and you can just grab a version of Drupal from drupal.org.
The same applies to themes - put them in /sites/all/themes or /sites/foo/themes instead of /themes
Found this in the following
By Anonymous (not verified)Found this in the following pdf:
http://drupal.org/files/drupal_cookbook_10_25_2008.pdf
Installation: installing a module or theme...
1. Go to the Drupal site and click on the "Downloads" tab. Then select either "Modules"
or "Themes" depending on what you're after.
2. Locate the module or theme you want.
3. Make sure there is a version for the version of Drupal that you are using. D5 modules
and themes will not work on D6.
4. I always click on "Find out more" and read the stuff again. This gives you the chance
to see if there is support for your release of Drupal. You can also look at pending bugs
and feature requests - it might change your mind.
5. Download the proper release. (I put them in a Drupal folder in "My Downloads.")
6. Unzip the downloaded file (I use WinZip). It may tell you that there is only one file in
the zipped file; click "yes" or "OK."
7. Extract the code to to your /sites/sitename/modules or themes folder. If you are not running
multiple sites, this would be /sites/all/modules or themes.
8. That's it! Now you need to enable it.
I drove myself nuts. Don't
By Drude (not verified)I drove myself nuts.
Don't for get to spell "modules" right :)
In my opinion, Admin is more
By Alkaaran (not verified)In my opinion, Admin is more user-friendly than admin_menu, it provides a cool administration interface : http://drupal.org/project/admin
Admin looks nicer, I agree,
By TimAdmin looks nicer, I agree, but it is not dynamic as admin_menu. With admin_menu you can do things much faster. I often combine admin with admin_menu. Admin is more for customers who want to see a way cool backend.
Great wrap-up ! A must to
By Nico (not verified)Great wrap-up !
A must to have module for me is Boost (http://drupal.org/project/boost).
A cache system (every page is cached as physical html file on your server) and will be served at light speed to your anonymous visitor (need mod_rewrite)
Regards.
Thanks, as a new Drupal user
By Owen McNamara (not verified)Thanks, as a new Drupal user I found your article very helpful to get me going.
I also did a review of a survey recently comparing Joomla and Drupal that some people might find interesting. Long story short: Drupal but both good. But the results are very interesting.
http://owenmcnamara.com/2009/08/08/comparison-of-drupal-and-joomla/
Owen
That was a very helpful
By andhe1983 (not verified)That was a very helpful article
Thanks
Hi! Very good advises. I am
By Azat (not verified)Hi!
Very good advises. I am novice in Drupal, but I think it's very helpful.
Thank you so much ! It is
By ajay (not verified)Thank you so much !
It is really helpful.
Great stuff! Many thanks
By Oli (not verified)Great stuff! Many thanks
Gracias por los tips!!!
By Israel Estrada (not verified)Gracias por los tips!!!
Excelentes ideas para desarrollar todo tipo de administradores de contenido!
Congratulations dude! and thanks again for this =)
Good article. All this
By Alex (not verified)Good article. All this modules are included into Drupal-Builder.net tool too - great minds think alike ;)
very nice!! thx for sharing!
By Israel Estrada (not verified)very nice!!
thx for sharing!
Hi Tim Nice work! very useful
By Olympia (not verified)Hi Tim
Nice work! very useful advise.. keep up the good work, I'll be back!
Great post! Global Redirect
By Laura Robeson (not verified)Great post! Global Redirect was a new module to me, even though I use Pathauto already. I also installed the Page Title & Meta Tags modules per your recommendation.
I strongly agree with your recommendations of Administration Menu, Backup & Migrate, and of course CCK & Views. CCK + Views = magic, they should be core.
Poormanscron is a good module for people new to the cron concept, it's a very simple solution.
Good book for beginners: Front End Drupal by Konstantin Käfer and Emma Hogbin. That really helped to get me over the steep learning curve.
yeah I'd add a few more
By Nidal (not verified)yeah I'd add a few more things :
* Server Tweaks ( bump memory to 96M either in htaccess or settings.php etc.)
* enable caching and css /js compression ( this really improves performance and lowers the number of http requests)
cheers
Wow, these tips are very
By TimWow, these tips are very useful! Wonder how did I forget about them!
Thanks for this! I'm kicking
By Lisa Rex (not verified)Thanks for this! I'm kicking off my first Drupal project and I'll ensure to incorporate these suggestions.
nice tips....thanks a
By Joan (not verified)nice tips....thanks a lot...I'd add some words about sitemaps module, it is very useful and essential too!
Hey Tim! Thanks for the tips,
By Ringo (not verified)Hey Tim! Thanks for the tips, they're really useful. I own Drupal development studio, can we talk about work with you?
Thanks for this great
By Karl Craig-West (not verified)Thanks for this great guide.
I've even picked up a couple of useful bits of info that will help with my future Drupal Development.
Cheers,
Karl
Post new comment