INSTALL.txt 17 KB

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