diff --git a/.devilbox/www/config.php b/.devilbox/www/config.php index 38117d87..b0d87848 100644 --- a/.devilbox/www/config.php +++ b/.devilbox/www/config.php @@ -127,15 +127,27 @@ function loadClass($class) { break; case 'Redis': - // Check if redis is using a password $REDIS_ROOT_PASSWORD = ''; $_REDIS_ARGS = loadClass('Helper')->getEnv('REDIS_ARGS'); - $_REDIS_PASS = preg_split("/--requirepass\s+/", $_REDIS_ARGS); - if (is_array($_REDIS_PASS) && count($_REDIS_PASS)) { - // In case the option is specified multiple times, use the last effective one. - $_REDIS_PASS = $_REDIS_PASS[count($_REDIS_PASS)-1]; + + /* + * This pattern will match optional quoted string, 'my password' or "my password" + * or if there aren't any quotes, it will match up until the next space. + */ + $_REDIS_PASS = []; + preg_match_all('/--requirepass\s+("|\')?(?(1)(.*)|([^\s]*))(?(1)\1|)/', $_REDIS_ARGS, $_REDIS_PASS, PREG_SET_ORDER); + + if (! empty($_REDIS_PASS)) { + /* + * In case the option is specified multiple times, use the last effective one. + * + * preg_match_all returns a multi-dimensional array, the first level array is in order of which was matched first, + * and the password string is either matched in group 2 or group 3 which is always the end of the sub-array. + */ + $_REDIS_PASS = end(end($_REDIS_PASS)); + if (strlen($_REDIS_PASS) > 0) { $REDIS_ROOT_PASSWORD = $_REDIS_PASS; } diff --git a/docs/getting-started/change-container-versions.rst b/docs/getting-started/change-container-versions.rst index 2dc71f59..3ed27f09 100644 --- a/docs/getting-started/change-container-versions.rst +++ b/docs/getting-started/change-container-versions.rst @@ -128,7 +128,7 @@ Now save the file and you can start the Devilbox again. # Navigate to the Devilbox directory host> cd path/to/devilbox - # Stop all container + # Start all container host> docker-compose up php httpd bind .. seealso:: :ref:`start_the_devilbox` @@ -193,7 +193,7 @@ Now save the file and you can start the Devilbox again. # Navigate to the Devilbox directory host> cd path/to/devilbox - # Stop all container + # Start all container host> docker-compose up php httpd bind .. seealso:: :ref:`start_the_devilbox`