github.com/drud/ddev@v1.21.5-alpha1.0.20230226034409-94fcc4b94453/pkg/ddevapp/drupal/drupal7/settings.php (about)

     1  <?php
     2  
     3  /**
     4   * @file
     5   * Drupal site-specific configuration file.
     6   *
     7   * IMPORTANT NOTE:
     8   * This file may have been set to read-only by the Drupal installation program.
     9   * If you make changes to this file, be sure to protect it again after making
    10   * your modifications. Failure to remove write permissions to this file is a
    11   * security risk.
    12   *
    13   * The configuration file to be loaded is based upon the rules below. However
    14   * if the multisite aliasing file named sites/sites.php is present, it will be
    15   * loaded, and the aliases in the array $sites will override the default
    16   * directory rules below. See sites/example.sites.php for more information about
    17   * aliases.
    18   *
    19   * The configuration directory will be discovered by stripping the website's
    20   * hostname from left to right and pathname from right to left. The first
    21   * configuration file found will be used and any others will be ignored. If no
    22   * other configuration file is found then the default configuration file at
    23   * 'sites/default' will be used.
    24   *
    25   * For example, for a fictitious site installed at
    26   * http://www.drupal.org:8080/mysite/test/, the 'settings.php' file is searched
    27   * for in the following directories:
    28   *
    29   * - sites/8080.www.drupal.org.mysite.test
    30   * - sites/www.drupal.org.mysite.test
    31   * - sites/drupal.org.mysite.test
    32   * - sites/org.mysite.test
    33   *
    34   * - sites/8080.www.drupal.org.mysite
    35   * - sites/www.drupal.org.mysite
    36   * - sites/drupal.org.mysite
    37   * - sites/org.mysite
    38   *
    39   * - sites/8080.www.drupal.org
    40   * - sites/www.drupal.org
    41   * - sites/drupal.org
    42   * - sites/org
    43   *
    44   * - sites/default
    45   *
    46   * Note that if you are installing on a non-standard port number, prefix the
    47   * hostname with that number. For example,
    48   * http://www.drupal.org:8080/mysite/test/ could be loaded from
    49   * sites/8080.www.drupal.org.mysite.test/.
    50   *
    51   * @see example.sites.php
    52   * @see conf_path()
    53   */
    54  
    55  /**
    56   * Database settings:
    57   *
    58   * The $databases array specifies the database connection or
    59   * connections that Drupal may use.  Drupal is able to connect
    60   * to multiple databases, including multiple types of databases,
    61   * during the same request.
    62   *
    63   * Each database connection is specified as an array of settings,
    64   * similar to the following:
    65   * @code
    66   * array(
    67   *   'driver' => 'mysql',
    68   *   'database' => 'databasename',
    69   *   'username' => 'username',
    70   *   'password' => 'password',
    71   *   'host' => 'localhost',
    72   *   'port' => 3306,
    73   *   'prefix' => 'myprefix_',
    74   *   'collation' => 'utf8_general_ci',
    75   * );
    76   * @endcode
    77   *
    78   * The "driver" property indicates what Drupal database driver the
    79   * connection should use.  This is usually the same as the name of the
    80   * database type, such as mysql or sqlite, but not always.  The other
    81   * properties will vary depending on the driver.  For SQLite, you must
    82   * specify a database file name in a directory that is writable by the
    83   * webserver.  For most other drivers, you must specify a
    84   * username, password, host, and database name.
    85   *
    86   * Transaction support is enabled by default for all drivers that support it,
    87   * including MySQL. To explicitly disable it, set the 'transactions' key to
    88   * FALSE.
    89   * Note that some configurations of MySQL, such as the MyISAM engine, don't
    90   * support it and will proceed silently even if enabled. If you experience
    91   * transaction related crashes with such configuration, set the 'transactions'
    92   * key to FALSE.
    93   *
    94   * For each database, you may optionally specify multiple "target" databases.
    95   * A target database allows Drupal to try to send certain queries to a
    96   * different database if it can but fall back to the default connection if not.
    97   * That is useful for master/slave replication, as Drupal may try to connect
    98   * to a slave server when appropriate and if one is not available will simply
    99   * fall back to the single master server.
   100   *
   101   * The general format for the $databases array is as follows:
   102   * @code
   103   * $databases['default']['default'] = $info_array;
   104   * $databases['default']['slave'][] = $info_array;
   105   * $databases['default']['slave'][] = $info_array;
   106   * $databases['extra']['default'] = $info_array;
   107   * @endcode
   108   *
   109   * In the above example, $info_array is an array of settings described above.
   110   * The first line sets a "default" database that has one master database
   111   * (the second level default).  The second and third lines create an array
   112   * of potential slave databases.  Drupal will select one at random for a given
   113   * request as needed.  The fourth line creates a new database with a name of
   114   * "extra".
   115   *
   116   * For a single database configuration, the following is sufficient:
   117   * @code
   118   * $databases['default']['default'] = array(
   119   *   'driver' => 'mysql',
   120   *   'database' => 'databasename',
   121   *   'username' => 'username',
   122   *   'password' => 'password',
   123   *   'host' => 'localhost',
   124   *   'prefix' => 'main_',
   125   *   'collation' => 'utf8_general_ci',
   126   * );
   127   * @endcode
   128   *
   129   * For handling full UTF-8 in MySQL, including multi-byte characters such as
   130   * emojis, Asian symbols, and mathematical symbols, you may set the collation
   131   * and charset to "utf8mb4" prior to running install.php:
   132   * @code
   133   * $databases['default']['default'] = array(
   134   *   'driver' => 'mysql',
   135   *   'database' => 'databasename',
   136   *   'username' => 'username',
   137   *   'password' => 'password',
   138   *   'host' => 'localhost',
   139   *   'charset' => 'utf8mb4',
   140   *   'collation' => 'utf8mb4_general_ci',
   141   * );
   142   * @endcode
   143   * When using this setting on an existing installation, ensure that all existing
   144   * tables have been converted to the utf8mb4 charset, for example by using the
   145   * utf8mb4_convert contributed project available at
   146   * https://www.drupal.org/project/utf8mb4_convert, so as to prevent mixing data
   147   * with different charsets.
   148   * Note this should only be used when all of the following conditions are met:
   149   * - In order to allow for large indexes, MySQL must be set up with the
   150   *   following my.cnf settings:
   151   *     [mysqld]
   152   *     innodb_large_prefix=true
   153   *     innodb_file_format=barracuda
   154   *     innodb_file_per_table=true
   155   *   These settings are available as of MySQL 5.5.14, and are defaults in
   156   *   MySQL 5.7.7 and up.
   157   * - The PHP MySQL driver must support the utf8mb4 charset (libmysqlclient
   158   *   5.5.3 and up, as well as mysqlnd 5.0.9 and up).
   159   * - The MySQL server must support the utf8mb4 charset (5.5.3 and up).
   160   *
   161   * You can optionally set prefixes for some or all database table names
   162   * by using the 'prefix' setting. If a prefix is specified, the table
   163   * name will be prepended with its value. Be sure to use valid database
   164   * characters only, usually alphanumeric and underscore. If no prefixes
   165   * are desired, leave it as an empty string ''.
   166   *
   167   * To have all database names prefixed, set 'prefix' as a string:
   168   * @code
   169   *   'prefix' => 'main_',
   170   * @endcode
   171   * To provide prefixes for specific tables, set 'prefix' as an array.
   172   * The array's keys are the table names and the values are the prefixes.
   173   * The 'default' element is mandatory and holds the prefix for any tables
   174   * not specified elsewhere in the array. Example:
   175   * @code
   176   *   'prefix' => array(
   177   *     'default'   => 'main_',
   178   *     'users'     => 'shared_',
   179   *     'sessions'  => 'shared_',
   180   *     'role'      => 'shared_',
   181   *     'authmap'   => 'shared_',
   182   *   ),
   183   * @endcode
   184   * You can also use a reference to a schema/database as a prefix. This may be
   185   * useful if your Drupal installation exists in a schema that is not the default
   186   * or you want to access several databases from the same code base at the same
   187   * time.
   188   * Example:
   189   * @code
   190   *   'prefix' => array(
   191   *     'default'   => 'main.',
   192   *     'users'     => 'shared.',
   193   *     'sessions'  => 'shared.',
   194   *     'role'      => 'shared.',
   195   *     'authmap'   => 'shared.',
   196   *   );
   197   * @endcode
   198   * NOTE: MySQL and SQLite's definition of a schema is a database.
   199   *
   200   * Advanced users can add or override initial commands to execute when
   201   * connecting to the database server, as well as PDO connection settings. For
   202   * example, to enable MySQL SELECT queries to exceed the max_join_size system
   203   * variable, and to reduce the database connection timeout to 5 seconds:
   204   *
   205   * @code
   206   * $databases['default']['default'] = array(
   207   *   'init_commands' => array(
   208   *     'big_selects' => 'SET SQL_BIG_SELECTS=1',
   209   *   ),
   210   *   'pdo' => array(
   211   *     PDO::ATTR_TIMEOUT => 5,
   212   *   ),
   213   * );
   214   * @endcode
   215   *
   216   * WARNING: These defaults are designed for database portability. Changing them
   217   * may cause unexpected behavior, including potential data loss.
   218   *
   219   * @see DatabaseConnection_mysql::__construct
   220   * @see DatabaseConnection_pgsql::__construct
   221   * @see DatabaseConnection_sqlite::__construct
   222   *
   223   * Database configuration format:
   224   * @code
   225   *   $databases['default']['default'] = array(
   226   *     'driver' => 'mysql',
   227   *     'database' => 'databasename',
   228   *     'username' => 'username',
   229   *     'password' => 'password',
   230   *     'host' => 'localhost',
   231   *     'prefix' => '',
   232   *   );
   233   *   $databases['default']['default'] = array(
   234   *     'driver' => 'pgsql',
   235   *     'database' => 'databasename',
   236   *     'username' => 'username',
   237   *     'password' => 'password',
   238   *     'host' => 'localhost',
   239   *     'prefix' => '',
   240   *   );
   241   *   $databases['default']['default'] = array(
   242   *     'driver' => 'sqlite',
   243   *     'database' => '/path/to/databasefilename',
   244   *   );
   245   * @endcode
   246   */
   247  $databases = array();
   248  
   249  /**
   250   * Access control for update.php script.
   251   *
   252   * If you are updating your Drupal installation using the update.php script but
   253   * are not logged in using either an account with the "Administer software
   254   * updates" permission or the site maintenance account (the account that was
   255   * created during installation), you will need to modify the access check
   256   * statement below. Change the FALSE to a TRUE to disable the access check.
   257   * After finishing the upgrade, be sure to open this file again and change the
   258   * TRUE back to a FALSE!
   259   */
   260  $update_free_access = FALSE;
   261  
   262  /**
   263   * Salt for one-time login links and cancel links, form tokens, etc.
   264   *
   265   * This variable will be set to a random value by the installer. All one-time
   266   * login links will be invalidated if the value is changed. Note that if your
   267   * site is deployed on a cluster of web servers, you must ensure that this
   268   * variable has the same value on each server. If this variable is empty, a hash
   269   * of the serialized database credentials will be used as a fallback salt.
   270   *
   271   * For enhanced security, you may set this variable to a value using the
   272   * contents of a file outside your docroot that is never saved together
   273   * with any backups of your Drupal files and database.
   274   *
   275   * Example:
   276   *   $drupal_hash_salt = file_get_contents('/home/example/salt.txt');
   277   *
   278   */
   279  $drupal_hash_salt = '';
   280  
   281  /**
   282   * Base URL (optional).
   283   *
   284   * If Drupal is generating incorrect URLs on your site, which could
   285   * be in HTML headers (links to CSS and JS files) or visible links on pages
   286   * (such as in menus), uncomment the Base URL statement below (remove the
   287   * leading hash sign) and fill in the absolute URL to your Drupal installation.
   288   *
   289   * You might also want to force users to use a given domain.
   290   * See the .htaccess file for more information.
   291   *
   292   * Examples:
   293   *   $base_url = 'http://www.example.com';
   294   *   $base_url = 'http://www.example.com:8888';
   295   *   $base_url = 'http://www.example.com/drupal';
   296   *   $base_url = 'https://www.example.com:8888/drupal';
   297   *
   298   * It is not allowed to have a trailing slash; Drupal will add it
   299   * for you.
   300   */
   301  # $base_url = 'http://www.example.com';  // NO trailing slash!
   302  
   303  /**
   304   * PHP settings:
   305   *
   306   * To see what PHP settings are possible, including whether they can be set at
   307   * runtime (by using ini_set()), read the PHP documentation:
   308   * http://www.php.net/manual/ini.list.php
   309   * See drupal_environment_initialize() in includes/bootstrap.inc for required
   310   * runtime settings and the .htaccess file for non-runtime settings. Settings
   311   * defined there should not be duplicated here so as to avoid conflict issues.
   312   */
   313  
   314  /**
   315   * Some distributions of Linux (most notably Debian) ship their PHP
   316   * installations with garbage collection (gc) disabled. Since Drupal depends on
   317   * PHP's garbage collection for clearing sessions, ensure that garbage
   318   * collection occurs by using the most common settings.
   319   */
   320  ini_set('session.gc_probability', 1);
   321  ini_set('session.gc_divisor', 100);
   322  
   323  /**
   324   * Set session lifetime (in seconds), i.e. the time from the user's last visit
   325   * to the active session may be deleted by the session garbage collector. When
   326   * a session is deleted, authenticated users are logged out, and the contents
   327   * of the user's $_SESSION variable is discarded.
   328   */
   329  ini_set('session.gc_maxlifetime', 200000);
   330  
   331  /**
   332   * Set session cookie lifetime (in seconds), i.e. the time from the session is
   333   * created to the cookie expires, i.e. when the browser is expected to discard
   334   * the cookie. The value 0 means "until the browser is closed".
   335   */
   336  ini_set('session.cookie_lifetime', 2000000);
   337  
   338  /**
   339   * If you encounter a situation where users post a large amount of text, and
   340   * the result is stripped out upon viewing but can still be edited, Drupal's
   341   * output filter may not have sufficient memory to process it.  If you
   342   * experience this issue, you may wish to uncomment the following two lines
   343   * and increase the limits of these variables.  For more information, see
   344   * http://php.net/manual/pcre.configuration.php.
   345   */
   346  # ini_set('pcre.backtrack_limit', 200000);
   347  # ini_set('pcre.recursion_limit', 200000);
   348  
   349  /**
   350   * Drupal automatically generates a unique session cookie name for each site
   351   * based on its full domain name. If you have multiple domains pointing at the
   352   * same Drupal site, you can either redirect them all to a single domain (see
   353   * comment in .htaccess), or uncomment the line below and specify their shared
   354   * base domain. Doing so assures that users remain logged in as they cross
   355   * between your various domains. Make sure to always start the $cookie_domain
   356   * with a leading dot, as per RFC 2109.
   357   */
   358  # $cookie_domain = '.example.com';
   359  
   360  /**
   361   * Variable overrides:
   362   *
   363   * To override specific entries in the 'variable' table for this site,
   364   * set them here. You usually don't need to use this feature. This is
   365   * useful in a configuration file for a vhost or directory, rather than
   366   * the default settings.php. Any configuration setting from the 'variable'
   367   * table can be given a new value. Note that any values you provide in
   368   * these variable overrides will not be modifiable from the Drupal
   369   * administration interface.
   370   *
   371   * The following overrides are examples:
   372   * - site_name: Defines the site's name.
   373   * - theme_default: Defines the default theme for this site.
   374   * - anonymous: Defines the human-readable name of anonymous users.
   375   * Remove the leading hash signs to enable.
   376   */
   377  # $conf['site_name'] = 'My Drupal site';
   378  # $conf['theme_default'] = 'garland';
   379  # $conf['anonymous'] = 'Visitor';
   380  
   381  /**
   382   * A custom theme can be set for the offline page. This applies when the site
   383   * is explicitly set to maintenance mode through the administration page or when
   384   * the database is inactive due to an error. It can be set through the
   385   * 'maintenance_theme' key. The template file should also be copied into the
   386   * theme. It is located inside 'modules/system/maintenance-page.tpl.php'.
   387   * Note: This setting does not apply to installation and update pages.
   388   */
   389  # $conf['maintenance_theme'] = 'bartik';
   390  
   391  /**
   392   * Reverse Proxy Configuration:
   393   *
   394   * Reverse proxy servers are often used to enhance the performance
   395   * of heavily visited sites and may also provide other site caching,
   396   * security, or encryption benefits. In an environment where Drupal
   397   * is behind a reverse proxy, the real IP address of the client should
   398   * be determined such that the correct client IP address is available
   399   * to Drupal's logging, statistics, and access management systems. In
   400   * the most simple scenario, the proxy server will add an
   401   * X-Forwarded-For header to the request that contains the client IP
   402   * address. However, HTTP headers are vulnerable to spoofing, where a
   403   * malicious client could bypass restrictions by setting the
   404   * X-Forwarded-For header directly. Therefore, Drupal's proxy
   405   * configuration requires the IP addresses of all remote proxies to be
   406   * specified in $conf['reverse_proxy_addresses'] to work correctly.
   407   *
   408   * Enable this setting to get Drupal to determine the client IP from
   409   * the X-Forwarded-For header (or $conf['reverse_proxy_header'] if set).
   410   * If you are unsure about this setting, do not have a reverse proxy,
   411   * or Drupal operates in a shared hosting environment, this setting
   412   * should remain commented out.
   413   *
   414   * In order for this setting to be used you must specify every possible
   415   * reverse proxy IP address in $conf['reverse_proxy_addresses'].
   416   * If a complete list of reverse proxies is not available in your
   417   * environment (for example, if you use a CDN) you may set the
   418   * $_SERVER['REMOTE_ADDR'] variable directly in settings.php.
   419   * Be aware, however, that it is likely that this would allow IP
   420   * address spoofing unless more advanced precautions are taken.
   421   */
   422  # $conf['reverse_proxy'] = TRUE;
   423  
   424  /**
   425   * Specify every reverse proxy IP address in your environment.
   426   * This setting is required if $conf['reverse_proxy'] is TRUE.
   427   */
   428  # $conf['reverse_proxy_addresses'] = array('a.b.c.d', ...);
   429  
   430  /**
   431   * Set this value if your proxy server sends the client IP in a header
   432   * other than X-Forwarded-For.
   433   */
   434  # $conf['reverse_proxy_header'] = 'HTTP_X_CLUSTER_CLIENT_IP';
   435  
   436  /**
   437   * Page caching:
   438   *
   439   * By default, Drupal sends a "Vary: Cookie" HTTP header for anonymous page
   440   * views. This tells a HTTP proxy that it may return a page from its local
   441   * cache without contacting the web server, if the user sends the same Cookie
   442   * header as the user who originally requested the cached page. Without "Vary:
   443   * Cookie", authenticated users would also be served the anonymous page from
   444   * the cache. If the site has mostly anonymous users except a few known
   445   * editors/administrators, the Vary header can be omitted. This allows for
   446   * better caching in HTTP proxies (including reverse proxies), i.e. even if
   447   * clients send different cookies, they still get content served from the cache.
   448   * However, authenticated users should access the site directly (i.e. not use an
   449   * HTTP proxy, and bypass the reverse proxy if one is used) in order to avoid
   450   * getting cached pages from the proxy.
   451   */
   452  # $conf['omit_vary_cookie'] = TRUE;
   453  
   454  /**
   455   * CSS/JS aggregated file gzip compression:
   456   *
   457   * By default, when CSS or JS aggregation and clean URLs are enabled Drupal will
   458   * store a gzip compressed (.gz) copy of the aggregated files. If this file is
   459   * available then rewrite rules in the default .htaccess file will serve these
   460   * files to browsers that accept gzip encoded content. This allows pages to load
   461   * faster for these users and has minimal impact on server load. If you are
   462   * using a webserver other than Apache httpd, or a caching reverse proxy that is
   463   * configured to cache and compress these files itself you may want to uncomment
   464   * one or both of the below lines, which will prevent gzip files being stored.
   465   */
   466  # $conf['css_gzip_compression'] = FALSE;
   467  # $conf['js_gzip_compression'] = FALSE;
   468  
   469  /**
   470   * Block caching:
   471   *
   472   * Block caching may not be compatible with node access modules depending on
   473   * how the original block cache policy is defined by the module that provides
   474   * the block. By default, Drupal therefore disables block caching when one or
   475   * more modules implement hook_node_grants(). If you consider block caching to
   476   * be safe on your site and want to bypass this restriction, uncomment the line
   477   * below.
   478   */
   479  # $conf['block_cache_bypass_node_grants'] = TRUE;
   480  
   481  /**
   482   * Expiration of cache_form entries:
   483   *
   484   * Drupal's Form API stores details of forms in cache_form and these entries are
   485   * kept for at least 6 hours by default. Expired entries are cleared by cron.
   486   * Busy sites can encounter problems with the cache_form table becoming very
   487   * large. It's possible to mitigate this by setting a shorter expiration for
   488   * cached forms. In some cases it may be desirable to set a longer cache
   489   * expiration, for example to prolong cache_form entries for Ajax forms in
   490   * cached HTML.
   491   *
   492   * @see form_set_cache()
   493   * @see system_cron()
   494   * @see ajax_get_form()
   495   */
   496  # $conf['form_cache_expiration'] = 21600;
   497  
   498  /**
   499   * String overrides:
   500   *
   501   * To override specific strings on your site with or without enabling the Locale
   502   * module, add an entry to this list. This functionality allows you to change
   503   * a small number of your site's default English language interface strings.
   504   *
   505   * Remove the leading hash signs to enable.
   506   */
   507  # $conf['locale_custom_strings_en'][''] = array(
   508  #   'forum'      => 'Discussion board',
   509  #   '@count min' => '@count minutes',
   510  # );
   511  
   512  /**
   513   *
   514   * IP blocking:
   515   *
   516   * To bypass database queries for denied IP addresses, use this setting.
   517   * Drupal queries the {blocked_ips} table by default on every page request
   518   * for both authenticated and anonymous users. This allows the system to
   519   * block IP addresses from within the administrative interface and before any
   520   * modules are loaded. However on high traffic websites you may want to avoid
   521   * this query, allowing you to bypass database access altogether for anonymous
   522   * users under certain caching configurations.
   523   *
   524   * If using this setting, you will need to add back any IP addresses which
   525   * you may have blocked via the administrative interface. Each element of this
   526   * array represents a blocked IP address. Uncommenting the array and leaving it
   527   * empty will have the effect of disabling IP blocking on your site.
   528   *
   529   * Remove the leading hash signs to enable.
   530   */
   531  # $conf['blocked_ips'] = array(
   532  #   'a.b.c.d',
   533  # );
   534  
   535  /**
   536   * Fast 404 pages:
   537   *
   538   * Drupal can generate fully themed 404 pages. However, some of these responses
   539   * are for images or other resource files that are not displayed to the user.
   540   * This can waste bandwidth, and also generate server load.
   541   *
   542   * The options below return a simple, fast 404 page for URLs matching a
   543   * specific pattern:
   544   * - 404_fast_paths_exclude: A regular expression to match paths to exclude,
   545   *   such as images generated by image styles, or dynamically-resized images.
   546   *   The default pattern provided below also excludes the private file system.
   547   *   If you need to add more paths, you can add '|path' to the expression.
   548   * - 404_fast_paths: A regular expression to match paths that should return a
   549   *   simple 404 page, rather than the fully themed 404 page. If you don't have
   550   *   any aliases ending in htm or html you can add '|s?html?' to the expression.
   551   * - 404_fast_html: The html to return for simple 404 pages.
   552   *
   553   * Add leading hash signs if you would like to disable this functionality.
   554   */
   555  $conf['404_fast_paths_exclude'] = '/\/(?:styles)|(?:system\/files)\//';
   556  $conf['404_fast_paths'] = '/\.(?:txt|png|gif|jpe?g|css|js|ico|swf|flv|cgi|bat|pl|dll|exe|asp)$/i';
   557  $conf['404_fast_html'] = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><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>';
   558  
   559  /**
   560   * By default the page request process will return a fast 404 page for missing
   561   * files if they match the regular expression set in '404_fast_paths' and not
   562   * '404_fast_paths_exclude' above. 404 errors will simultaneously be logged in
   563   * the Drupal system log.
   564   *
   565   * You can choose to return a fast 404 page earlier for missing pages (as soon
   566   * as settings.php is loaded) by uncommenting the line below. This speeds up
   567   * server response time when loading 404 error pages and prevents the 404 error
   568   * from being logged in the Drupal system log. In order to prevent valid pages
   569   * such as image styles and other generated content that may match the
   570   * '404_fast_paths' regular expression from returning 404 errors, it is
   571   * necessary to add them to the '404_fast_paths_exclude' regular expression
   572   * above. Make sure that you understand the effects of this feature before
   573   * uncommenting the line below.
   574   */
   575  # drupal_fast_404();
   576  
   577  /**
   578   * External access proxy settings:
   579   *
   580   * If your site must access the Internet via a web proxy then you can enter
   581   * the proxy settings here. Currently only basic authentication is supported
   582   * by using the username and password variables. The proxy_user_agent variable
   583   * can be set to NULL for proxies that require no User-Agent header or to a
   584   * non-empty string for proxies that limit requests to a specific agent. The
   585   * proxy_exceptions variable is an array of host names to be accessed directly,
   586   * not via proxy.
   587   */
   588  # $conf['proxy_server'] = '';
   589  # $conf['proxy_port'] = 8080;
   590  # $conf['proxy_username'] = '';
   591  # $conf['proxy_password'] = '';
   592  # $conf['proxy_user_agent'] = '';
   593  # $conf['proxy_exceptions'] = array('127.0.0.1', 'localhost');
   594  
   595  /**
   596   * Authorized file system operations:
   597   *
   598   * The Update manager module included with Drupal provides a mechanism for
   599   * site administrators to securely install missing updates for the site
   600   * directly through the web user interface. On securely-configured servers,
   601   * the Update manager will require the administrator to provide SSH or FTP
   602   * credentials before allowing the installation to proceed; this allows the
   603   * site to update the new files as the user who owns all the Drupal files,
   604   * instead of as the user the webserver is running as. On servers where the
   605   * webserver user is itself the owner of the Drupal files, the administrator
   606   * will not be prompted for SSH or FTP credentials (note that these server
   607   * setups are common on shared hosting, but are inherently insecure).
   608   *
   609   * Some sites might wish to disable the above functionality, and only update
   610   * the code directly via SSH or FTP themselves. This setting completely
   611   * disables all functionality related to these authorized file operations.
   612   *
   613   * @see http://drupal.org/node/244924
   614   *
   615   * Remove the leading hash signs to disable.
   616   */
   617  # $conf['allow_authorize_operations'] = FALSE;
   618  
   619  /**
   620   * Theme debugging:
   621   *
   622   * When debugging is enabled:
   623   * - The markup of each template is surrounded by HTML comments that contain
   624   *   theming information, such as template file name suggestions.
   625   * - Note that this debugging markup will cause automated tests that directly
   626   *   check rendered HTML to fail.
   627   *
   628   * For more information about debugging theme templates, see
   629   * https://www.drupal.org/node/223440#theme-debug.
   630   *
   631   * Not recommended in production environments.
   632   *
   633   * Remove the leading hash sign to enable.
   634   */
   635  # $conf['theme_debug'] = TRUE;
   636  
   637  /**
   638   * CSS identifier double underscores allowance:
   639   *
   640   * To allow CSS identifiers to contain double underscores (.example__selector)
   641   * for Drupal's BEM-style naming standards, uncomment the line below.
   642   * Note that if you change this value in existing sites, existing page styles
   643   * may be broken.
   644   *
   645   * @see drupal_clean_css_identifier()
   646   */
   647  # $conf['allow_css_double_underscores'] = TRUE;
   648  
   649  /**
   650   * The default list of directories that will be ignored by Drupal's file API.
   651   *
   652   * By default ignore node_modules and bower_components folders to avoid issues
   653   * with common frontend tools and recursive scanning of directories looking for
   654   * extensions.
   655   *
   656   * @see file_scan_directory()
   657   */
   658  $conf['file_scan_ignore_directories'] = array(
   659    'node_modules',
   660    'bower_components',
   661  );
   662  
   663  // Automatically generated include for settings managed by ddev.
   664  if (file_exists(__DIR__ . '/settings.ddev.php') && getenv('IS_DDEV_PROJECT') == 'true') {
   665    include __DIR__ . '/settings.ddev.php';
   666  }