| 
									
										
										
										
											2015-07-13 03:01:42 +08:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-24 00:26:39 +08:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Database configuration options. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Changes to these config files are not supported by BookStack and may break upon updates. | 
					
						
							|  |  |  |  * Configuration should be altered via the `.env` file or environment variables. | 
					
						
							|  |  |  |  * Do not edit this file unless you're happy to maintain any changes yourself. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-03-09 06:42:48 +08:00
										 |  |  | // REDIS
 | 
					
						
							|  |  |  | // Split out configuration into an array
 | 
					
						
							| 
									
										
										
										
											2016-04-03 18:00:14 +08:00
										 |  |  | if (env('REDIS_SERVERS', false)) { | 
					
						
							| 
									
										
										
										
											2019-03-09 06:42:48 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     $redisDefaults = ['host' => '127.0.0.1', 'port' => '6379', 'database' => '0', 'password' => null]; | 
					
						
							| 
									
										
										
										
											2016-04-03 18:00:14 +08:00
										 |  |  |     $redisServers = explode(',', trim(env('REDIS_SERVERS', '127.0.0.1:6379:0'), ',')); | 
					
						
							| 
									
										
										
										
											2019-03-09 06:42:48 +08:00
										 |  |  |     $redisConfig = []; | 
					
						
							|  |  |  |     $cluster = count($redisServers) > 1; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if ($cluster) { | 
					
						
							|  |  |  |         $redisConfig['clusters'] = ['default' => []]; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-03 18:00:14 +08:00
										 |  |  |     foreach ($redisServers as $index => $redisServer) { | 
					
						
							|  |  |  |         $redisServerDetails = explode(':', $redisServer); | 
					
						
							| 
									
										
										
										
											2019-03-09 06:42:48 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         $serverConfig = []; | 
					
						
							|  |  |  |         $configIndex = 0; | 
					
						
							|  |  |  |         foreach ($redisDefaults as $configKey => $configDefault) { | 
					
						
							|  |  |  |             $serverConfig[$configKey] = ($redisServerDetails[$configIndex] ?? $configDefault); | 
					
						
							|  |  |  |             $configIndex++; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if ($cluster) { | 
					
						
							|  |  |  |             $redisConfig['clusters']['default'][] = $serverConfig; | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             $redisConfig['default'] = $serverConfig; | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2016-04-03 18:00:14 +08:00
										 |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-03-09 06:42:48 +08:00
										 |  |  | // MYSQL
 | 
					
						
							|  |  |  | // Split out port from host if set
 | 
					
						
							| 
									
										
										
										
											2017-07-03 00:20:05 +08:00
										 |  |  | $mysql_host = env('DB_HOST', 'localhost'); | 
					
						
							|  |  |  | $mysql_host_exploded = explode(':', $mysql_host); | 
					
						
							|  |  |  | $mysql_port = env('DB_PORT', 3306); | 
					
						
							| 
									
										
										
										
											2017-07-03 00:34:32 +08:00
										 |  |  | if (count($mysql_host_exploded) > 1) { | 
					
						
							| 
									
										
										
										
											2017-07-03 00:20:05 +08:00
										 |  |  |     $mysql_host = $mysql_host_exploded[0]; | 
					
						
							|  |  |  |     $mysql_port = intval($mysql_host_exploded[1]); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-13 03:01:42 +08:00
										 |  |  | return [ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-24 00:26:39 +08:00
										 |  |  |     // Default database connection name.
 | 
					
						
							|  |  |  |     // Options: mysql, mysql_testing
 | 
					
						
							| 
									
										
										
										
											2015-07-13 03:01:42 +08:00
										 |  |  |     'default' => env('DB_CONNECTION', 'mysql'), | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-24 00:26:39 +08:00
										 |  |  |     // Available database connections
 | 
					
						
							|  |  |  |     // Many of those shown here are unsupported by BookStack.
 | 
					
						
							| 
									
										
										
										
											2015-07-13 03:01:42 +08:00
										 |  |  |     'connections' => [ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         'sqlite' => [ | 
					
						
							|  |  |  |             'driver'   => 'sqlite', | 
					
						
							|  |  |  |             'database' => storage_path('database.sqlite'), | 
					
						
							|  |  |  |             'prefix'   => '', | 
					
						
							|  |  |  |         ], | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         'mysql' => [ | 
					
						
							|  |  |  |             'driver'    => 'mysql', | 
					
						
							| 
									
										
										
										
											2017-07-03 00:20:05 +08:00
										 |  |  |             'host'      => $mysql_host, | 
					
						
							| 
									
										
										
										
											2015-07-13 03:01:42 +08:00
										 |  |  |             'database'  => env('DB_DATABASE', 'forge'), | 
					
						
							|  |  |  |             'username'  => env('DB_USERNAME', 'forge'), | 
					
						
							|  |  |  |             'password'  => env('DB_PASSWORD', ''), | 
					
						
							| 
									
										
										
										
											2018-12-24 00:26:39 +08:00
										 |  |  |             'unix_socket' => env('DB_SOCKET', ''), | 
					
						
							| 
									
										
										
										
											2017-07-03 00:20:05 +08:00
										 |  |  |             'port'      => $mysql_port, | 
					
						
							|  |  |  |             'charset'   => 'utf8mb4', | 
					
						
							|  |  |  |             'collation' => 'utf8mb4_unicode_ci', | 
					
						
							| 
									
										
										
										
											2015-07-13 03:01:42 +08:00
										 |  |  |             'prefix'    => '', | 
					
						
							|  |  |  |             'strict'    => false, | 
					
						
							| 
									
										
										
										
											2018-12-24 00:26:39 +08:00
										 |  |  |             'engine' => null, | 
					
						
							| 
									
										
										
										
											2015-07-13 03:01:42 +08:00
										 |  |  |         ], | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-03 01:26:33 +08:00
										 |  |  |         'mysql_testing' => [ | 
					
						
							|  |  |  |             'driver'    => 'mysql', | 
					
						
							| 
									
										
										
										
											2017-02-27 05:39:15 +08:00
										 |  |  |             'host'      => '127.0.0.1', | 
					
						
							| 
									
										
										
										
											2015-09-03 01:26:33 +08:00
										 |  |  |             'database'  => 'bookstack-test', | 
					
						
							| 
									
										
										
										
											2016-05-02 17:35:42 +08:00
										 |  |  |             'username'  => env('MYSQL_USER', 'bookstack-test'), | 
					
						
							|  |  |  |             'password'  => env('MYSQL_PASSWORD', 'bookstack-test'), | 
					
						
							| 
									
										
										
										
											2015-09-03 01:26:33 +08:00
										 |  |  |             'charset'   => 'utf8', | 
					
						
							|  |  |  |             'collation' => 'utf8_unicode_ci', | 
					
						
							|  |  |  |             'prefix'    => '', | 
					
						
							|  |  |  |             'strict'    => false, | 
					
						
							|  |  |  |         ], | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-13 03:01:42 +08:00
										 |  |  |         'pgsql' => [ | 
					
						
							|  |  |  |             'driver'   => 'pgsql', | 
					
						
							|  |  |  |             'host'     => env('DB_HOST', 'localhost'), | 
					
						
							|  |  |  |             'database' => env('DB_DATABASE', 'forge'), | 
					
						
							|  |  |  |             'username' => env('DB_USERNAME', 'forge'), | 
					
						
							|  |  |  |             'password' => env('DB_PASSWORD', ''), | 
					
						
							|  |  |  |             'charset'  => 'utf8', | 
					
						
							|  |  |  |             'prefix'   => '', | 
					
						
							|  |  |  |             'schema'   => 'public', | 
					
						
							|  |  |  |         ], | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         'sqlsrv' => [ | 
					
						
							|  |  |  |             'driver'   => 'sqlsrv', | 
					
						
							|  |  |  |             'host'     => env('DB_HOST', 'localhost'), | 
					
						
							|  |  |  |             'database' => env('DB_DATABASE', 'forge'), | 
					
						
							|  |  |  |             'username' => env('DB_USERNAME', 'forge'), | 
					
						
							|  |  |  |             'password' => env('DB_PASSWORD', ''), | 
					
						
							|  |  |  |             'charset'  => 'utf8', | 
					
						
							|  |  |  |             'prefix'   => '', | 
					
						
							|  |  |  |         ], | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     ], | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-24 00:26:39 +08:00
										 |  |  |     // 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.
 | 
					
						
							| 
									
										
										
										
											2015-07-13 03:01:42 +08:00
										 |  |  |     'migrations' => 'migrations', | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-24 00:26:39 +08:00
										 |  |  |     // Redis configuration to use if set
 | 
					
						
							| 
									
										
										
										
											2016-04-13 03:08:49 +08:00
										 |  |  |     'redis' => env('REDIS_SERVERS', false) ? $redisConfig : [], | 
					
						
							| 
									
										
										
										
											2015-07-13 03:01:42 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | ]; |