INSTALL.txt

Same filename in this branch
  1. main INSTALL.txt
Same filename and directory in other branches
  1. 11.x core/INSTALL.txt
  2. 11.x INSTALL.txt
  3. 10 core/INSTALL.txt
  4. 10 INSTALL.txt
  5. 9 core/INSTALL.txt
  6. 9 INSTALL.txt
  7. 8.9.x core/INSTALL.txt
  8. 8.9.x INSTALL.txt
  9. 7.x INSTALL.txt
CONTENTS OF THIS FILE
---------------------

 * Quickstart
 * Requirements and notes
 * Optional server requirements
 * Installation
 * Reinstall
 * Building and customizing your site
 * Multisite configuration
 * Multilingual configuration

QUICKSTART
----------------------
This quick start solution uses PHP's built-in web server and is not
intended for production use. Read more about how to run Drupal in a production
environment below.

Prerequisites:
- PHP 8.5.0 (or greater) (https://php.net).
- Composer 2.9.3 (https://getcomposer.org/doc/00-intro.md)

1. Run the following commands

- composer create-project drupal/recommended-project drupal
- cd drupal && php -d memory_limit=256M web/core/scripts/drupal quick-start standard

Wait… installation can take a minute or two. A successful installation will
result in opening the new site in your browser.

Run the following command for a list of available options that you may need to
configure quick-start:
- php core/scripts/drupal quick-start --help

Follow the instructions in the REINSTALL section below to start over.

REQUIREMENTS AND NOTES
----------------------

Drupal requires:

- A web server with PHP support, for example:
  - Apache 2.4.7 (or greater) (http://httpd.apache.org/).
  - Nginx 1.1 (or greater) (http://nginx.com/).
- PHP 8.5.0 (or greater) (http://php.net/).
- One of the following databases:
  - MySQL 8.0.0 (or greater) (http://www.mysql.com/).
  - MariaDB 10.11.0 (or greater) (https://mariadb.org/). MariaDB is a fully
    compatible drop-in replacement for MySQL.
  - PostgreSQL 18 (or greater) (http://www.postgresql.org/).
  - SQLite 3.45 (or greater) (http://www.sqlite.org/).
- Composer 2.9.3 (https://getcomposer.org/doc/00-intro.md)

For more detailed information about Drupal requirements, including a list of
PHP extensions and configurations that are required, see "System requirements"
(https://www.drupal.org/docs/system-requirements) in the Drupal.org online
documentation.

For detailed information on how to configure a test server environment using a
variety of operating systems and web servers, see "Local server setup"
(https://www.drupal.org/node/157602) in the Drupal.org online documentation.

Note that all directories mentioned in this document are always relative to the
directory of your Drupal installation, and commands are meant to be run from
this directory (except for the initial commands that create that directory).

OPTIONAL SERVER REQUIREMENTS
----------------------------

- If you want 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.

- If you plan to use XML-based services such as RSS aggregation, you will need
  PHP's XML extension. This extension is enabled by default on most PHP
  installations.

- To serve gzip compressed CSS and JS files on an Apache web server, you will
  need the mod_headers module and the ability to use local .htaccess files.

- Some Drupal functionality (e.g., checking whether Drupal and contributed
  modules need updates, RSS aggregation, etc.) require that the web server be
  able to go out to the web and download information. If you want to use this
  functionality, you need to verify that your hosting provider or server
  configuration allows the web server to initiate outbound connections. Most web
  hosting setups allow this.

INSTALLATION
------------
1. Get Drupal

   You can obtain the latest Drupal release using the following composer
   command.

   composer create-project drupal/recommended-project drupal

   This will create a project in the drupal directory and automatically
   execute composer install to download the latest stable version of Drupal and
   all its dependencies.

   This will create a new directory "drupal" containing all Drupal files
   and directories. Then, to move the contents of that directory into a
   directory within your web server's document root or your public HTML
   directory, continue with this command:

   mv my_site_name /path/to/your/installation

2. Create the Drupal database

   Because Drupal stores all site information in a database, the Drupal
   installer will attempt to create this database for you. If you create the
   database manually, you must grant Drupal certain database privileges (such as
   the ability to create tables).  For details, consult INSTALL.mysql.txt,
   INSTALL.pgsql.txt, or INSTALL.sqlite.txt. You may also need to consult your
   web hosting provider for instructions specific to your web host.

   Take note of the username, password, database name, and hostname as you
   create the database. You will enter this information during the install.

3. Run the install script

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

   You will be guided through several screens to set up the database, add the
   site maintenance account (the first user, also known as user/1), and provide
   basic website settings.

   During installation, several files and directories need to be created, which
   the install script will try to do automatically. However, on some hosting
   environments, manual steps are required, and the install script will tell
   you that it cannot proceed until you fix certain issues. This is normal and
   does not indicate a problem with your server.

   The most common steps you may need to perform are:

   a. Missing files directory.

      The install script will attempt to create a public file storage directory
      in the default location at sites/default/files (the location of the files
      directory may be changed after Drupal is installed).

      If auto-creation fails, you can create the directory yourself. (If you are
      creating a multisite installation, substitute the correct sites directory
      for sites/default; see the Multisite Configuration section of this file,
      below.) Sample commands from a Unix/Linux command line:

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

      Alternatively, you can make the install script work by changing
      permissions on the sites/default directory. The web server can then
      create the files directory within it for you.

      For example, on a Unix/Linux command line, you can grant everyone
      (including the web server) permission to write to the sites/default
      directory with this command:

        chmod a+w sites/default

      Then re-run install.php (e.g. by clicking "try again" at the bottom of
      the Requirements problem page. Once the files directory is created, you
      will need to grant everyone (including the web server) permission to
      write to it with this command:

        chmod a+w sites/default/files

      Be sure to set the permissions for the default directory back after the
      installation is finished! (Leave the files directory writable.)
      Sample command:

        chmod go-w sites/default

   b. Missing settings file.

      Drupal will try to automatically create a settings.php configuration file,
      which is normally in the directory sites/default (to avoid problems when
      upgrading, Drupal is not packaged with this file). If auto-creation fails,
      you will need to create this file yourself, using the file
      sites/default/default.settings.php as a template.

      For example, on a Unix/Linux command line, you can make a copy of the
      default.settings.php file with the command:

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

      Next, grant write privileges to the file to everyone (including the web
      server) with the command:

        chmod a+w sites/default/settings.php

      Be sure to set the permissions back after the installation is finished!
      Sample command:

        chmod go-w sites/default/settings.php

   c. Write permissions after install.

      The install script will attempt to write-protect the settings.php file and
      the sites/default directory after saving your configuration. If this
      fails, you will be notified, and you can do it manually. Sample commands
      from a Unix/Linux command line:

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

4. Verify that the site is working

   When the install script finishes, you will be logged in with the site
   maintenance account on a "Welcome" page. If the default Drupal theme is not
   displaying properly and links on the page result in "Page Not Found" errors,
   you may be experiencing problems with clean URLs. Visit
   https://www.drupal.org/docs/administering-a-drupal-site/troubleshooting-drupal/fix-drupal-clean-urls-problems
   to troubleshoot.

5. Change file system storage settings (optional)

   The files directory created in step 3 is the default file system path used to
   store all uploaded files, as well as some temporary files created by
   Drupal. After installation, you can modify the file system path 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).

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

   - You want to restrict access to uploaded files.

   To modify the file system path:

   a. Ensure that the new location for the path exists and is writable by the
      web server. For example, to create a new directory named uploads and grant
      write permissions, use the following commands on a Unix/Linux command
      line:

        mkdir uploads
        chmod a+w uploads

   b. Open your settings.php in a plain-text editor, and uncomment (remove the #
      at the start of line) this line:

        # $settings['file_public_path'] = 'sites/default/files';

      Enter the desired path and save the file.

      If you want to use private file storage, you need to uncomment (remove
      the # at the start of line) the following line in settings.php:

        # $settings['file_private_path'] = '';

      Enter the path for private files and save the file.

   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.

6. Revoke documentation file permissions (optional)

   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, from a Unix/Linux command line you can use
   the following command:

     chmod a-r core/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 "Securing file
   permissions and ownership" (https://www.drupal.org/node/3092168) in the
   Drupal.org online documentation.

7. Set up independent "cron" maintenance jobs

   Many Drupal modules have tasks that must be run periodically, including the
   Search module (building and updating the index used for keyword searching)
   and the System module (performing routine maintenance and pruning of
   database tables). These tasks are known as "cron maintenance tasks", named
   after the Unix/Linux "cron" utility.

   When you install Drupal, its built-in cron feature is enabled, which
   automatically runs the cron tasks periodically, triggered by people visiting
   pages of your site. You can configure the built-in cron feature by navigating
   to Administration > Configuration > System > Cron.

   It is also possible to run the cron tasks independent of site visits; this is
   recommended for most sites. To do this, you will need to set up an automated
   process to visit the page /cron on your site, which executes the cron
   tasks.

   The URL of the cron page requires a "cron key" to protect against
   unauthorized access. Your site's cron key is automatically generated during
   installation and is specific to your site. The full URL of the page, with the
   cron key, is available in the "Cron maintenance tasks" section of the Status
   report page at Administration > Reports > Status report.

   As an example of how to set up this automated process, you can use the
   crontab utility on Unix/Linux systems. The following crontab line uses the
   wget command to visit the cron page, and runs each hour, on the hour:

   0 * * * * wget -O - -q -t 1 http://example.com/cron/YOURKEY

   Replace the text "http://example.com/cron/YOURKEY" in the example with the
   full URL displayed under "Cron maintenance tasks" on the "Status report"
   page.

   More information about cron maintenance tasks is available at
   https://www.drupal.org/docs/administering-a-drupal-site/cron-automated-tasks,
   and sample cron shell scripts can be found in the core/scripts/ directory.
   (Note that these scripts must be customized like the above example, to add
   your site-specific cron key and domain name.)

REINSTALL
------------

Drupal can be reinstalled without downloading and extracting the Drupal release.

1. Drop all the tables in your database.

2. Remove everything in sites/default/files.

3. Remove sites/default/settings.php.

4. Follow the Installation Instructions above starting from Step 3 (Run the
   install script).

BUILDING AND CUSTOMIZING YOUR SITE
----------------------------------

A new installation of Drupal defaults to a very basic configuration. To extend
your site, you use "modules" and "themes". A module is a plugin that adds
functionality to Drupal, while a theme changes the look of your site. The core
of Drupal provides several optional modules and themes, and you can download
more at https://www.drupal.org/project/project_module and
https://www.drupal.org/project/project_theme

Do not mix downloaded or custom modules and themes with Drupal's core modules
and themes. Drupal's modules and themes are located in the /core/modules and
/core/themes directories, while the modules and themes you add to Drupal are
normally placed in the /modules and /themes directories. If you run a multisite
installation, you can also place modules and themes in the site-specific
directories -- see the Multisite Configuration section, below.

Never edit Drupal's core modules and themes; instead, use the hooks available in
the Drupal API. To modify the behavior of Drupal, develop a module as described
at https://www.drupal.org/developing/modules. To modify the look of Drupal,
create a subtheme as described at https://www.drupal.org/node/2165673, or a
completely new theme as described at
https://www.drupal.org/docs/develop/theming-drupal

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

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

For this to work you need the file sites/sites.php to exist. Make a copy of
the example.sites.php file:

  $ cp sites/example.sites.php sites/sites.php

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 file 'default.settings.php' from the 'sites/default' directory into the
new site directory with file name 'settings.php' and modify 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/).

  $ cp sites/default/default.settings.php sites/example.com/settings.php

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

For more information about multiple virtual hosts or the configuration
settings, consult https://www.drupal.org/docs/getting-started/multisite-drupal

For more information on configuring Drupal's file system path in a multisite
configuration, see step 6 above.

MULTILINGUAL CONFIGURATION
--------------------------

By default, Drupal is installed in one language, and further languages may be
installed later.

For detailed instructions, visit
https://www.drupal.org/docs/administering-a-drupal-site/multilingual-guide

File

core/INSTALL.txt

View source
  1. CONTENTS OF THIS FILE
  2. ---------------------
  3. * Quickstart
  4. * Requirements and notes
  5. * Optional server requirements
  6. * Installation
  7. * Reinstall
  8. * Building and customizing your site
  9. * Multisite configuration
  10. * Multilingual configuration
  11. QUICKSTART
  12. ----------------------
  13. This quick start solution uses PHP's built-in web server and is not
  14. intended for production use. Read more about how to run Drupal in a production
  15. environment below.
  16. Prerequisites:
  17. - PHP 8.5.0 (or greater) (https://php.net).
  18. - Composer 2.9.3 (https://getcomposer.org/doc/00-intro.md)
  19. 1. Run the following commands
  20. - composer create-project drupal/recommended-project drupal
  21. - cd drupal && php -d memory_limit=256M web/core/scripts/drupal quick-start standard
  22. Wait… installation can take a minute or two. A successful installation will
  23. result in opening the new site in your browser.
  24. Run the following command for a list of available options that you may need to
  25. configure quick-start:
  26. - php core/scripts/drupal quick-start --help
  27. Follow the instructions in the REINSTALL section below to start over.
  28. REQUIREMENTS AND NOTES
  29. ----------------------
  30. Drupal requires:
  31. - A web server with PHP support, for example:
  32. - Apache 2.4.7 (or greater) (http://httpd.apache.org/).
  33. - Nginx 1.1 (or greater) (http://nginx.com/).
  34. - PHP 8.5.0 (or greater) (http://php.net/).
  35. - One of the following databases:
  36. - MySQL 8.0.0 (or greater) (http://www.mysql.com/).
  37. - MariaDB 10.11.0 (or greater) (https://mariadb.org/). MariaDB is a fully
  38. compatible drop-in replacement for MySQL.
  39. - PostgreSQL 18 (or greater) (http://www.postgresql.org/).
  40. - SQLite 3.45 (or greater) (http://www.sqlite.org/).
  41. - Composer 2.9.3 (https://getcomposer.org/doc/00-intro.md)
  42. For more detailed information about Drupal requirements, including a list of
  43. PHP extensions and configurations that are required, see "System requirements"
  44. (https://www.drupal.org/docs/system-requirements) in the Drupal.org online
  45. documentation.
  46. For detailed information on how to configure a test server environment using a
  47. variety of operating systems and web servers, see "Local server setup"
  48. (https://www.drupal.org/node/157602) in the Drupal.org online documentation.
  49. Note that all directories mentioned in this document are always relative to the
  50. directory of your Drupal installation, and commands are meant to be run from
  51. this directory (except for the initial commands that create that directory).
  52. OPTIONAL SERVER REQUIREMENTS
  53. ----------------------------
  54. - If you want to use Drupal's "Clean URLs" feature on an Apache web server, you
  55. will need the mod_rewrite module and the ability to use local .htaccess
  56. files.
  57. - If you plan to use XML-based services such as RSS aggregation, you will need
  58. PHP's XML extension. This extension is enabled by default on most PHP
  59. installations.
  60. - To serve gzip compressed CSS and JS files on an Apache web server, you will
  61. need the mod_headers module and the ability to use local .htaccess files.
  62. - Some Drupal functionality (e.g., checking whether Drupal and contributed
  63. modules need updates, RSS aggregation, etc.) require that the web server be
  64. able to go out to the web and download information. If you want to use this
  65. functionality, you need to verify that your hosting provider or server
  66. configuration allows the web server to initiate outbound connections. Most web
  67. hosting setups allow this.
  68. INSTALLATION
  69. ------------
  70. 1. Get Drupal
  71. You can obtain the latest Drupal release using the following composer
  72. command.
  73. composer create-project drupal/recommended-project drupal
  74. This will create a project in the drupal directory and automatically
  75. execute composer install to download the latest stable version of Drupal and
  76. all its dependencies.
  77. This will create a new directory "drupal" containing all Drupal files
  78. and directories. Then, to move the contents of that directory into a
  79. directory within your web server's document root or your public HTML
  80. directory, continue with this command:
  81. mv my_site_name /path/to/your/installation
  82. 2. Create the Drupal database
  83. Because Drupal stores all site information in a database, the Drupal
  84. installer will attempt to create this database for you. If you create the
  85. database manually, you must grant Drupal certain database privileges (such as
  86. the ability to create tables). For details, consult INSTALL.mysql.txt,
  87. INSTALL.pgsql.txt, or INSTALL.sqlite.txt. You may also need to consult your
  88. web hosting provider for instructions specific to your web host.
  89. Take note of the username, password, database name, and hostname as you
  90. create the database. You will enter this information during the install.
  91. 3. Run the install script
  92. To run the install script, point your browser to the base URL of your
  93. website (e.g., http://www.example.com).
  94. You will be guided through several screens to set up the database, add the
  95. site maintenance account (the first user, also known as user/1), and provide
  96. basic website settings.
  97. During installation, several files and directories need to be created, which
  98. the install script will try to do automatically. However, on some hosting
  99. environments, manual steps are required, and the install script will tell
  100. you that it cannot proceed until you fix certain issues. This is normal and
  101. does not indicate a problem with your server.
  102. The most common steps you may need to perform are:
  103. a. Missing files directory.
  104. The install script will attempt to create a public file storage directory
  105. in the default location at sites/default/files (the location of the files
  106. directory may be changed after Drupal is installed).
  107. If auto-creation fails, you can create the directory yourself. (If you are
  108. creating a multisite installation, substitute the correct sites directory
  109. for sites/default; see the Multisite Configuration section of this file,
  110. below.) Sample commands from a Unix/Linux command line:
  111. mkdir sites/default/files
  112. chmod a+w sites/default/files
  113. Alternatively, you can make the install script work by changing
  114. permissions on the sites/default directory. The web server can then
  115. create the files directory within it for you.
  116. For example, on a Unix/Linux command line, you can grant everyone
  117. (including the web server) permission to write to the sites/default
  118. directory with this command:
  119. chmod a+w sites/default
  120. Then re-run install.php (e.g. by clicking "try again" at the bottom of
  121. the Requirements problem page. Once the files directory is created, you
  122. will need to grant everyone (including the web server) permission to
  123. write to it with this command:
  124. chmod a+w sites/default/files
  125. Be sure to set the permissions for the default directory back after the
  126. installation is finished! (Leave the files directory writable.)
  127. Sample command:
  128. chmod go-w sites/default
  129. b. Missing settings file.
  130. Drupal will try to automatically create a settings.php configuration file,
  131. which is normally in the directory sites/default (to avoid problems when
  132. upgrading, Drupal is not packaged with this file). If auto-creation fails,
  133. you will need to create this file yourself, using the file
  134. sites/default/default.settings.php as a template.
  135. For example, on a Unix/Linux command line, you can make a copy of the
  136. default.settings.php file with the command:
  137. cp sites/default/default.settings.php sites/default/settings.php
  138. Next, grant write privileges to the file to everyone (including the web
  139. server) with the command:
  140. chmod a+w sites/default/settings.php
  141. Be sure to set the permissions back after the installation is finished!
  142. Sample command:
  143. chmod go-w sites/default/settings.php
  144. c. Write permissions after install.
  145. The install script will attempt to write-protect the settings.php file and
  146. the sites/default directory after saving your configuration. If this
  147. fails, you will be notified, and you can do it manually. Sample commands
  148. from a Unix/Linux command line:
  149. chmod go-w sites/default/settings.php
  150. chmod go-w sites/default
  151. 4. Verify that the site is working
  152. When the install script finishes, you will be logged in with the site
  153. maintenance account on a "Welcome" page. If the default Drupal theme is not
  154. displaying properly and links on the page result in "Page Not Found" errors,
  155. you may be experiencing problems with clean URLs. Visit
  156. https://www.drupal.org/docs/administering-a-drupal-site/troubleshooting-drupal/fix-drupal-clean-urls-problems
  157. to troubleshoot.
  158. 5. Change file system storage settings (optional)
  159. The files directory created in step 3 is the default file system path used to
  160. store all uploaded files, as well as some temporary files created by
  161. Drupal. After installation, you can modify the file system path to store
  162. uploaded files in a different location.
  163. It is not necessary to modify this path, but you may wish to change it if:
  164. - Your site runs multiple Drupal installations from a single codebase (modify
  165. the file system path of each installation to a different directory so that
  166. uploads do not overlap between installations).
  167. - Your site runs on a number of web servers behind a load balancer or reverse
  168. proxy (modify the file system path on each server to point to a shared file
  169. repository).
  170. - You want to restrict access to uploaded files.
  171. To modify the file system path:
  172. a. Ensure that the new location for the path exists and is writable by the
  173. web server. For example, to create a new directory named uploads and grant
  174. write permissions, use the following commands on a Unix/Linux command
  175. line:
  176. mkdir uploads
  177. chmod a+w uploads
  178. b. Open your settings.php in a plain-text editor, and uncomment (remove the #
  179. at the start of line) this line:
  180. # $settings['file_public_path'] = 'sites/default/files';
  181. Enter the desired path and save the file.
  182. If you want to use private file storage, you need to uncomment (remove
  183. the # at the start of line) the following line in settings.php:
  184. # $settings['file_private_path'] = '';
  185. Enter the path for private files and save the file.
  186. Changing the file system path after files have been uploaded may cause
  187. unexpected problems on an existing site. If you modify the file system path
  188. on an existing site, remember to copy all files from the original location
  189. to the new location.
  190. 6. Revoke documentation file permissions (optional)
  191. Some administrators suggest making the documentation files, especially
  192. CHANGELOG.txt, non-readable so that the exact version of Drupal you are
  193. running is slightly more difficult to determine. If you wish to implement
  194. this optional security measure, from a Unix/Linux command line you can use
  195. the following command:
  196. chmod a-r core/CHANGELOG.txt
  197. Note that the example only affects CHANGELOG.txt. To completely hide all
  198. documentation files from public view, repeat this command for each of the
  199. Drupal documentation files in the installation directory, substituting the
  200. name of each file for CHANGELOG.txt in the example.
  201. For more information on setting file permissions, see "Securing file
  202. permissions and ownership" (https://www.drupal.org/node/3092168) in the
  203. Drupal.org online documentation.
  204. 7. Set up independent "cron" maintenance jobs
  205. Many Drupal modules have tasks that must be run periodically, including the
  206. Search module (building and updating the index used for keyword searching)
  207. and the System module (performing routine maintenance and pruning of
  208. database tables). These tasks are known as "cron maintenance tasks", named
  209. after the Unix/Linux "cron" utility.
  210. When you install Drupal, its built-in cron feature is enabled, which
  211. automatically runs the cron tasks periodically, triggered by people visiting
  212. pages of your site. You can configure the built-in cron feature by navigating
  213. to Administration > Configuration > System > Cron.
  214. It is also possible to run the cron tasks independent of site visits; this is
  215. recommended for most sites. To do this, you will need to set up an automated
  216. process to visit the page /cron on your site, which executes the cron
  217. tasks.
  218. The URL of the cron page requires a "cron key" to protect against
  219. unauthorized access. Your site's cron key is automatically generated during
  220. installation and is specific to your site. The full URL of the page, with the
  221. cron key, is available in the "Cron maintenance tasks" section of the Status
  222. report page at Administration > Reports > Status report.
  223. As an example of how to set up this automated process, you can use the
  224. crontab utility on Unix/Linux systems. The following crontab line uses the
  225. wget command to visit the cron page, and runs each hour, on the hour:
  226. 0 * * * * wget -O - -q -t 1 http://example.com/cron/YOURKEY
  227. Replace the text "http://example.com/cron/YOURKEY" in the example with the
  228. full URL displayed under "Cron maintenance tasks" on the "Status report"
  229. page.
  230. More information about cron maintenance tasks is available at
  231. https://www.drupal.org/docs/administering-a-drupal-site/cron-automated-tasks,
  232. and sample cron shell scripts can be found in the core/scripts/ directory.
  233. (Note that these scripts must be customized like the above example, to add
  234. your site-specific cron key and domain name.)
  235. REINSTALL
  236. ------------
  237. Drupal can be reinstalled without downloading and extracting the Drupal release.
  238. 1. Drop all the tables in your database.
  239. 2. Remove everything in sites/default/files.
  240. 3. Remove sites/default/settings.php.
  241. 4. Follow the Installation Instructions above starting from Step 3 (Run the
  242. install script).
  243. BUILDING AND CUSTOMIZING YOUR SITE
  244. ----------------------------------
  245. A new installation of Drupal defaults to a very basic configuration. To extend
  246. your site, you use "modules" and "themes". A module is a plugin that adds
  247. functionality to Drupal, while a theme changes the look of your site. The core
  248. of Drupal provides several optional modules and themes, and you can download
  249. more at https://www.drupal.org/project/project_module and
  250. https://www.drupal.org/project/project_theme
  251. Do not mix downloaded or custom modules and themes with Drupal's core modules
  252. and themes. Drupal's modules and themes are located in the /core/modules and
  253. /core/themes directories, while the modules and themes you add to Drupal are
  254. normally placed in the /modules and /themes directories. If you run a multisite
  255. installation, you can also place modules and themes in the site-specific
  256. directories -- see the Multisite Configuration section, below.
  257. Never edit Drupal's core modules and themes; instead, use the hooks available in
  258. the Drupal API. To modify the behavior of Drupal, develop a module as described
  259. at https://www.drupal.org/developing/modules. To modify the look of Drupal,
  260. create a subtheme as described at https://www.drupal.org/node/2165673, or a
  261. completely new theme as described at
  262. https://www.drupal.org/docs/develop/theming-drupal
  263. MULTISITE CONFIGURATION
  264. -----------------------
  265. A single Drupal installation can host several Drupal-powered sites, each with
  266. its own individual configuration.
  267. For this to work you need the file sites/sites.php to exist. Make a copy of
  268. the example.sites.php file:
  269. $ cp sites/example.sites.php sites/sites.php
  270. Additional site configurations are created in subdirectories within the 'sites'
  271. directory. Each subdirectory must have a 'settings.php' file, which specifies
  272. the configuration settings. The easiest way to create additional sites is to
  273. copy file 'default.settings.php' from the 'sites/default' directory into the
  274. new site directory with file name 'settings.php' and modify as appropriate.
  275. The new directory name is constructed from the site's URL. The configuration
  276. for www.example.com could be in 'sites/example.com/settings.php' (note that
  277. 'www.' should be omitted if users can access your site at http://example.com/).
  278. $ cp sites/default/default.settings.php sites/example.com/settings.php
  279. Sites do not have to have a different domain. You can also use subdomains and
  280. subdirectories for Drupal sites. For example, example.com, sub.example.com, and
  281. sub.example.com/site3 can all be defined as independent Drupal sites. The setup
  282. for a configuration such as this would look like the following:
  283. sites/default/settings.php
  284. sites/example.com/settings.php
  285. sites/sub.example.com/settings.php
  286. sites/sub.example.com.site3/settings.php
  287. When searching for a site configuration (for example www.sub.example.com/site3),
  288. Drupal will search for configuration files in the following order, using the
  289. first configuration it finds:
  290. sites/www.sub.example.com.site3/settings.php
  291. sites/sub.example.com.site3/settings.php
  292. sites/example.com.site3/settings.php
  293. sites/www.sub.example.com/settings.php
  294. sites/sub.example.com/settings.php
  295. sites/example.com/settings.php
  296. sites/default/settings.php
  297. If you are installing on a non-standard port, the port number is treated as the
  298. deepest subdomain. For example: http://www.example.com:8080/ could be loaded
  299. from sites/8080.www.example.com/. The port number will be removed according to
  300. the pattern above if no port-specific configuration is found, just like a real
  301. subdomain.
  302. Each site configuration can have its own site-specific modules and themes in
  303. addition to those installed in the standard 'modules' and 'themes' directories.
  304. To use site-specific modules or themes, simply create a 'modules' or 'themes'
  305. directory within the site configuration directory. For example, if
  306. sub.example.com has a custom theme and a custom module that should not be
  307. accessible to other sites, the setup would look like this:
  308. sites/sub.example.com/
  309. settings.php
  310. themes/custom_theme
  311. modules/custom_module
  312. For more information about multiple virtual hosts or the configuration
  313. settings, consult https://www.drupal.org/docs/getting-started/multisite-drupal
  314. For more information on configuring Drupal's file system path in a multisite
  315. configuration, see step 6 above.
  316. MULTILINGUAL CONFIGURATION
  317. --------------------------
  318. By default, Drupal is installed in one language, and further languages may be
  319. installed later.
  320. For detailed instructions, visit
  321. https://www.drupal.org/docs/administering-a-drupal-site/multilingual-guide

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.