INSTALL.txt 18 KB

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