#1  
Old 09-25-2004
Nick W Nick W is offline
Member
 
Join Date: Jun 2004
Posts: 597
Nick W is a jewel in the roughNick W is a jewel in the roughNick W is a jewel in the roughNick W is a jewel in the rough
Installing a Powerful - SE Friendly CMS in 10mins

Hi all,

Not a month goes by where I dont get asked in pm at one forum or another "what's the best cms" or "what cms do you recommend" - I've no idea why, but people assume im some kind of expert cos i like talking about cms's ;-)

So, i wanted to write a thread that i could point people too that would both recommend one, and help them kit it out for the SE's.

What do I Recommend?
Drupal.org is my favorite, and IMO is the best CMS for SEO

The following instructions tell you how to install it and set it up so that it's SE ready. All the tools you need are right out of the box, there is no messing with code (other than the config file at the beggining.)

Assumptions and Requirements
Drupal in an Open Source CMS and thus was built primarly for a LAMP setup. (Linux, Apache, MySQL, PHP) Any *nix box will do. So, you need:
  • *nix OS
  • Apache server
  • MySQL DB
  • PHP
  • SSH or Telnet access to the box if possible

Get Drupal
You can download drupal here at the time of writing the latest stable release is 4.2

Installation
First we're going to unpack the file, and put all the relevant files in the right place.
Code:
tar -xzvf Drupal-4.x.x.tar.gz   # unpacks the file
mv drupal-4.x.x/* /path/to/your/root/http/directory/  # moves the files to your website dir
mv drupal-4.x.x/.htaccess /path/to/your/root/http/directory/  # moves the .htaccess to website dir
Next, you want to set up your database and edit the config file. This is Extremely Easy and all of the instructions are in the INSTALL file (in your web dir now) are very simple to follow, no point repeating them here.

OK! Now you've got it installed, Let's make it SE Friendly
If you've not done so already, you need to create the first account, the first account created becomes the admin account. Just click the 'create new account' link under the login box.

Now go to: Administration -> Configuration and work your way down the options filling out what you feel you need. The important bit is Enable clean urls -> tick that box!

Now your site is SE Friendly! -> but there's more, read on...

Now go to: Administration -> Configuration -> Modules
Enable/disable whatever modules you think you would like to try. The important bit is Path :: make sure this module is enabled.

This gives you the ability to specify how the urls work. In order to see how this can be of benefit to you (and beleive me it *really* is of benefit) you'll have to first create some categories (sections) for your new site:

Go to: Administration -> Taxonomy -> Create new vocabulary
A vocabulary is just a way of categorizing your sections, each vocabulary can have many terms like for example: My new vocabulary is Muppets and it contains the terms Gonzo and Fuzzy Bear and SEMPO board members.

Lost? Dont worry about it, it'll all become clear in a few moments, just carry on, seriously, you'll get it in a minute ;-)

So you need to create that vocabulary (filling out all the fields) then go to: add term which will be a link under your new vocabulary. Fill out that form too.

Making the site look static
So, you've got it all SE Friendly right? No worries. You've created some 'sections' for your site, piece of cake.. Now what we need to do is to make your sections look like folders in a static site. Easy peasey lemon squezey, read on...

First grab the id of the term you want to change the url for: Administration -> Taxonomy then edit term :: have a look at the url, it should look somthng like this: site.com/admin/taxonomy/edit/term/x where x = the id you want.

Now to: Administration -> Url Aliasing There are nice helpfull little tips right there on the page, you should be able to figure it out. Here's an example:
original url: taxonomy/view/or/1
New url: muppets/gonzo
(dont use /muppets/gonzo/ -> no slashes ok?
Hit 'submit'

Now, when you key in mysite.com/muppets/gonzo you're at the term gonzo! Hooray!

You can do as many as these as you like, you can also alias individual pages from this menu but also as you create them! Personally i dont bother with individual pages, by default they look like /node/view/x -> x being the id. but if you really want your site to look static you can alias every single page so you have
/muppets/fuzzy-bear/bookmarks.html (yep, u can use file extentions as well, no problem..)

Finding out more
Well, i hope that was reasonably understandable ;-)
There is much more to drupal than just nice urls, there are some awesome modules on the downloads page above, some of my favorites are:
  • Email this page # by me!
  • Link to this page # by me! hehehe...
  • Syndicate # Generates RSS feeds for your site
  • Blog # er... blog...
  • Aggregator # import feeds to your site
  • Cloud # Monitor other sites for changes in content
  • etc etc....

Have fun, if you have any questions, just post them here, i'll be happy to answer them.

Nick
Reply With Quote
  #2  
Old 09-25-2004
Mikkel deMib Svendsen's Avatar
Mikkel deMib Svendsen Mikkel deMib Svendsen is offline
 
Join Date: Jun 2004
Location: Copenhagen, Denmark
Posts: 1,576
Mikkel deMib Svendsen has much to be proud ofMikkel deMib Svendsen has much to be proud ofMikkel deMib Svendsen has much to be proud ofMikkel deMib Svendsen has much to be proud ofMikkel deMib Svendsen has much to be proud ofMikkel deMib Svendsen has much to be proud ofMikkel deMib Svendsen has much to be proud ofMikkel deMib Svendsen has much to be proud ofMikkel deMib Svendsen has much to be proud of
Thank you for a very good introduction to Drupal!

Being an old VB/ASP coder I am still looking for something as good as Drupal for ASP/MSSQL but I haven't found anything as good as Drupal seems to be. The free stuff, funny enough, seems to be the best - the more expensive ASP or .NET packages are really, really bad


Anyway, back to Drupal. It looks good. So good that even though I am a total beginner (actually, not even begun yet!) with PHP I am tempted to go ahead and give it a try. After all, LAMP setups are not very expensive to host, which leads me to my first question:

Nick, is it possible to set up Drupal on a "standard" PHP hosting solution or do you need real server access?

How easy is it to:

- Change HTML-templates (I am a geek with my HTML output, so I hate when I don't have 110% control)

- Change the way Titles and META-information is created/scripted - drag in other DB fields etc...

- Add new modules, that pull predefined blocks of data into pages


Also, do you know if the system has any keyword or theming facilities? - a way to connect thematically connected pages across multiple directories for content relevant cross linking.
Reply With Quote
  #3  
Old 09-25-2004
Nick W Nick W is offline
Member
 
Join Date: Jun 2004
Posts: 597
Nick W is a jewel in the roughNick W is a jewel in the roughNick W is a jewel in the roughNick W is a jewel in the rough
>>"standard" PHP hosting solution

You'd have to define that really but i think i can guess what you mean, you mean without telnet/ssh access right? - No problem, it can all be done via standard ftp, it just takes a few minutes longer is all. It's all in the INSTALL file.

>>Change HTML-templates

Reasonably easy. Not as easy as i'd like, but not hard. They are working very hard on a more friendly template system, im hoping it will be in the upcoming 4.5 release.

For now, you go into themes/xtemplate/ copy the /default dir (or any other) to a folder called 'custom' or whatever and then go mess with the templates. Not too hard, but a bit round-a-bout eh?

>>Change the way Titles and META-information is created/scripted - drag in other DB fields etc..

Not so tough, i've never done it so it might need some searching or asking on the drupal forums, they have a very active and very friendly community of developers that are always ready to help and the documentation is pretty good. Title, no problem really, mess with the template, dragging extra db fields in? shouldnt be hard, but you will need to search/ask.

>>Add new modules, that pull predefined blocks of data into pages

Adding a module is really easy, just downlaod it and follow the INSTALL file that come with it. In most cases it's just a matter of drupping the moduleName.module file in the /modules dir and then going to Administration -> Configuration -> Modules and enabling it. It will then have it's own configuration page for customizing it under the Modules menu.

Pulling in data is quite simple, you can create a 'custom block' in the Administration -> Configuration -> Blocks section, of type PHP and do what you need to do. In your case that might sound tough, but beleive me, most things you'd want to do have already been done and searching the docs will locate the relevant tutorial. I recently did this to add a 'recent posts' block for a blog section to the main menu. Very simple and relatively painless ;-)

Quote:
Also, do you know if the system has any keyword or theming facilities? - a way to connect thematically connected pages across multiple directories for content relevant cross linking.
Absolutely! When you create a new vocabulary (or edit an existing one) their are several options, one of them is to enable multiple chois (ie. you can have your page appear in muppets/gonzo and muppets/fuzzy-bear) the really nice thing is that if you dont give the page it's own alias, both links will go to /node/view/x but if you do, it will go to the alias. So a post in muppets/gonzo and muppets/sempo with an alias of /muppets/misc.html will both point to the /muppets/misc link.

It makes exactly what you describe very easy. I do it as standard, many of my posts fit more than one category...

Like i said earlier, if you get stuck with any of this, just give me a shout here or via pm

>>The free stuff, funny enough, seems to be the best
Naturally, hundreds of people work on drupal, even lesser programmers like myself can contribute modules (mine a pretty simple but useful as viral tools..) The list of modules is pretty big and there is even one called 'flexinode' which allows you to create a special type of submiision (like story/blog etc). So if you had for example a list of orgs, you might create a custom node with fields like org name, org director, org homepage etc etc...

Nick

Last edited by Nick W : 09-25-2004 at 07:25 AM.
Reply With Quote
  #4  
Old 09-28-2004
Nick W Nick W is offline
Member
 
Join Date: Jun 2004
Posts: 597
Nick W is a jewel in the roughNick W is a jewel in the roughNick W is a jewel in the roughNick W is a jewel in the rough
One more thing

I forgot, if you do go and test this Mikkel, after doing all of the above you'll need to go to Administration -> Accounts -> Permissions and give permissions for users to access content, comments etc etc... It's pretty restrictive out of the box, but easily sorted..

Nick
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -4. The time now is 01:35 AM.