Installation of Drupal with XAMPP on Windows XP Rupesh Kumar A a.rupeshkumar@gmail.com.

Post on 12-Jan-2016

220 views 0 download

Tags:

Transcript of Installation of Drupal with XAMPP on Windows XP Rupesh Kumar A a.rupeshkumar@gmail.com.

Installation of Drupal with XAMPP on Windows XP

Rupesh Kumar Aa.rupeshkumar@gmail.com

Drupal Intro

An overview of the architecture, features and basic site-building workflow of the CMS.

Chris Neglia and Lisa ForganCopyright 2009 Page1solutions, LLC

What is Drupal?

Open Source software written in php.

A CMS or content-management system.

A sophisticated web application building tool.

What is a CMS?

Simply put, a CMS is a website you build using the website itself.

Wikipedia definition: A content management system (CMS) such as a document management system (DMS) is a computer application used to manage work flow needed to collaboratively create, edit, review, index, search, publish and archive various kinds of digital media and electronic text.[1]

What can Drupal be?blogForumOnline newspaper, Portal / DirectoryBrocure site, portfolio, flickr like photo dropSocial community site, job post boardVideo site like youtubeProject management siteCRM, ERP, SCM, WikiShopping cart systemE-learning, training siteDating siteAnything you can think of…

Why use a CMS?

It helps manage complexity.

It provides a user interface (UI) for adding, editing and publishing content.

Why use Drupal over Wordpress?Wordpress was designed only to be a blog with some easy add-ons.

Drupal was designed to be more of a generalist: it’s for making ‘anything’ and is far more robust.

Wordpress could be the better choice for blogs since it is better at being a blog than Drupal. This is something of debate.

Wordpress is still a sound choice of CMS for SEO and security; so if wordpress satisfies a simpler project’s requirements then by all means use it- it is easier and faster to set up than Drupal.

Wordpress is not designed to be highly scalable to many simultaneous users, nor does it have flexible roles, permissions, extensible content types, nor does it have plentiful well-tested, quality add-ons. It has a few and a lot of really poor plugins.

Why use Drupal over Joomla? (or other CMS)

It has superior session handling for a CMS.

It has superior security.

It is a more consistent, reliable and flexible framework for development.

It is considered better for SEO from our research.

It uses a ‘separation of concerns’ architecture to cleanly and consistently separate structure, function, form, and presentation in layers (ie: php from data as db/xml, layout and presentation as html and css).

It heavily uses ‘defaults overrides’ in code in the form of hooks and in themes in the form of templates. This makes it extremely flexible.

Other CMS’es do a very very bad job of at least one of the above.

Downsides to the Druup

Drupal has a steeper learning curve than wordpress or Joomla.

Drupal and it’s developers make no excuse for this fact- it is a flexible tool

That said, the drupal community is constantly addressing usability and user-experience issues because they want the industry market share.

What is a UI?

UI is a user-interface, which is a general term for the layout of options, widgets and settings used to configure the system or manage content.

‘Site-building’ activities refer to configuring settings or managing content through the UI, such as building navigation menus.

Drupal Structure

Drupal is a database-driven (‘dynamic’) application. It requires a database.

Drupal has a core filesystem whose functionality can be extended using the UI itself, modules and themes.

The UI settings are stored in the database.

Modules

Packages of files in a directory that you upload into drupal’s module space (/sites/all/modules)

Add functionality to drupal

‘Core’ Modules come shipped with drupal

‘Contributed’ Modules are downloads from drupal.org

Themes

Packages of files in a directory that you upload into drupal’s theme space (/sites/all/themes)

Themes adjust the site layout and style. Like ‘skinning’ your media player.

Themes can be easily changed in the UI.

Drupal Database

Drupal’s database tracks things like :

Site and Module settings,User’s information,Access information,Logging information, Permissions and User Roles,System PathsContent and content metadata

Nodes

A node is the primary form of content in a drupal site. At a minimum it is a title and a body, and can be ‘specialized’.

A ‘page’ and ‘story’ for example are node types that have a specific node settings.

A node type is a blueprint for creating instances of content of a particular type.

Nodes (cont)

Not everything in Drupal is a node.This is important!!Ex: A user is not a node. A taxonomy is not a node. An account is not a node.Knowing this is important for evaluation of what can and cannot be easily done through the UI, without additional programming.

Layout and Regions

A Region is an area in a layout, such as a header, footer, content, left/right sidebar into which blocks can be placed and arranged.

A block is a box containing some information

A node resides only in the content area of the layout (except in special circumstances).

Think of the content region as a big ‘node’ block that allows other blocks in it but the node itself can’t move.

Blocks

Blocks are added by modules.

Blocks can contain views, widgets, menus, nodes (in special circumstances), and panels.

Blocks can be moved around through the UI

Blocks can be styled individually.

Additional Terminology

Views – an interface for making customized lists of the data contained in the drupal database.Panels – an interface for making customized layouts of nodes available to the panels module.Widgets – a general term for interactive form elements or graphs that are enabled by modules.

Admin Menu

The administrative menu is a part of the UI that allows one to configure Drupal’s settings.

The settings available depend on which modules are installed and enabled.

Permissions allow users to have ‘administrative’ access to module settings.

Users

All CMSes (wordpress, Joomla, Drupal) have a user login system; users have a username/pw.

Drupal also supports the concepts of 1) Roles and 2) Permissions.

Roles are user designations to groups having the same set of permissions.

Anonymous User

A (not-logged-in) site visitor is called a ‘guest’, ‘visitor’ or ‘anonymous user’.

Has a user-id (uid) of 0 (zero).

All anonymous users belong to the ‘anonymous user role’ (a role ID of 1) and have a set of permissions assigned to them.

Authenticated UserA user in drupal may belong to one or more roles.

Every registered user in Drupal belongs to at least the ‘authenticated user’ role.

Authenticated user role has a role ID of 2

Root ‘Admin’ User

The ‘root’ user or ‘root admin’ has the ability to do anything on the site and is a special user.

The ‘root’ user has a user-id (uid) of 1.

The ‘root’ user does NOT have role-permissions to set because they are effectively gods within Drupal.

Managing Permissions

KEY concept: if you grant permission to an authenticated user, it applies to ALL roles except the anonymous user.

To grant a permission to everyone on a site, you must grant the permission to both the anonymous user and authenticated user.

Managing Permissions

To grant permission to only a newly created ‘dentist role’, tick the permission on that role.

Leave all the other roles deselected.

If you grant to both the ‘dentist role’ AND the ‘authenticated user’ role, you would be doing it wrong. Drupal assumes you know this.

Recipe: Change Site Information

In Administer > Site Configuration > Site Information: Change the information to suit your site following the help text.Don’t change the ‘Default front page’ just yet.Click ‘Save configuration’

Recipe: Change Date and Time

In Administer > Site Configuration > Date and Time:Change the timezone to the correct time for America/Denver (-0600 UTC)Change the time formatsClick ‘Save Configuration’

Recipe: Clean Urls

Clean URLs remove the ?q= from the location bar in your web browser.

In Administer > Site Configuration > Clean Urls:Tick ‘Enabled’Click ‘Save Configuration’

Clean Urls Issue

If ‘Clean URLs’ is an unchangeable option, then there is a misconfiguration of the drupal site hosting environment.

Contact your local IT support for assistance or consult the drupal handbook for more info.

For the purposes of this demo, it’s not important but it -is- important to enable later.

Recipe: Add a user

Go to Administer > User Management > UsersClick ‘Add user’Choose options.Click ‘Create New Account’

Recipe: Add a user

A user can also add themselves by registering, if the root user has allowed this option.

Go to Administer > User Management > User Settings

Tick ‘Visitors can create accounts and no administrator approval is required’

Click ‘Save Configuration’

Recipe: Add Roles

You will note that ‘anonymous’ and ‘authenticated’ users are there by default, undeletable.Type in the box below the roles in the ‘Name’ column. Click ‘add role’. That’s it.

Recipe: Edit / Delete role

Click ‘edit’ next to the role name.Here you can change the name or delete the role.Warning: If you click ‘delete role’, there is NO confirmation. This can be bad.

Recipe: Assign multiple roles to User

In Administer > User Management > Users:

Click the ‘edit’ link under operations for a userUnder Roles, Tick an additional role you created.You will notice ‘authenticated user’ is locked.Scroll to the bottom and click ‘Save’

Recipe: Altering PermissionsUnder Administer > User Management > Permissions: you will see there is a permissions column and role columns.

Scroll down to the user module section.

Tick ‘change own username’ in the ‘authenticated user’ column.

Tick ‘Save Permissions’

Recipe: Build MenuUnder Administer > Site Building > Menus:

Click Primary Links

On the Primary Links ‘List Items’ page, click ‘Add Item’

In Path, type ‘contact’. In Menu link title, type ‘Contact Form’.

Change weight to ‘50’ (drupal 6.x; ‘10’ in drupal 5.x)

Click Save.

You will notice that ‘Contact Form’ appears now on the far right of your primary links. Click it to go to the contact form.

Recipe: Create About PageIn the Navigation (left sidebar), click ‘Create Content’

Click ‘Page’ under the content type listing.

In the Title, type ‘About Us’. In the body type ‘This is my first drupal page’.

Expand the ‘Menu settings’ fieldset.

In the “Menu link title” type ‘About Us’.

Change the weight to ‘49’.

Expand the ‘URL path’ fieldset and type ‘about-us’

Click ‘Save’

You should now see the ‘About Us’ menu item in the Primary Link navigation. Click it to go to this newly created node.

Recipe: Get modules

Default Drupal installs can only do so much.

Go to http://drupalmodules.com to find a module that supports what you are trying to do.

Do rely on the ratings here as they are tied to download / popularity metrics from http://drupal.org

Recipe : Change Site (Admin) EmailNote: There are multiple places to change the email address for a site ‘root user’ administrator. You may have to dig around for them in admin menu when logged in as the root user. Get login info from Salesforce.

In site information : admin/settings/site-information

Site-wide contact form settings : admin/build/contact (edit operation)

Mass contact settings (if used) : admin/build/mass_contact/settings

Mail settings (different places, ex uses mimemail) : admin/settings/mimemail

User register notify : admin/settings/register_notify

Recipe: Halp! The site is messed up

If the login disappears and you can’t login, go to www.yourdomain.com/user or www.yourdomain.com/index.php?q=user

If clean URLs is not working, substitute the first forward slash (‘/’) after the domain/host with ‘/index.php?q=‘ without the quotes.

If all else fails, call Chris or Alex to build a GUI interface in Visual Basic to track down the perpetrator in realtime.

Installing Modules

Download (from drupal.or) and Unpack module ‘tarballs’ (*.tar.gz) files to the folder inside.

Upload the module folder to <drupal_root> /sites/all/modules.

Create the ‘modules’ and ‘themes’ directories if they are not there.

Go to Administer > Site Building > Modules : and tick ‘Enabled’ next to the module to enable it and click ‘Save Configuration’

Using Modules

A newly enabled module will add an administration menu.

Go to that module and read the help before changing anything.

Play around and learn it’s feature set.

Install the ‘Advanced Help’ module to get more verbose help with modules.

Modules Used on Almost every Drupal Site

Most Useful Contributed Modules

Administrationmenu

CCK Views String Overrides Backup and Migrate

SEO Checklist SEO Compliance Checker

Pathauto Path Redirect Global Redirect

Search404 Meta Tags Global GEOurl Html Purifier Page Title

Menu Attributes New XML Sitemap Site Map Taxonomy Manager Token

Auto Assign Role (+patch)

Ubercart Date Mollum / Spam Captcha

WYSIWYG API FCKEditor IMCE Chaos Tools +Delegator

Panels

Actions Triggers Notify Scheduler

Addthis / Diggthis/Sharethis

Guestbook Simplenews GoogAnalytics

Most Useful Contributed Modules for SEO

SEO Checklist SEO Compliance Checker

Path + Pathauto Path RedirectGlobal Redirect

Search404 Meta Tags Global GEOurl Html PurifierPage Title

Menu Attributes New XML Sitemap Site Map

Advanced: Open Calais –RDF metadata WS

Most Useful Contributed Modules (OLD)Administrationmenu

CCK Views String Overrides Backup and Migrate

SEO Checklist SEO Compliance Checker

Pathauto Path Redirect Global Redirect

Search404 Meta Tags Global GEOurl Html Purifier Page Title

Menu Attributes New XML Sitemap Site Map Taxonomy Manager Token

Auto Assign Role (+patch)

Ubercart Mollum / Spam Captcha

WYSIWYG API FCKEditor IMCE

Actions Triggers Notify Scheduler

Date Chaos Tools +Delegator

Panels

Addthis / Diggthis/Sharethis

Guestbook Simplenews GoogAnalytics

Advanced: Advanced: Apache Solr Search (we cannot support yet)

Advanced: Open Calais –RDF metadata WS

Advanced: Devel (danger)

Advanced: PHPmailer /SMTP Auth

A warning about using Free and Low Cost (downloaded) Themes

They are more difficult to customize than starting from scratch, but faster to use.

Some of the markup is not seo-friendly.

Some of the markup is over-engineered and messy; less is more.

Free or amateur / low-cost themes can be confusing if you look at the code; this may impair your ability to learn drupal theming.

Some of the markup may be in tables or liquid layout and this may be hard to change for your particular project, even if it looks nice to you.

Best practice suggests you either find a theme design and mimic its look-and-feel or do the traditional photoshop mock up.

If you take someone else’s theme, you don’t know what you’re going to get and this can hinder your ability to develop

Getting free themes

http://themegarden.org/drupal6/http://drupal.org/project/Themeshttp://themebot.com/free-website-templates/drupal-themes

Google ‘drupal themes’ you’ll find a bunch of stuff. Buyer beware.

Most Useful ThemesZen (use starter kit to subtheme)

960 grid based themes Garland (use as admin theme)

Blarland… an evil copy of garland. Place it in sites/all/themes and change the name of garland to blarland in folder, and file names esp in the info file.

Arslan

XAMPPXAMPP is a bundle of Apache, MySQL, PHP, FileZilla and many other utilities. XAMPP is the ‘easiest’ way to test an AMP (Apache-MySQL-PHP) application.NOTE: XAMPP is only intended for use as a local test server which is available on your own computer. It has been created for ease-of-use, but not for production level security.

Files Required for InstallationXAMPPDrupal

Download LocationsXAMPP – www.apachefriends.org/en/xampp-windows.html Drupal – http://www.drupal.org

Steps in Installation1. Extract XAMPP files.2. Setup XAMPP.3. Run XAMPP Services (Apache and MySQL).4. Create drupal database in MySQL.5. Extract Drupal files.6. Enter database and server settings.7. Install Drupal Site and configure.

Open the Extracted Folder C:\xamppRun setup_xampp.bat to setup XAMPP.

Open XAMPP Control PanelDouble click xampp-control.exe to open XAMPP Control Panel Application.

Start Apache and MySQL ServicesClick “Start” button next to Apache and MySQL.

Test XAMPP installationOpen Web browser and type http://localhost or http://127.0.0.1 in the address bar. The pre-built XAMPP page appears. Under “Sprachen” (Language) section, click on “English”

German Version

English Version

Create ‘drupal’ databaseOn XAMPP Page, click ‘PhpMyAdmin’ and create a new database ‘drupal’ with character set utf8 (unicode)

Click phpMyAdmin

Database name: drupalMySQL charset: UTF-8 Unicode

Click “Create” button

New database ‘drupal’ createdClose phpMyAdmin.

Restart MySQL in XAMPP Control Panel

Click “Stop” and “Start” button next to MySql.

Extract drupal files to C:\xampp\htdocs folder

Rename extracted folder to ‘drupal’ for simplicity

Drupal settingsOpen ‘drupal’ folder, copy default.settings.php to the same folder and rename it to settings.php.

.

Copy default.settings.php and rename it to settings.php

Install ‘Drupal’ siteOpen Web browser and enter http://localhost/drupal/install.php in the address barStep 1: Choose language. Click ‘Install Drupal in English’

Step 2: Verify requirements – drupal will check for required settings.Step 3: Set up database

If database and URL settings have been entered in settings.php file, Drupal will jump to Step 4.If database and URL settings have not been entered in settings.php file, Drupal presents the following form (shown in the next slide). Enter the database and URL settings and click “Save and continue” button.

Enter database name, database username, database password

Click Advanced Options, enter Database Host, Database Port (enter only if other than standard port) and Table prefix (if multiple applications are sharing same database). Click Save and continue.

Step 4: Install Site – drupal will install the site.

Step 5: Configure Site – Drupal requires a few details for configuring the site. The following details are to be entered:

Site InformationAdministrator AccountServer Settings

Enter the details and click “Save and Continue” button.

Site Information

Administrator Account

Server Settings

Drupal Installation Complete!Drupal notifies about successful installation. Click on your new site to view your site

The mail server configuration warning may be ignored, as this is a local installation.

New Drupal Site (http://localhost/drupal)