diff --git a/phpBB/common.php b/phpBB/common.php index eba2e8eca9..ec6ff6805e 100644 --- a/phpBB/common.php +++ b/phpBB/common.php @@ -113,6 +113,14 @@ $phpbb_class_loader_ext->register(); try { $phpbb_container_builder = new \phpbb\di\container_builder($phpbb_root_path, $phpEx); + + // Check that cache directory is writable before trying to build container + $cache_dir = $phpbb_container_builder->get_cache_dir(); + if (file_exists($cache_dir) && !is_writable($phpbb_container_builder->get_cache_dir())) + { + die('Unable to write to the cache directory path "' . $cache_dir . '". Ensure that the web server user can write to the cache folder.'); + } + $phpbb_container = $phpbb_container_builder->with_config($phpbb_config_php_file)->get_container(); } catch (InvalidArgumentException $e) diff --git a/phpBB/phpbb/di/container_builder.php b/phpBB/phpbb/di/container_builder.php index 33852ba08c..935aa11efb 100644 --- a/phpBB/phpbb/di/container_builder.php +++ b/phpBB/phpbb/di/container_builder.php @@ -423,7 +423,7 @@ class container_builder * * @return string Path to the cache directory. */ - protected function get_cache_dir() + public function get_cache_dir() { return $this->cache_dir ?: $this->phpbb_root_path . 'cache/' . $this->get_environment() . '/'; }