INSTALL.txt 15 KB
Newer Older
Dries's avatar
 
Dries committed
1
// $Id$
Dries's avatar
 
Dries committed
2

Dries's avatar
Dries committed
3 4 5 6 7 8
CONTENTS OF THIS FILE
---------------------

 * Requirements
 * Optional requirements
 * Installation
9 10 11
 * Drupal administration
 * Customizing your theme(s)
 * Multisite Configuration
Dries's avatar
Dries committed
12 13
 * More Information

Dries's avatar
 
Dries committed
14 15 16
REQUIREMENTS
------------

Gábor Hojtsy's avatar
Gábor Hojtsy committed
17
Drupal requires a web server, PHP 4 (4.3.5 or greater) or PHP 5
18 19 20
(http://www.php.net/) and either MySQL (http://www.mysql.com/) or PostgreSQL
(http://www.postgresql.org/). The Apache web server and MySQL database are
recommended; other web server and database combinations such as IIS and
21
PostgreSQL have been tested to a lesser extent. When using MySQL, version 5.0
22 23 24
or greater is recommended to assure you can safely transfer the database.

For more detailed information about Drupal requirements, see "Requirements"
25
(http://drupal.org/requirements) in the Drupal handbook.
Dries's avatar
 
Dries committed
26

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

Dries's avatar
Dries committed
31 32
OPTIONAL REQUIREMENTS
---------------------
Dries's avatar
 
Dries committed
33

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

37 38 39 40
- 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's avatar
 
Dries committed
41

42
- Various Drupal features require that the web server process (for
43 44 45 46 47 48 49
  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.
50 51


Dries's avatar
 
Dries committed
52 53 54
INSTALLATION
------------

55
1. DOWNLOAD DRUPAL AND OPTIONALLY A TRANSLATION
Dries's avatar
 
Dries committed
56

57 58 59
   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's avatar
 
Dries committed
60

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

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

68
     mv drupal-x.x/* drupal-x.x/.htaccess /var/www/html
69

70 71 72 73
   If you would like to have the default English interface translated to a
   different language, we have good news. You can install and use Drupal in
   other languages from the start. Check whether a released package of the
   language desired is available for this Drupal version at
74
   http://drupal.org/project/translations and download the package. Extract
75 76
   the contents to the same directory where you extracted Drupal into.

77
2. GRANT WRITE PERMISSIONS ON CONFIGURATION FILE
78 79 80 81

   Drupal comes with a default.settings.php file in the sites/default
   directory. The installer will create a copy of this file filled with
   the details you provide through the install process, in the same
82 83
   directory. Give the web server write privileges to the sites/default
   directory with the command (from the installation directory):
84

85 86
     chmod o+w sites/default

87
3. CREATE THE DRUPAL DATABASE
88 89 90 91

   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
92
   line are available in INSTALL.mysql.txt (for MySQL) or INSTALL.pgsql.txt
93 94 95 96 97 98 99 100
   (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.

101
4. RUN THE INSTALL SCRIPT
102

103
   To run the install script point your browser to the base URL of your website
104
   (e.g., http://www.example.com).
105

106 107 108 109
   You will be guided through several screens to set up the database,
   create tables, add the first user account and provide basic web
   site settings.

110 111
   The install script will attempt to create a files storage directory
   in the default location at sites/default/files (the location of the
112
   files directory may be changed after Drupal is installed). In some
113 114 115 116 117 118 119
   cases, you may need to create the directory and modify its permissions
   manually. Use the following commands (from the installation directory)
   to create the files directory and grant the web server write privileges to it:

     mkdir sites/default/files
     chmod o+w sites/default/files

120 121 122 123 124 125
   The install script will attempt to write-protect the sites/default
   directory after creating the settings.php file. If you make manual
   changes to that 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
126 127
   if you use the multi-site setup, as explained below.

128
5. CONFIGURE DRUPAL
129

130 131 132
   When the install script succeeds, you will be directed to the "Welcome"
   page, and you will be logged in as the administrator already. Proceed with
   the initial configuration steps suggested on the "Welcome" page.
133

134
   If the default Drupal theme is not displaying properly and links on the page
135 136 137 138 139
   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).

140
6. REVIEW FILE SYSTEM STORAGE SETTINGS AND FILE PERMISSIONS
141

142
   The files directory created in step 4 is the default file system path used
Dries's avatar
Dries committed
143
   to store all uploaded files, as well as some temporary files created by Drupal.
144 145 146 147 148 149 150
   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
151
       directory so that uploads do not overlap between installations); or,
152 153 154

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

   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):
163

164 165 166 167
           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
Dries's avatar
Dries committed
168
       uploads, you may need to use the following command from a shell
169 170 171 172 173 174 175
       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:

176
           Administer > Site configuration > File system
177 178

       Enter the path to the new location (e.g.: uploads) at the File
Dries's avatar
Dries committed
179
       System Path prompt.
180 181 182 183 184

   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.
185

186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202
   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.
203

204
7. CRON MAINTENANCE TASKS
205

206 207
   Many Drupal modules have periodic tasks that must be triggered by a cron
   maintenance task, including search module (to build and update the index
208
   used for keyword searching), aggregator module (to retrieve feeds from other
209
   sites), and system module (to perform routine maintenance and pruning on
210 211 212 213 214 215
   system tables). To activate these tasks, 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:
216

217
          Administer > Reports > Status report
Dries's avatar
 
Dries committed
218

219 220 221 222 223 224 225 226 227
   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's avatar
 
Dries committed
228

229
   More information about cron maintenance tasks are available in the help pages
230 231 232 233
   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's avatar
 
Dries committed
234 235 236 237

DRUPAL ADMINISTRATION
---------------------

238 239 240 241
A new installation of Drupal defaults to a very basic configuration with only a
few active modules and minimal user access rights.

Use your administration panel to enable and configure services. For example:
Dries's avatar
 
Dries committed
242

243 244 245
General Settings       Administer > Site configuration > Site information
Enable Modules         Administer > Site building > Modules
Configure Themes       Administer > Site building > Themes
246
Set User Permissions   Administer > User management > Permissions
Dries's avatar
 
Dries committed
247

248 249 250
For more information on configuration options, read the instructions which
accompany the different configuration settings and consult the various help
pages available in the administration panel.
Dries's avatar
 
Dries committed
251

Dries's avatar
Dries committed
252
Community-contributed modules and themes are available at http://drupal.org/.
Dries's avatar
 
Dries committed
253 254 255 256

CUSTOMIZING YOUR THEME(S)
-------------------------

257 258 259 260 261
Now that your installation is running, you will want to customize the look of
your site. Several sample themes are included and more can be downloaded from
drupal.org.

Simple customization of your theme can be done using only CSS. Further changes
262
require understanding the phptemplate engine that is part of Drupal. See
263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307
http://drupal.org/handbook/customization to find out more.

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
308
addition to those installed in the standard 'modules' and 'themes' directories.
309 310 311 312 313 314 315 316 317 318 319 320
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's avatar
 
Dries committed
321

322
For more information on configuring Drupal's file system path in a multi-site
323
configuration, see step 6 above.
324

Dries's avatar
 
Dries committed
325 326 327
MORE INFORMATION
----------------

328 329
- For additional documentation, see the online Drupal handbook at
  http://drupal.org/handbook.
330

331 332 333
- 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.
334

335 336 337 338 339 340
- 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.