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