mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
* Fixed mysql connection to include additional options for SSL Cert and Key. This allows for TLS client communication. * Modified config options for mysql database to make SSL/TLS settings optional. SSL/TLS CA, CERT, and KEY are optional. If they are not provided the array_filter() will remove them. MYSQL_ATTR_SSL_VERIFY_SERVER_CERT is outside array_filter() because the function will remove the option if it is falsey; however there are times when that variable must be set to false. * fix style --------- Co-authored-by: Tony Murray <murraytony@gmail.com>
241 lines
8.6 KiB
PHP
241 lines
8.6 KiB
PHP
<?php
|
|
|
|
/*
|
|
| !!!! DO NOT EDIT THIS FILE !!!!
|
|
|
|
|
| You can change settings by setting them in the environment or .env
|
|
| If there is something you need to change, but is not available as an environment setting,
|
|
| request an environment variable to be created upstream or send a pull request.
|
|
*/
|
|
|
|
use Illuminate\Support\Str;
|
|
|
|
return [
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Default Database Connection Name
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Here you may specify which of the database connections below you wish
|
|
| to use as your default connection for all database work. Of course
|
|
| you may use many connections at once using the Database library.
|
|
|
|
|
*/
|
|
|
|
'default' => env('DB_CONNECTION', env('DBTEST') ? 'testing' : 'mysql'),
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Database Connections
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Here are each of the database connections setup for your application.
|
|
| Of course, examples of configuring each database platform that is
|
|
| supported by Laravel is shown below to make development simple.
|
|
|
|
|
|
|
|
| All database work in Laravel is done through the PHP PDO facilities
|
|
| so make sure you have the driver for your particular database of
|
|
| choice installed on your machine before you begin development.
|
|
|
|
|
*/
|
|
|
|
'connections' => [
|
|
|
|
'sqlite' => [
|
|
'driver' => 'sqlite',
|
|
'url' => env('DATABASE_URL'),
|
|
'database' => env('DB_DATABASE', database_path('librenms.sqlite')),
|
|
'prefix' => '',
|
|
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
|
|
],
|
|
|
|
'mysql' => [
|
|
'driver' => 'mysql',
|
|
'url' => env('DATABASE_URL'),
|
|
'host' => env('DB_HOST', 'localhost'),
|
|
'port' => env('DB_PORT', '3306'),
|
|
'database' => env('DB_DATABASE', 'librenms'),
|
|
'username' => env('DB_USERNAME', 'librenms'),
|
|
'password' => env('DB_PASSWORD', ''),
|
|
'unix_socket' => env('DB_SOCKET', ''),
|
|
'charset' => 'utf8mb4',
|
|
'collation' => 'utf8mb4_unicode_ci',
|
|
'prefix' => '',
|
|
'prefix_indexes' => true,
|
|
'strict' => true,
|
|
'engine' => null,
|
|
'sslmode' => env('DB_SSLMODE', 'disabled'),
|
|
'options' => extension_loaded('pdo_mysql') ? [
|
|
PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => env('MYSQL_ATTR_SSL_VERIFY_SERVER_CERT', false),
|
|
] + array_filter([
|
|
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
|
|
PDO::MYSQL_ATTR_SSL_CERT => env('MYSQL_ATTR_SSL_CERT'),
|
|
PDO::MYSQL_ATTR_SSL_KEY => env('MYSQL_ATTR_SSL_KEY'),
|
|
]) : [],
|
|
],
|
|
|
|
'mysql_cluster' => [
|
|
'read' => [
|
|
'host' => [
|
|
env('DB_HOST', 'localhost'),
|
|
env('DB_HOST_R2', ''),
|
|
env('DB_HOST_R3', ''),
|
|
env('DB_HOST_R4', ''),
|
|
env('DB_HOST_R5', ''),
|
|
env('DB_HOST_R6', ''),
|
|
env('DB_HOST_R7', ''),
|
|
env('DB_HOST_R8', ''),
|
|
env('DB_HOST_R9', ''),
|
|
],
|
|
],
|
|
'write' => [
|
|
'host' => [
|
|
env('DB_HOST', 'localhost'),
|
|
env('DB_HOST_W2', ''),
|
|
env('DB_HOST_W3', ''),
|
|
env('DB_HOST_W4', ''),
|
|
env('DB_HOST_W5', ''),
|
|
env('DB_HOST_W6', ''),
|
|
env('DB_HOST_W7', ''),
|
|
env('DB_HOST_W8', ''),
|
|
env('DB_HOST_W9', ''),
|
|
],
|
|
],
|
|
'sticky' => env('DB_STICKY', null),
|
|
'driver' => 'mysql',
|
|
'host' => env('DB_HOST', 'localhost'),
|
|
'port' => env('DB_PORT', '3306'),
|
|
'database' => env('DB_DATABASE', 'librenms'),
|
|
'username' => env('DB_USERNAME', 'librenms'),
|
|
'password' => env('DB_PASSWORD', ''),
|
|
'unix_socket' => env('DB_SOCKET', ''),
|
|
'charset' => 'utf8mb4',
|
|
'collation' => 'utf8mb4_unicode_ci',
|
|
'prefix' => '',
|
|
'prefix_indexes' => true,
|
|
'strict' => true,
|
|
'engine' => null,
|
|
'options' => extension_loaded('pdo_mysql') ? array_filter([
|
|
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
|
|
]) : [],
|
|
],
|
|
|
|
'testing' => [
|
|
'driver' => env('DB_TEST_DRIVER', 'mysql'),
|
|
'host' => env('DB_TEST_HOST', 'localhost'),
|
|
'port' => env('DB_TEST_PORT', '3306'),
|
|
'database' => env('DB_TEST_DATABASE', 'librenms_phpunit_78hunjuybybh'),
|
|
'username' => env('DB_TEST_USERNAME', 'root'),
|
|
'password' => env('DB_TEST_PASSWORD', ''),
|
|
'unix_socket' => env('DB_TEST_SOCKET', ''),
|
|
'charset' => 'utf8mb4',
|
|
'collation' => 'utf8mb4_unicode_ci',
|
|
'prefix' => '',
|
|
'strict' => true,
|
|
'engine' => null,
|
|
],
|
|
|
|
'pgsql' => [
|
|
'driver' => 'pgsql',
|
|
'url' => env('DATABASE_URL'),
|
|
'host' => env('DB_HOST', '127.0.0.1'),
|
|
'port' => env('DB_PORT', '5432'),
|
|
'database' => env('DB_DATABASE', 'forge'),
|
|
'username' => env('DB_USERNAME', 'forge'),
|
|
'password' => env('DB_PASSWORD', ''),
|
|
'charset' => 'utf8',
|
|
'prefix' => '',
|
|
'prefix_indexes' => true,
|
|
'search_path' => 'public',
|
|
'sslmode' => 'prefer',
|
|
],
|
|
|
|
'sqlsrv' => [
|
|
'driver' => 'sqlsrv',
|
|
'url' => env('DATABASE_URL'),
|
|
'host' => env('DB_HOST', 'localhost'),
|
|
'port' => env('DB_PORT', '1433'),
|
|
'database' => env('DB_DATABASE', 'forge'),
|
|
'username' => env('DB_USERNAME', 'forge'),
|
|
'password' => env('DB_PASSWORD', ''),
|
|
'charset' => 'utf8',
|
|
'prefix' => '',
|
|
'prefix_indexes' => true,
|
|
// 'encrypt' => env('DB_ENCRYPT', 'yes'),
|
|
// 'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'false'),
|
|
],
|
|
|
|
'testing_memory' => [
|
|
'driver' => 'sqlite',
|
|
'database' => ':memory:',
|
|
'prefix' => '',
|
|
'foreign_key_constraints' => true,
|
|
],
|
|
|
|
'testing_persistent' => [
|
|
'driver' => 'sqlite',
|
|
'database' => database_path('testing.sqlite'),
|
|
'prefix' => '',
|
|
'foreign_key_constraints' => true,
|
|
],
|
|
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Migration Repository Table
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| This table keeps track of all the migrations that have already run for
|
|
| your application. Using this information, we can determine which of
|
|
| the migrations on disk haven't actually been run in the database.
|
|
|
|
|
*/
|
|
|
|
'migrations' => 'migrations',
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Redis Databases
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Redis is an open source, fast, and advanced key-value store that also
|
|
| provides a richer body of commands than a typical key-value system
|
|
| such as APC or Memcached. Laravel makes it easy to dig right in.
|
|
|
|
|
*/
|
|
|
|
'redis' => [
|
|
|
|
'client' => env('REDIS_CLIENT', 'predis'),
|
|
|
|
'options' => [
|
|
'cluster' => env('REDIS_CLUSTER', 'redis'),
|
|
'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_') . '_database_'),
|
|
],
|
|
|
|
'default' => [
|
|
'scheme' => env('REDIS_SCHEME', 'tcp'),
|
|
|
|
'url' => env('REDIS_URL'),
|
|
'host' => env('REDIS_HOST', '127.0.0.1'),
|
|
'username' => env('REDIS_USERNAME'),
|
|
'password' => env('REDIS_PASSWORD'),
|
|
'port' => env('REDIS_PORT', '6379'),
|
|
'database' => env('REDIS_DB', '0'),
|
|
],
|
|
|
|
'cache' => [
|
|
'url' => env('REDIS_URL'),
|
|
'host' => env('REDIS_HOST', '127.0.0.1'),
|
|
'username' => env('REDIS_USERNAME'),
|
|
'password' => env('REDIS_PASSWORD'),
|
|
'port' => env('REDIS_PORT', '6379'),
|
|
'database' => env('REDIS_CACHE_DB', '1'),
|
|
],
|
|
|
|
],
|
|
|
|
];
|