Skip to content
Snippets Groups Projects
INSTALL.txt 17 KiB
Newer Older
Dries Buytaert's avatar
 
Dries Buytaert committed
// $Id$
Dries Buytaert's avatar
 
Dries Buytaert committed

CONTENTS OF THIS FILE
---------------------

 * Requirements
 * Installation
Dries Buytaert's avatar
 
Dries Buytaert committed
REQUIREMENTS
------------

- A web server. Apache (version 2.0 or greater) is recommended.
- PHP 5.2.0 (or greater) (http://www.php.net/).
- One of the following databases:
  - MySQL 5.0.15 (or greater) (http://www.mysql.com/).
  - MariaDB 5.1.44 (or greater) (http://mariadb.org/). MariaDB is a fully
    compatible drop-in replacement for MySQL.
  - PostgreSQL 8.3 (or greater) (http://www.postgresql.org/).
  - SQLite 3.4.2 (or greater) (http://www.sqlite.org/).
For more detailed information about Drupal requirements, including a list of
PHP extensions and configurations that are required, see "System requirements"
(http://drupal.org/requirements) in the Drupal handbook.
Dries Buytaert's avatar
 
Dries Buytaert committed

For detailed information on how to configure a test server environment using
a variety of operating systems and web servers, see "Local server setup"
(http://drupal.org/node/157602) in the Drupal handbook.
Dries Buytaert's avatar
 
Dries Buytaert committed

Dries Buytaert's avatar
 
Dries Buytaert committed

- To use XML-based services such as the Blogger API and RSS syndication,
  you will need PHP's XML extension. This extension is enabled by default.
Dries Buytaert's avatar
 
Dries Buytaert committed

- To use Drupal's "Clean URLs" feature on an Apache web server, you will need
  the mod_rewrite module and the ability to use local .htaccess files. For
  Clean URLs support on IIS, see "Using Clean URLs with IIS"
  (http://drupal.org/node/3854) in the Drupal handbook.
Dries Buytaert's avatar
 
Dries Buytaert committed

- Various Drupal features require that the web server process (for
  example, httpd) be able to initiate outbound connections. This is usually
  possible, but some hosting providers or server configurations forbid such
  connections. The features that depend on this functionality include the
  integrated "Update status" module (which downloads information about
  available updates of Drupal core and any installed contributed modules and
  themes), the ability to log in via OpenID, fetching aggregator feeds, or
  other network-dependent services.
Dries Buytaert's avatar
 
Dries Buytaert committed
INSTALLATION
------------

Dries Buytaert's avatar
 
Dries Buytaert committed

   You can obtain the latest Drupal release from http://drupal.org/. The files
   are in .tar.gz format and can be extracted using most compression tools. On a
   typical Unix command line, use:
Dries Buytaert's avatar
 
Dries Buytaert committed

     wget http://drupal.org/files/projects/drupal-x.x.tar.gz
     tar -zxvf drupal-x.x.tar.gz
Dries Buytaert's avatar
 
Dries Buytaert committed

   This will create a new directory drupal-x.x/ containing all Drupal files
   and directories. Move the contents of that directory into a directory within
   your web server's document root or your public HTML directory:
Dries Buytaert's avatar
 
Dries Buytaert committed

     mv drupal-x.x/* drupal-x.x/.htaccess /var/www/html
   By default, Drupal is installed in English, and further languages may be
   installed later. Follow these steps to translate Drupal into your language
   during installation:

   - Download a translation file for this Drupal version from the translation
     server:
     http://localize.drupal.org/download

   - Rename the downloaded file to your language's ISO code (e.g., de.po or
     fr.po) and place it into the directory /translations right below
     the installation profile's directory that you want to use for your
     installation (usually "standard"):

       /profiles/standard/translations/

   - Reload the language selection page after adding translations.

   For detailed instructions, visit http://drupal.org/localize.
2. IF NECESSARY, CREATE THE CONFIGURATION FILE AND GRANT WRITE PERMISSIONS

   Drupal comes with a default.settings.php file in the sites/default
   directory. The installer uses this file as a template to create your
   settings file using the details you provide through the install process.
   To avoid problems when upgrading, Drupal is not packaged with an actual
   settings file. During installation, Drupal will try to create this settings
   file automatically. If this fails (which it can due to different server
   setups), you must create a file named settings.php yourself. You may do so
   by making a copy of default.settings.php (or create an empty file with
   this name in the same directory). For example, (from the installation
   directory) make a copy of the default.settings.php file with the command:

     cp sites/default/default.settings.php sites/default/settings.php

   Next, give the web server write privileges to the sites/default/settings.php
   file with the command (from the installation directory):

     chmod o+w sites/default/settings.php

  So that the files directory can be created automatically, give the web server
  write privileges to the sites/default directory with the command (from the
  installation directory):

   Drupal requires access to a database in order to be installed. Your database
   user will need sufficient privileges to run Drupal. Additional information
   about privileges, and instructions to create a database using the command
   line are available in INSTALL.mysql.txt (for MySQL) or INSTALL.pgsql.txt
   (for PostgreSQL).

   To create a database using PHPMyAdmin or a web-based control panel consult
   the documentation or ask your webhost service provider.

   Take note of the username, password, database name and hostname as you
   create the database. You will enter these items in the install script.

   To run the install script point your browser to the base URL of your website
   You will be guided through several screens to set up the database,
   create tables, add the site maintenance account (the first user, also known
   as user/1), and provide basic web site settings.
   The install script will attempt to create a files storage directory
   in the default location at sites/default/files (the location of the
   files directory may be changed after Drupal is installed). In some
   cases, you may need to create the directory and modify its permissions
   manually. Use the following commands (from the installation directory)
   to create the public and private files directories and grant the web server
   write privileges to them:

     mkdir sites/default/files
     chmod o+w sites/default/files
     mkdir sites/default/private
     chmod o+w sites/default/private
   The install script will attempt to write-protect the settings.php file and
   the sites/default directory after saving your configuration. However, you
   may need to manually write-protect them using the commands (from the
   installation directory):

     chmod a-w sites/default/settings.php
     chmod a-w sites/default

   If you make manual changes to the file later, be sure to protect it again
   after making your modifications. Failure to remove write permissions to that
   file is a security risk. Although the default location for the settings.php
   file is at sites/default/settings.php, it may be in another location
   if you use the multi-site setup, as explained below.

   When the install script succeeds, you will be directed to the "Welcome"
   page logged in with the site maintenance account. Proceed with the initial
   configuration steps suggested on the "Welcome" page.
   If the default Drupal theme is not displaying properly and links on the page
   result in "Page Not Found" errors, try manually setting the $base_url variable
   in the settings.php file if not already set. It's currently known that servers
   running FastCGI can run into problems if the $base_url variable is left
   commented out (see http://bugs.php.net/bug.php?id=19656).

6. REVIEW FILE SYSTEM STORAGE SETTINGS AND FILE PERMISSIONS
   The files directory created in step 4 is the default file system path used
   to store all uploaded files, as well as some temporary files created by Drupal.
   After installation, the settings for the file system path may be modified
   to store uploaded files in a different location.

   It is not necessary to modify this path, but you may wish to change it if:

     * your site runs multiple Drupal installations from a single codebase
       (modify the file system path of each installation to a different
       directory so that uploads do not overlap between installations); or,

     * your site runs a number of web server front-ends behind a load
       balancer or reverse proxy (modify the file system path on each
       server to point to a shared file repository).

   To modify the file system path:

     * Ensure that the new location for the path exists or create it if
       necessary. To create a new directory named uploads, for example,
       use the following command from a shell or system prompt (while in
       the installation directory):
           mkdir uploads

     * Ensure that the new location for the path is writable by the web
       server process. To grant write permissions for a directory named
       uploads, you may need to use the following command from a shell
       or system prompt (while in the installation directory):

           chmod o+w uploads

     * Access the file system path settings in Drupal by selecting these
       menu items from the Navigation menu:

           Administer > Site configuration > File system

       Enter the path to the new location (e.g.: uploads) at the File
       System Path prompt.

   Changing the file system path after files have been uploaded may cause
   unexpected problems on an existing site. If you modify the file system path
   on an existing site, remember to copy all files from the original location
   to the new location.
   Some administrators suggest making the documentation files, especially
   CHANGELOG.txt, non-readable so that the exact version of Drupal you are
   running is slightly more difficult to determine. If you wish to implement
   this optional security measure, use the following command from a shell or
   system prompt (while in the installation directory):

          chmod a-r CHANGELOG.txt

   Note that the example only affects CHANGELOG.txt. To completely hide
   all documentation files from public view, repeat this command for each of
   the Drupal documentation files in the installation directory, substituting the
   name of each file for CHANGELOG.txt in the example.

   For more information on setting file permissions, see "Modifying Linux, Unix,
   and Mac file permissions" (http://drupal.org/node/202483) or "Modifying
   Windows file permissions" (http://drupal.org/node/202491) in the online
   handbook.
   Many Drupal modules have periodic tasks that must be triggered by a cron
   maintenance task, including search module (to build and update the index
   used for keyword searching), aggregator module (to retrieve feeds from other
   sites), and system module (to perform routine maintenance and pruning on
   system tables).

   For most sites, the built-in, automated cron feature should be sufficient.
   Note, however, that cron tasks will only be executed when there are site
   visitors. You can enable the built-in cron feature at:

          Administer > Configuration > System > Site information

   Advanced users may want to ensure that cron tasks are executed periodically.
   To do this, visit the page "cron.php", which executes maintenance tasks on
   behalf of installed modules. The URL of the cron.php page requires a "cron
   key" to protect against unauthorized access.
   Each cron key is automatically generated during installation and is specific
   to your site. The full URL of the page, with cron key, is available in the
   "Cron maintenance tasks" section of the "Status report page" at:
Dries Buytaert's avatar
 
Dries Buytaert committed

   Most systems support using a crontab utility for automatically executing
   tasks like visiting the cron.php page. The following example crontab line
   uses wget to automatically visit the cron.php page each hour, on the hour:

   0   *   *   *   *   wget -O - -q -t 1 http://www.example.com/cron.php?cron_key=RANDOMTEXT

   Replace the text "http://www.example.com/cron.php?cron_key=RANDOMTEXT" in the
   example with the full URL displayed under "Cron maintenance tasks" on the
   "Status report" page.
Dries Buytaert's avatar
 
Dries Buytaert committed

   More information about cron maintenance tasks are available in the help pages
   and in Drupal's online handbook at http://drupal.org/cron. Example cron scripts
   can be found in the scripts/ directory. (Note that these scripts must be
   customized similar to the above example, to add your site-specific cron key
   and domain name.)
Dries Buytaert's avatar
 
Dries Buytaert committed


BUILDING AND CUSTOMIZING YOUR SITE
----------------------------------
Dries Buytaert's avatar
 
Dries Buytaert committed

A new installation of Drupal defaults to a very basic configuration with only a
few active modules and minimal user access rights. When extending your site,
you use "modules" and "themes". A module is a plugin that adds functionallity to
Drupal, while a theme changes the front-end look and behavior of your site.

It is important to install these correctly and not mix them in with the core
Drupal module and theme set (directories modules and themes at the top level).
So normally you place them under the following paths:
Dries Buytaert's avatar
 
Dries Buytaert committed

Dries Buytaert's avatar
 
Dries Buytaert committed

If you run a multisite installation you will want to do this a bit differently.
You can read more about that on the multisite part of this file.
Dries Buytaert's avatar
 
Dries Buytaert committed

Contributed modules can be found at:
http://drupal.org/project/Modules
Dries Buytaert's avatar
 
Dries Buytaert committed

Contributed themes can be found at:
http://drupal.org/project/Themes
Dries Buytaert's avatar
 
Dries Buytaert committed

Later on you might want to write your own code, but remember to NEVER modify the
core modules and themes in Drupal directories modules and themes. Instead use
the hooks available in the Drupal API. You can read more about the Drupal API
and how to develop modules at
http://drupal.org/developing/modules


MULTISITE CONFIGURATION
-----------------------

A single Drupal installation can host several Drupal-powered sites, each with
its own individual configuration.

Additional site configurations are created in subdirectories within the 'sites'
directory. Each subdirectory must have a 'settings.php' file which specifies the
configuration settings. The easiest way to create additional sites is to copy
the 'default' directory and modify the 'settings.php' file as appropriate. The
new directory name is constructed from the site's URL. The configuration for
www.example.com could be in 'sites/example.com/settings.php' (note that 'www.'
should be omitted if users can access your site at http://example.com/).

Sites do not have to have a different domain. You can also use subdomains and
subdirectories for Drupal sites. For example, example.com, sub.example.com,
and sub.example.com/site3 can all be defined as independent Drupal sites. The
setup for a configuration such as this would look like the following:

  sites/default/settings.php
  sites/example.com/settings.php
  sites/sub.example.com/settings.php
  sites/sub.example.com.site3/settings.php

When searching for a site configuration (for example www.sub.example.com/site3),
Drupal will search for configuration files in the following order, using the
first configuration it finds:

  sites/www.sub.example.com.site3/settings.php
  sites/sub.example.com.site3/settings.php
  sites/example.com.site3/settings.php
  sites/www.sub.example.com/settings.php
  sites/sub.example.com/settings.php
  sites/example.com/settings.php
  sites/default/settings.php

If you are installing on a non-standard port, the port number is treated as the
deepest subdomain. For example: http://www.example.com:8080/ could be loaded
from sites/8080.www.example.com/. The port number will be removed according to
the pattern above if no port-specific configuration is found, just like a real
subdomain.

Each site configuration can have its own site-specific modules and themes in
addition to those installed in the standard 'modules' and 'themes' directories.
To use site-specific modules or themes, simply create a 'modules' or 'themes'
directory within the site configuration directory. For example, if
sub.example.com has a custom theme and a custom module that should not be
accessible to other sites, the setup would look like this:

  sites/sub.example.com/:
  settings.php
  themes/custom_theme
  modules/custom_module

NOTE: for more information about multiple virtual hosts or the configuration
settings, consult the Drupal handbook at drupal.org.
Dries Buytaert's avatar
 
Dries Buytaert committed

For more information on configuring Drupal's file system path in a multi-site
configuration, see step 6 above.
Dries Buytaert's avatar
 
Dries Buytaert committed
MORE INFORMATION
----------------

- For additional documentation, see the online Drupal handbook at
  http://drupal.org/handbook.
- For a list of security announcements, see the "Security announcements" page
  at http://drupal.org/security (available as an RSS feed). This page also
  describes how to subscribe to these announcements via e-mail.
- For information about the Drupal security process, or to find out how to report
  a potential security issue to the Drupal security team, see the "Security team"
  page at http://drupal.org/security-team.

- For information about the wide range of available support options, see the
  "Support" page at http://drupal.org/support.