diff --git a/app/Http/Controllers/SetupController.php b/app/Http/Controllers/SetupController.php index 05984d0a..9d107e49 100644 --- a/app/Http/Controllers/SetupController.php +++ b/app/Http/Controllers/SetupController.php @@ -178,20 +178,28 @@ class SetupController extends Controller } } - public static function checkTextureDirectory() + public static function checkDirectories() { - if (!Storage::disk('storage')->has('textures')) { - // mkdir - if (!Storage::disk('storage')->makeDirectory('textures')) - return false; - } + $directories = ['storage/textures', 'plugins']; - return true; + try { + foreach ($directories as $dir) { + if (!Storage::disk('root')->has($dir)) { + // mkdir + if (!Storage::disk('root')->makeDirectory($dir)) + return false; + } + } + + return true; + } catch (\Exception $e) { + return false; + } } protected function createDirectories() { - return self::checkTextureDirectory(); + return self::checkDirectories(); } /** diff --git a/app/Providers/BootServiceProvider.php b/app/Providers/BootServiceProvider.php index 3402afd9..cbcb58b4 100644 --- a/app/Providers/BootServiceProvider.php +++ b/app/Providers/BootServiceProvider.php @@ -56,7 +56,7 @@ class BootServiceProvider extends ServiceProvider return redirect('/setup')->send(); } - if (!SetupController::checkTextureDirectory()) { + if (!SetupController::checkDirectories()) { throw new PrettyPageException(trans('setup.file.permission-error'), -1); } diff --git a/config/filesystems.php b/config/filesystems.php index 9415192c..da5d9a9a 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -48,6 +48,11 @@ return [ 'root' => storage_path('app'), ], + 'root' => [ + 'driver' => 'local', + 'root' => base_path(), + ], + 'storage' => [ 'driver' => 'local', 'root' => storage_path(),