1-page skeleton not running in XAMPP dev server

I downloaded the Grav 1-page skeleton and am trying to run it in the local XAMPP development web server, but I’m getting this error loading it in the browser:

Fatal error: Uncaught RuntimeException: Failed to save file /var/opt/lampp/htdocs/Grav-1pager/cache/compiled/blueprints/master-localhost.php in /var/opt/lampp/htdocs/Grav-1pager/vendor/rockettheme/toolbox/File/src/AbstractFile.php:374 Stack trace: #0 /var/opt/lampp/htdocs/Grav-1pager/vendor/rockettheme/toolbox/File/src/PhpFile.php(46): RocketTheme\Toolbox\File\AbstractFile->save(Array) #1 /var/opt/lampp/htdocs/Grav-1pager/system/src/Grav/Common/Config/CompiledBase.php(255): RocketTheme\Toolbox\File\PhpFile->save(Array) #2 /var/opt/lampp/htdocs/Grav-1pager/system/src/Grav/Common/Config/CompiledBase.php(113): Grav\Common\Config\CompiledBase->saveCompiledFile(‘/var/opt/lampp/…’) #3 /var/opt/lampp/htdocs/Grav-1pager/system/src/Grav/Common/Service/ConfigServiceProvider.php(106): Grav\Common\Config\CompiledBase->load() #4 /var/opt/lampp/htdocs/Grav-1pager/system/src/Grav/Common/Service/ConfigServiceProvider.php(46): Grav\Common\Service\ConfigServiceProvider::blueprints(Object(Grav\Common\Grav)) #5 /var/opt/lampp/htdocs/Grav-1pager/vendor/pimple/pimple/src/Pimple/Container.php(122): Grav\Common\Service\ConfigServiceProvider->Grav\Common\Service{closure}(Object(Grav\Common\Grav)) #6 /var/opt/lampp/htdocs/Grav-1pager/system/src/Grav/Common/Service/ConfigServiceProvider.php(133): Pimple\Container->offsetGet(‘blueprints’) #7 /var/opt/lampp/htdocs/Grav-1pager/system/src/Grav/Common/Data/Data.php(272): Grav\Common\Service\ConfigServiceProvider::Grav\Common\Service{closure}() #8 /var/opt/lampp/htdocs/Grav-1pager/system/src/Grav/Common/Data/Data.php(120): Grav\Common\Data\Data->blueprints() #9 /var/opt/lampp/htdocs/Grav-1pager/system/src/Grav/Common/Config/CompiledConfig.php(111): Grav\Common\Data\Data->join(‘security’, Array, ‘/’) #10 /var/opt/lampp/htdocs/Grav-1pager/system/src/Grav/Common/Config/CompiledBase.php(180): Grav\Common\Config\CompiledConfig->loadFile(‘security’, ‘/var/opt/lampp/…’) #11 /var/opt/lampp/htdocs/Grav-1pager/system/src/Grav/Common/Config/CompiledBase.php(112): Grav\Common\Config\CompiledBase->loadFiles() #12 /var/opt/lampp/htdocs/Grav-1pager/system/src/Grav/Common/Config/CompiledConfig.php(61): Grav\Common\Config\CompiledBase->load() #13 /var/opt/lampp/htdocs/Grav-1pager/system/src/Grav/Common/Service/ConfigServiceProvider.php(136): Grav\Common\Config\CompiledConfig->load() #14 /var/opt/lampp/htdocs/Grav-1pager/system/src/Grav/Common/Service/ConfigServiceProvider.php(50): Grav\Common\Service\ConfigServiceProvider::load(Object(Grav\Common\Grav)) #15 /var/opt/lampp/htdocs/Grav-1pager/vendor/pimple/pimple/src/Pimple/Container.php(122): Grav\Common\Service\ConfigServiceProvider->Grav\Common\Service{closure}(Object(Grav\Common\Grav)) #16 /var/opt/lampp/htdocs/Grav-1pager/system/src/Grav/Common/Processors/InitializeProcessor.php(176): Pimple\Container->offsetGet(‘config’) #17 /var/opt/lampp/htdocs/Grav-1pager/system/src/Grav/Common/Processors/InitializeProcessor.php(73): Grav\Common\Processors\InitializeProcessor->initializeConfig() #18 /var/opt/lampp/htdocs/Grav-1pager/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(50): Grav\Common\Processors\InitializeProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) #19 /var/opt/lampp/htdocs/Grav-1pager/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #20 /var/opt/lampp/htdocs/Grav-1pager/system/src/Grav/Framework/RequestHandler/Middlewares/MultipartRequestSupport.php(40): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #21 /var/opt/lampp/htdocs/Grav-1pager/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(50): Grav\Framework\RequestHandler\Middlewares\MultipartRequestSupport->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) #22 /var/opt/lampp/htdocs/Grav-1pager/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #23 /var/opt/lampp/htdocs/Grav-1pager/system/src/Grav/Common/Grav.php(312): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #24 /var/opt/lampp/htdocs/Grav-1pager/index.php(47): Grav\Common\Grav->process() #25 {main} thrown in /var/opt/lampp/htdocs/Grav-1pager/vendor/rockettheme/toolbox/File/src/AbstractFile.php on line 374

Sorry about the mess, this is how the page shows it…

Any ideas what the problem could be?

I’m running this on the Bazzite OS (Fedora based) - it’s immutable and has a special thing going on with the way its directories are mounted, e.g. the /home is actually /var/home, but handling it as a user works as if it was just /home. Maybe the problem could have something to do with that (and I’ve stumbled on one the things that immutabilty makes harder…)?
EDIT: I also tried it from Arch Linux and get the same error, so I suspect XAMPP might be the problem

Make cache folder writeable

1 Like

Thank you, I checked my user’s permission on the cache folder, it has 755. But is the user I am working on the code with the same user that needs the write permission here, or maybe some user of php or httpd?

Try 777

Sorry, but since I had all kinds of issues with xampp, I moved to Laragon and didn’t look back, so can’t really suggest anything else. Your error clearly says your cache folder (or its sub-folders) isn’t writeable

1 Like

Does the webserver user need to own the complete app directory?