1<?php 2 3// phpcs:ignoreFile 4 5/** 6 * @file 7 * Drupal site-specific configuration file. 8 * 9 * IMPORTANT NOTE: 10 * This file may have been set to read-only by the Drupal installation program. 11 * If you make changes to this file, be sure to protect it again after making 12 * your modifications. Failure to remove write permissions to this file is a 13 * security risk. 14 * 15 * In order to use the selection rules below the multisite aliasing file named 16 * sites/sites.php must be present. Its optional settings will be loaded, and 17 * the aliases in the array $sites will override the default directory rules 18 * below. See sites/example.sites.php for more information about aliases. 19 * 20 * The configuration directory will be discovered by stripping the website's 21 * hostname from left to right and pathname from right to left. The first 22 * configuration file found will be used and any others will be ignored. If no 23 * other configuration file is found then the default configuration file at 24 * 'sites/default' will be used. 25 * 26 * For example, for a fictitious site installed at 27 * https://www.drupal.org:8080/mysite/test/, the 'settings.php' file is searched 28 * for in the following directories: 29 * 30 * - sites/8080.www.drupal.org.mysite.test 31 * - sites/www.drupal.org.mysite.test 32 * - sites/drupal.org.mysite.test 33 * - sites/org.mysite.test 34 * 35 * - sites/8080.www.drupal.org.mysite 36 * - sites/www.drupal.org.mysite 37 * - sites/drupal.org.mysite 38 * - sites/org.mysite 39 * 40 * - sites/8080.www.drupal.org 41 * - sites/www.drupal.org 42 * - sites/drupal.org 43 * - sites/org 44 * 45 * - sites/default 46 * 47 * Note that if you are installing on a non-standard port number, prefix the 48 * hostname with that number. For example, 49 * https://www.drupal.org:8080/mysite/test/ could be loaded from 50 * sites/8080.www.drupal.org.mysite.test/. 51 * 52 * @see example.sites.php 53 * @see \Drupal\Core\DrupalKernel::getSitePath() 54 * 55 * In addition to customizing application settings through variables in 56 * settings.php, you can create a services.yml file in the same directory to 57 * register custom, site-specific service definitions and/or swap out default 58 * implementations with custom ones. 59 */ 60 61/** 62 * Database settings: 63 * 64 * The $databases array specifies the database connection or 65 * connections that Drupal may use. Drupal is able to connect 66 * to multiple databases, including multiple types of databases, 67 * during the same request. 68 * 69 * One example of the simplest connection array is shown below. To use the 70 * sample settings, copy and uncomment the code below between the @code and 71 * @endcode lines and paste it after the $databases declaration. You will need 72 * to replace the database username and password and possibly the host and port 73 * with the appropriate credentials for your database system. 74 * 75 * The next section describes how to customize the $databases array for more 76 * specific needs. 77 * 78 * @code 79 * $databases['default']['default'] = [ 80 * 'database' => 'databasename', 81 * 'username' => 'sqlusername', 82 * 'password' => 'sqlpassword', 83 * 'host' => 'localhost', 84 * 'port' => '3306', 85 * 'driver' => 'mysql', 86 * 'prefix' => '', 87 * 'collation' => 'utf8mb4_general_ci', 88 * ]; 89 * @endcode 90 */ 91$databases = []; 92 93/** 94 * Customizing database settings. 95 * 96 * Many of the values of the $databases array can be customized for your 97 * particular database system. Refer to the sample in the section above as a 98 * starting point. 99 * 100 * The "driver" property indicates what Drupal database driver the 101 * connection should use. This is usually the same as the name of the 102 * database type, such as mysql or sqlite, but not always. The other 103 * properties will vary depending on the driver. For SQLite, you must 104 * specify a database file name in a directory that is writable by the 105 * webserver. For most other drivers, you must specify a 106 * username, password, host, and database name. 107 * 108 * Drupal core implements drivers for mysql, pgsql, and sqlite. Other drivers 109 * can be provided by contributed or custom modules. To use a contributed or 110 * custom driver, the "namespace" property must be set to the namespace of the 111 * driver. The code in this namespace must be autoloadable prior to connecting 112 * to the database, and therefore, prior to when module root namespaces are 113 * added to the autoloader. To add the driver's namespace to the autoloader, 114 * set the "autoload" property to the PSR-4 base directory of the driver's 115 * namespace. This is optional for projects managed with Composer if the 116 * driver's namespace is in Composer's autoloader. 117 * 118 * For each database, you may optionally specify multiple "target" databases. 119 * A target database allows Drupal to try to send certain queries to a 120 * different database if it can but fall back to the default connection if not. 121 * That is useful for primary/replica replication, as Drupal may try to connect 122 * to a replica server when appropriate and if one is not available will simply 123 * fall back to the single primary server (The terms primary/replica are 124 * traditionally referred to as master/slave in database server documentation). 125 * 126 * The general format for the $databases array is as follows: 127 * @code 128 * $databases['default']['default'] = $info_array; 129 * $databases['default']['replica'][] = $info_array; 130 * $databases['default']['replica'][] = $info_array; 131 * $databases['extra']['default'] = $info_array; 132 * @endcode 133 * 134 * In the above example, $info_array is an array of settings described above. 135 * The first line sets a "default" database that has one primary database 136 * (the second level default). The second and third lines create an array 137 * of potential replica databases. Drupal will select one at random for a given 138 * request as needed. The fourth line creates a new database with a name of 139 * "extra". 140 * 141 * You can optionally set prefixes for some or all database table names 142 * by using the 'prefix' setting. If a prefix is specified, the table 143 * name will be prepended with its value. Be sure to use valid database 144 * characters only, usually alphanumeric and underscore. If no prefixes 145 * are desired, leave it as an empty string ''. 146 * 147 * To have all database names prefixed, set 'prefix' as a string: 148 * @code 149 * 'prefix' => 'main_', 150 * @endcode 151 * 152 * Per-table prefixes are deprecated as of Drupal 8.2, and will be removed in 153 * Drupal 9.0. After that, only a single prefix for all tables will be 154 * supported. 155 * 156 * To provide prefixes for specific tables, set 'prefix' as an array. 157 * The array's keys are the table names and the values are the prefixes. 158 * The 'default' element is mandatory and holds the prefix for any tables 159 * not specified elsewhere in the array. Example: 160 * @code 161 * 'prefix' => [ 162 * 'default' => 'main_', 163 * 'users' => 'shared_', 164 * 'sessions' => 'shared_', 165 * 'role' => 'shared_', 166 * 'authmap' => 'shared_', 167 * ], 168 * @endcode 169 * You can also use a reference to a schema/database as a prefix. This may be 170 * useful if your Drupal installation exists in a schema that is not the default 171 * or you want to access several databases from the same code base at the same 172 * time. 173 * Example: 174 * @code 175 * 'prefix' => [ 176 * 'default' => 'main.', 177 * 'users' => 'shared.', 178 * 'sessions' => 'shared.', 179 * 'role' => 'shared.', 180 * 'authmap' => 'shared.', 181 * ]; 182 * @endcode 183 * NOTE: MySQL and SQLite's definition of a schema is a database. 184 * 185 * Advanced users can add or override initial commands to execute when 186 * connecting to the database server, as well as PDO connection settings. For 187 * example, to enable MySQL SELECT queries to exceed the max_join_size system 188 * variable, and to reduce the database connection timeout to 5 seconds: 189 * @code 190 * $databases['default']['default'] = [ 191 * 'init_commands' => [ 192 * 'big_selects' => 'SET SQL_BIG_SELECTS=1', 193 * ], 194 * 'pdo' => [ 195 * PDO::ATTR_TIMEOUT => 5, 196 * ], 197 * ]; 198 * @endcode 199 * 200 * WARNING: The above defaults are designed for database portability. Changing 201 * them may cause unexpected behavior, including potential data loss. See 202 * https://www.drupal.org/developing/api/database/configuration for more 203 * information on these defaults and the potential issues. 204 * 205 * More details can be found in the constructor methods for each driver: 206 * - \Drupal\Core\Database\Driver\mysql\Connection::__construct() 207 * - \Drupal\Core\Database\Driver\pgsql\Connection::__construct() 208 * - \Drupal\Core\Database\Driver\sqlite\Connection::__construct() 209 * 210 * Sample Database configuration format for PostgreSQL (pgsql): 211 * @code 212 * $databases['default']['default'] = [ 213 * 'driver' => 'pgsql', 214 * 'database' => 'databasename', 215 * 'username' => 'sqlusername', 216 * 'password' => 'sqlpassword', 217 * 'host' => 'localhost', 218 * 'prefix' => '', 219 * ]; 220 * @endcode 221 * 222 * Sample Database configuration format for SQLite (sqlite): 223 * @code 224 * $databases['default']['default'] = [ 225 * 'driver' => 'sqlite', 226 * 'database' => '/path/to/databasefilename', 227 * ]; 228 * @endcode 229 * 230 * Sample Database configuration format for a driver in a contributed module: 231 * @code 232 * $databases['default']['default'] = [ 233 * 'driver' => 'my_driver', 234 * 'namespace' => 'Drupal\my_module\Driver\Database\my_driver', 235 * 'autoload' => 'modules/my_module/src/Driver/Database/my_driver/', 236 * 'database' => 'databasename', 237 * 'username' => 'sqlusername', 238 * 'password' => 'sqlpassword', 239 * 'host' => 'localhost', 240 * 'prefix' => '', 241 * ]; 242 * @endcode 243 */ 244 245/** 246 * Location of the site configuration files. 247 * 248 * The $settings['config_sync_directory'] specifies the location of file system 249 * directory used for syncing configuration data. On install, the directory is 250 * created. This is used for configuration imports. 251 * 252 * The default location for this directory is inside a randomly-named 253 * directory in the public files path. The setting below allows you to set 254 * its location. 255 */ 256# $settings['config_sync_directory'] = '/directory/outside/webroot'; 257 258/** 259 * Settings: 260 * 261 * $settings contains environment-specific configuration, such as the files 262 * directory and reverse proxy address, and temporary configuration, such as 263 * security overrides. 264 * 265 * @see \Drupal\Core\Site\Settings::get() 266 */ 267 268/** 269 * Salt for one-time login links, cancel links, form tokens, etc. 270 * 271 * This variable will be set to a random value by the installer. All one-time 272 * login links will be invalidated if the value is changed. Note that if your 273 * site is deployed on a cluster of web servers, you must ensure that this 274 * variable has the same value on each server. 275 * 276 * For enhanced security, you may set this variable to the contents of a file 277 * outside your document root; you should also ensure that this file is not 278 * stored with backups of your database. 279 * 280 * Example: 281 * @code 282 * $settings['hash_salt'] = file_get_contents('/home/example/salt.txt'); 283 * @endcode 284 */ 285$settings['hash_salt'] = ''; 286 287/** 288 * Deployment identifier. 289 * 290 * Drupal's dependency injection container will be automatically invalidated and 291 * rebuilt when the Drupal core version changes. When updating contributed or 292 * custom code that changes the container, changing this identifier will also 293 * allow the container to be invalidated as soon as code is deployed. 294 */ 295# $settings['deployment_identifier'] = \Drupal::VERSION; 296 297/** 298 * Access control for update.php script. 299 * 300 * If you are updating your Drupal installation using the update.php script but 301 * are not logged in using either an account with the "Administer software 302 * updates" permission or the site maintenance account (the account that was 303 * created during installation), you will need to modify the access check 304 * statement below. Change the FALSE to a TRUE to disable the access check. 305 * After finishing the upgrade, be sure to open this file again and change the 306 * TRUE back to a FALSE! 307 */ 308$settings['update_free_access'] = FALSE; 309 310/** 311 * Fallback to HTTP for Update Manager and for fetching security advisories. 312 * 313 * If your site fails to connect to updates.drupal.org over HTTPS (either when 314 * fetching data on available updates, or when fetching the feed of critical 315 * security announcements), you may uncomment this setting and set it to TRUE to 316 * allow an insecure fallback to HTTP. Note that doing so will open your site up 317 * to a potential man-in-the-middle attack. You should instead attempt to 318 * resolve the issues before enabling this option. 319 * @see https://www.drupal.org/docs/system-requirements/php-requirements#openssl 320 * @see https://en.wikipedia.org/wiki/Man-in-the-middle_attack 321 * @see \Drupal\update\UpdateFetcher 322 * @see \Drupal\system\SecurityAdvisories\SecurityAdvisoriesFetcher 323 */ 324# $settings['update_fetch_with_http_fallback'] = TRUE; 325 326/** 327 * External access proxy settings: 328 * 329 * If your site must access the Internet via a web proxy then you can enter the 330 * proxy settings here. Set the full URL of the proxy, including the port, in 331 * variables: 332 * - $settings['http_client_config']['proxy']['http']: The proxy URL for HTTP 333 * requests. 334 * - $settings['http_client_config']['proxy']['https']: The proxy URL for HTTPS 335 * requests. 336 * You can pass in the user name and password for basic authentication in the 337 * URLs in these settings. 338 * 339 * You can also define an array of host names that can be accessed directly, 340 * bypassing the proxy, in $settings['http_client_config']['proxy']['no']. 341 */ 342# $settings['http_client_config']['proxy']['http'] = 'http://proxy_user:proxy_pass@example.com:8080'; 343# $settings['http_client_config']['proxy']['https'] = 'http://proxy_user:proxy_pass@example.com:8080'; 344# $settings['http_client_config']['proxy']['no'] = ['127.0.0.1', 'localhost']; 345 346/** 347 * Reverse Proxy Configuration: 348 * 349 * Reverse proxy servers are often used to enhance the performance 350 * of heavily visited sites and may also provide other site caching, 351 * security, or encryption benefits. In an environment where Drupal 352 * is behind a reverse proxy, the real IP address of the client should 353 * be determined such that the correct client IP address is available 354 * to Drupal's logging, statistics, and access management systems. In 355 * the most simple scenario, the proxy server will add an 356 * X-Forwarded-For header to the request that contains the client IP 357 * address. However, HTTP headers are vulnerable to spoofing, where a 358 * malicious client could bypass restrictions by setting the 359 * X-Forwarded-For header directly. Therefore, Drupal's proxy 360 * configuration requires the IP addresses of all remote proxies to be 361 * specified in $settings['reverse_proxy_addresses'] to work correctly. 362 * 363 * Enable this setting to get Drupal to determine the client IP from the 364 * X-Forwarded-For header. If you are unsure about this setting, do not have a 365 * reverse proxy, or Drupal operates in a shared hosting environment, this 366 * setting should remain commented out. 367 * 368 * In order for this setting to be used you must specify every possible 369 * reverse proxy IP address in $settings['reverse_proxy_addresses']. 370 * If a complete list of reverse proxies is not available in your 371 * environment (for example, if you use a CDN) you may set the 372 * $_SERVER['REMOTE_ADDR'] variable directly in settings.php. 373 * Be aware, however, that it is likely that this would allow IP 374 * address spoofing unless more advanced precautions are taken. 375 */ 376# $settings['reverse_proxy'] = TRUE; 377 378/** 379 * Specify every reverse proxy IP address in your environment. 380 * This setting is required if $settings['reverse_proxy'] is TRUE. 381 */ 382# $settings['reverse_proxy_addresses'] = ['a.b.c.d', ...]; 383 384/** 385 * Reverse proxy trusted headers. 386 * 387 * Sets which headers to trust from your reverse proxy. 388 * 389 * Common values are: 390 * - \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_FOR 391 * - \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_HOST 392 * - \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PORT 393 * - \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PROTO 394 * - \Symfony\Component\HttpFoundation\Request::HEADER_FORWARDED 395 * 396 * Note the default value of 397 * @code 398 * \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_FOR | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_HOST | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PORT | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PROTO | \Symfony\Component\HttpFoundation\Request::HEADER_FORWARDED 399 * @endcode 400 * is not secure by default. The value should be set to only the specific 401 * headers the reverse proxy uses. For example: 402 * @code 403 * \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_FOR | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_HOST | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PORT | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PROTO 404 * @endcode 405 * This would trust the following headers: 406 * - X_FORWARDED_FOR 407 * - X_FORWARDED_HOST 408 * - X_FORWARDED_PROTO 409 * - X_FORWARDED_PORT 410 * 411 * @see \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_FOR 412 * @see \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_HOST 413 * @see \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PORT 414 * @see \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PROTO 415 * @see \Symfony\Component\HttpFoundation\Request::HEADER_FORWARDED 416 * @see \Symfony\Component\HttpFoundation\Request::setTrustedProxies 417 */ 418# $settings['reverse_proxy_trusted_headers'] = \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_FOR | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_HOST | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PORT | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PROTO | \Symfony\Component\HttpFoundation\Request::HEADER_FORWARDED; 419 420 421/** 422 * Page caching: 423 * 424 * By default, Drupal sends a "Vary: Cookie" HTTP header for anonymous page 425 * views. This tells a HTTP proxy that it may return a page from its local 426 * cache without contacting the web server, if the user sends the same Cookie 427 * header as the user who originally requested the cached page. Without "Vary: 428 * Cookie", authenticated users would also be served the anonymous page from 429 * the cache. If the site has mostly anonymous users except a few known 430 * editors/administrators, the Vary header can be omitted. This allows for 431 * better caching in HTTP proxies (including reverse proxies), i.e. even if 432 * clients send different cookies, they still get content served from the cache. 433 * However, authenticated users should access the site directly (i.e. not use an 434 * HTTP proxy, and bypass the reverse proxy if one is used) in order to avoid 435 * getting cached pages from the proxy. 436 */ 437# $settings['omit_vary_cookie'] = TRUE; 438 439 440/** 441 * Cache TTL for client error (4xx) responses. 442 * 443 * Items cached per-URL tend to result in a large number of cache items, and 444 * this can be problematic on 404 pages which by their nature are unbounded. A 445 * fixed TTL can be set for these items, defaulting to one hour, so that cache 446 * backends which do not support LRU can purge older entries. To disable caching 447 * of client error responses set the value to 0. Currently applies only to 448 * page_cache module. 449 */ 450# $settings['cache_ttl_4xx'] = 3600; 451 452/** 453 * Expiration of cached forms. 454 * 455 * Drupal's Form API stores details of forms in a cache and these entries are 456 * kept for at least 6 hours by default. Expired entries are cleared by cron. 457 * 458 * @see \Drupal\Core\Form\FormCache::setCache() 459 */ 460# $settings['form_cache_expiration'] = 21600; 461 462/** 463 * Class Loader. 464 * 465 * If the APCu extension is detected, the classloader will be optimized to use 466 * it. Set to FALSE to disable this. 467 * 468 * @see https://getcomposer.org/doc/articles/autoloader-optimization.md 469 */ 470# $settings['class_loader_auto_detect'] = FALSE; 471 472/** 473 * Authorized file system operations: 474 * 475 * The Update Manager module included with Drupal provides a mechanism for 476 * site administrators to securely install missing updates for the site 477 * directly through the web user interface. On securely-configured servers, 478 * the Update manager will require the administrator to provide SSH or FTP 479 * credentials before allowing the installation to proceed; this allows the 480 * site to update the new files as the user who owns all the Drupal files, 481 * instead of as the user the webserver is running as. On servers where the 482 * webserver user is itself the owner of the Drupal files, the administrator 483 * will not be prompted for SSH or FTP credentials (note that these server 484 * setups are common on shared hosting, but are inherently insecure). 485 * 486 * Some sites might wish to disable the above functionality, and only update 487 * the code directly via SSH or FTP themselves. This setting completely 488 * disables all functionality related to these authorized file operations. 489 * 490 * @see https://www.drupal.org/node/244924 491 * 492 * Remove the leading hash signs to disable. 493 */ 494# $settings['allow_authorize_operations'] = FALSE; 495 496/** 497 * Default mode for directories and files written by Drupal. 498 * 499 * Value should be in PHP Octal Notation, with leading zero. 500 */ 501# $settings['file_chmod_directory'] = 0775; 502# $settings['file_chmod_file'] = 0664; 503 504/** 505 * Public file base URL: 506 * 507 * An alternative base URL to be used for serving public files. This must 508 * include any leading directory path. 509 * 510 * A different value from the domain used by Drupal to be used for accessing 511 * public files. This can be used for a simple CDN integration, or to improve 512 * security by serving user-uploaded files from a different domain or subdomain 513 * pointing to the same server. Do not include a trailing slash. 514 */ 515# $settings['file_public_base_url'] = 'http://downloads.example.com/files'; 516 517/** 518 * Public file path: 519 * 520 * A local file system path where public files will be stored. This directory 521 * must exist and be writable by Drupal. This directory must be relative to 522 * the Drupal installation directory and be accessible over the web. 523 */ 524# $settings['file_public_path'] = 'sites/default/files'; 525 526/** 527 * Private file path: 528 * 529 * A local file system path where private files will be stored. This directory 530 * must be absolute, outside of the Drupal installation directory and not 531 * accessible over the web. 532 * 533 * Note: Caches need to be cleared when this value is changed to make the 534 * private:// stream wrapper available to the system. 535 * 536 * See https://www.drupal.org/documentation/modules/file for more information 537 * about securing private files. 538 */ 539# $settings['file_private_path'] = ''; 540 541/** 542 * Temporary file path: 543 * 544 * A local file system path where temporary files will be stored. This directory 545 * must be absolute, outside of the Drupal installation directory and not 546 * accessible over the web. 547 * 548 * If this is not set, the default for the operating system will be used. 549 * 550 * @see \Drupal\Component\FileSystem\FileSystem::getOsTemporaryDirectory() 551 */ 552# $settings['file_temp_path'] = '/tmp'; 553 554/** 555 * Session write interval: 556 * 557 * Set the minimum interval between each session write to database. 558 * For performance reasons it defaults to 180. 559 */ 560# $settings['session_write_interval'] = 180; 561 562/** 563 * String overrides: 564 * 565 * To override specific strings on your site with or without enabling the Locale 566 * module, add an entry to this list. This functionality allows you to change 567 * a small number of your site's default English language interface strings. 568 * 569 * Remove the leading hash signs to enable. 570 * 571 * The "en" part of the variable name, is dynamic and can be any langcode of 572 * any added language. (eg locale_custom_strings_de for german). 573 */ 574# $settings['locale_custom_strings_en'][''] = [ 575# 'forum' => 'Discussion board', 576# '@count min' => '@count minutes', 577# ]; 578 579/** 580 * A custom theme for the offline page: 581 * 582 * This applies when the site is explicitly set to maintenance mode through the 583 * administration page or when the database is inactive due to an error. 584 * The template file should also be copied into the theme. It is located inside 585 * 'core/modules/system/templates/maintenance-page.html.twig'. 586 * 587 * Note: This setting does not apply to installation and update pages. 588 */ 589# $settings['maintenance_theme'] = 'bartik'; 590 591/** 592 * PHP settings: 593 * 594 * To see what PHP settings are possible, including whether they can be set at 595 * runtime (by using ini_set()), read the PHP documentation: 596 * http://php.net/manual/ini.list.php 597 * See \Drupal\Core\DrupalKernel::bootEnvironment() for required runtime 598 * settings and the .htaccess file for non-runtime settings. 599 * Settings defined there should not be duplicated here so as to avoid conflict 600 * issues. 601 */ 602 603/** 604 * If you encounter a situation where users post a large amount of text, and 605 * the result is stripped out upon viewing but can still be edited, Drupal's 606 * output filter may not have sufficient memory to process it. If you 607 * experience this issue, you may wish to uncomment the following two lines 608 * and increase the limits of these variables. For more information, see 609 * http://php.net/manual/pcre.configuration.php. 610 */ 611# ini_set('pcre.backtrack_limit', 200000); 612# ini_set('pcre.recursion_limit', 200000); 613 614/** 615 * Add Permissions-Policy header to disable Google FLoC. 616 * 617 * By default, Drupal sends the 'Permissions-Policy: interest-cohort=()' header 618 * to disable Google's Federated Learning of Cohorts feature, introduced in 619 * Chrome 89. 620 * 621 * See https://en.wikipedia.org/wiki/Federated_Learning_of_Cohorts for more 622 * information about FLoC. 623 * 624 * If you don't wish to disable FLoC in Chrome, you can set this value 625 * to FALSE. 626 */ 627# $settings['block_interest_cohort'] = TRUE; 628 629/** 630 * Configuration overrides. 631 * 632 * To globally override specific configuration values for this site, 633 * set them here. You usually don't need to use this feature. This is 634 * useful in a configuration file for a vhost or directory, rather than 635 * the default settings.php. 636 * 637 * Note that any values you provide in these variable overrides will not be 638 * viewable from the Drupal administration interface. The administration 639 * interface displays the values stored in configuration so that you can stage 640 * changes to other environments that don't have the overrides. 641 * 642 * There are particular configuration values that are risky to override. For 643 * example, overriding the list of installed modules in 'core.extension' is not 644 * supported as module install or uninstall has not occurred. Other examples 645 * include field storage configuration, because it has effects on database 646 * structure, and 'core.menu.static_menu_link_overrides' since this is cached in 647 * a way that is not config override aware. Also, note that changing 648 * configuration values in settings.php will not fire any of the configuration 649 * change events. 650 */ 651# $config['system.site']['name'] = 'My Drupal site'; 652# $config['user.settings']['anonymous'] = 'Visitor'; 653 654/** 655 * Fast 404 pages: 656 * 657 * Drupal can generate fully themed 404 pages. However, some of these responses 658 * are for images or other resource files that are not displayed to the user. 659 * This can waste bandwidth, and also generate server load. 660 * 661 * The options below return a simple, fast 404 page for URLs matching a 662 * specific pattern: 663 * - $config['system.performance']['fast_404']['exclude_paths']: A regular 664 * expression to match paths to exclude, such as images generated by image 665 * styles, or dynamically-resized images. The default pattern provided below 666 * also excludes the private file system. If you need to add more paths, you 667 * can add '|path' to the expression. 668 * - $config['system.performance']['fast_404']['paths']: A regular expression to 669 * match paths that should return a simple 404 page, rather than the fully 670 * themed 404 page. If you don't have any aliases ending in htm or html you 671 * can add '|s?html?' to the expression. 672 * - $config['system.performance']['fast_404']['html']: The html to return for 673 * simple 404 pages. 674 * 675 * Remove the leading hash signs if you would like to alter this functionality. 676 */ 677# $config['system.performance']['fast_404']['exclude_paths'] = '/\/(?:styles)|(?:system\/files)\//'; 678# $config['system.performance']['fast_404']['paths'] = '/\.(?:txt|png|gif|jpe?g|css|js|ico|swf|flv|cgi|bat|pl|dll|exe|asp)$/i'; 679# $config['system.performance']['fast_404']['html'] = '<!DOCTYPE html><html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL "@path" was not found on this server.</p></body></html>'; 680 681/** 682 * Load services definition file. 683 */ 684$settings['container_yamls'][] = $app_root . '/' . $site_path . '/services.yml'; 685 686/** 687 * Override the default service container class. 688 * 689 * This is useful for example to trace the service container for performance 690 * tracking purposes, for testing a service container with an error condition or 691 * to test a service container that throws an exception. 692 */ 693# $settings['container_base_class'] = '\Drupal\Core\DependencyInjection\Container'; 694 695/** 696 * Override the default yaml parser class. 697 * 698 * Provide a fully qualified class name here if you would like to provide an 699 * alternate implementation YAML parser. The class must implement the 700 * \Drupal\Component\Serialization\SerializationInterface interface. 701 */ 702# $settings['yaml_parser_class'] = NULL; 703 704/** 705 * Trusted host configuration. 706 * 707 * Drupal core can use the Symfony trusted host mechanism to prevent HTTP Host 708 * header spoofing. 709 * 710 * To enable the trusted host mechanism, you enable your allowable hosts 711 * in $settings['trusted_host_patterns']. This should be an array of regular 712 * expression patterns, without delimiters, representing the hosts you would 713 * like to allow. 714 * 715 * For example: 716 * @code 717 * $settings['trusted_host_patterns'] = [ 718 * '^www\.example\.com$', 719 * ]; 720 * @endcode 721 * will allow the site to only run from www.example.com. 722 * 723 * If you are running multisite, or if you are running your site from 724 * different domain names (eg, you don't redirect http://www.example.com to 725 * http://example.com), you should specify all of the host patterns that are 726 * allowed by your site. 727 * 728 * For example: 729 * @code 730 * $settings['trusted_host_patterns'] = [ 731 * '^example\.com$', 732 * '^.+\.example\.com$', 733 * '^example\.org$', 734 * '^.+\.example\.org$', 735 * ]; 736 * @endcode 737 * will allow the site to run off of all variants of example.com and 738 * example.org, with all subdomains included. 739 */ 740 741/** 742 * The default list of directories that will be ignored by Drupal's file API. 743 * 744 * By default ignore node_modules and bower_components folders to avoid issues 745 * with common frontend tools and recursive scanning of directories looking for 746 * extensions. 747 * 748 * @see \Drupal\Core\File\FileSystemInterface::scanDirectory() 749 * @see \Drupal\Core\Extension\ExtensionDiscovery::scanDirectory() 750 */ 751$settings['file_scan_ignore_directories'] = [ 752 'node_modules', 753 'bower_components', 754]; 755 756/** 757 * The default number of entities to update in a batch process. 758 * 759 * This is used by update and post-update functions that need to go through and 760 * change all the entities on a site, so it is useful to increase this number 761 * if your hosting configuration (i.e. RAM allocation, CPU speed) allows for a 762 * larger number of entities to be processed in a single batch run. 763 */ 764$settings['entity_update_batch_size'] = 50; 765 766/** 767 * Entity update backup. 768 * 769 * This is used to inform the entity storage handler that the backup tables as 770 * well as the original entity type and field storage definitions should be 771 * retained after a successful entity update process. 772 */ 773$settings['entity_update_backup'] = TRUE; 774 775/** 776 * Node migration type. 777 * 778 * This is used to force the migration system to use the classic node migrations 779 * instead of the default complete node migrations. The migration system will 780 * use the classic node migration only if there are existing migrate_map tables 781 * for the classic node migrations and they contain data. These tables may not 782 * exist if you are developing custom migrations and do not want to use the 783 * complete node migrations. Set this to TRUE to force the use of the classic 784 * node migrations. 785 */ 786$settings['migrate_node_migrate_type_classic'] = FALSE; 787 788/** 789 * Load local development override configuration, if available. 790 * 791 * Create a settings.local.php file to override variables on secondary (staging, 792 * development, etc.) installations of this site. 793 * 794 * Typical uses of settings.local.php include: 795 * - Disabling caching. 796 * - Disabling JavaScript/CSS compression. 797 * - Rerouting outgoing emails. 798 * 799 * Keep this code block at the end of this file to take full effect. 800 */ 801# 802# if (file_exists($app_root . '/' . $site_path . '/settings.local.php')) { 803# include $app_root . '/' . $site_path . '/settings.local.php'; 804# } 805