Public folder and issue with license registration


I’m facing a weird issue where I can’t register my license through the Panel, my Kirby structure uses a public folder with separate storage folder (accounts/cache/content/logs/sessions/media) then I have the site folder with the blueprints/snippets/templates/config. Finally the public with the .htaccess file and index.php which looks like that:


include '../vendor/autoload.php';

$kirby = new Kirby([
    'roots' => [
        'index'    => __DIR__,
        'base'     => $base    = dirname(__DIR__),
        'site'     => $base . '/site',
        'storage'  => $storage = $base . '/storage',
        'content'  => $storage . '/content',
        'accounts' => $storage . '/accounts',
        'cache'    => $storage . '/cache',
        'license'  => $storage . '/',
        'logs'     => $storage . '/logs',
        'media'    => $storage . '/media', // NOTE: needs symlink /public/media to /storage/media
        'sessions' => $storage . '/sessions',

// create symlink if needed
$symlink = __DIR__ . '/media';
if (! file_exists($symlink)) {
    symlink($kirby->roots()->media(), $symlink);

echo $kirby->render();

The error message that I get from the panel says:

Error: file_put_contents(/home/clients/xxx/sites/ Failed to open stream: Is a directory

On my hosting settings I made sure that the allow_url_fopen is activated as well as exec, shell_exec, popen, proc_open, pcntl_exec. Any ideas why I have this error? Besides the website works as expected just a bit annoying to have the “This is an unregistered demo of Kirby” message.

I think this should be the path to the file, not a directory

'license'  => $storage . '/.license',
1 Like

Thank you for the prompt solution, it worked!