Error while Picture upload after Backup and restore on new Maschine
Attempted Debugging
- [X] I have read the debugging page
Searched GitHub Issues
- [X] I have searched GitHub for the issue.
Describe the Scenario
Hello together,
I think my migration process is missing a step but can´t point it out. I switched to a new Ubuntu server 24.04 and wanted to migrate Bookstack to it.
What I did:
- Backup with SQL dump and tarball the files as described in the Bookstack Backup and Restore page.
- Used Installation Script Ubuntu 24.04 and commented out the Database migration part
- used the same URL and IP Address as the old Server
- Imported old Database with MySQL
- unpacked tarball back to /var/www/bookstack on the new server
- Changed Bookstack Database user credentials back to the pw from old .env
- Updated Database with php artisan migrate
Now all seems to be nice. All data / old pictures are here and Bookstack is up to date. But if I try to paste a picture or upload it via Interface I get "Internal Server error"
What did I miss? May something with the App key? But could find any info about "how to switch to the old APP key"
Any hint is welcome :)
Thank you!
Exact BookStack Version
BookStack v24.05.3
Log Content
No response
Hosting Environment
Self-hosted, VMware, Ubuntu 24.04, used official installation script, all up to date
Hi @stothew,
May something with the App key? But could find any info about "how to switch to the old APP key"
Doubt that's relevant here, since the APP_KEY is not used for images. That said, it is used for other things like MFA details so you might want to sure this is the same as before (Ensure it's the same as your old .env APP_KEY value).
But if I try to paste a picture or upload it via Interface I get "Internal Server error"
This will likely get logged to the webserver log. Watch the apache error log and reproduce the error scenario, then share back any lines that are logged:
# Watch the apache error log (Ctrl+C to stop watching)
tail -f /var/log/apache2/error.log
The lines from that (if any) should hold some clues to understand why the error is thrown.
Hi ssddanbrown,
Thank you for the fast replay! Unfortunately reproducing the error (upload a picture) doesn´t add any lines to my apache error log.
here is the log:
tail -f /var/log/apache2/error.log
[Mon Aug 19 14:26:47.640480 2024] [mpm_event:notice] [pid 980:tid 126705165686656] AH00492: caught SIGWINCH, shutting down gracefully
[Mon Aug 19 14:27:04.904945 2024] [mpm_event:notice] [pid 941:tid 140004247398272] AH00489: Apache/2.4.58 (Ubuntu) configured -- resuming normal operations
[Mon Aug 19 14:27:04.906342 2024] [core:notice] [pid 941:tid 140004247398272] AH00094: Command line: '/usr/sbin/apache2'
[Mon Aug 19 14:27:05.160923 2024] [proxy:error] [pid 944:tid 140004005250752] (2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /run/php/php8.3-fpm.sock (*:80) failed
[Mon Aug 19 14:27:05.161033 2024] [proxy_fcgi:error] [pid 944:tid 140004005250752] [client 172.20.0.50:53698] AH01079: failed to make connection to backend: httpd-UDS
[Mon Aug 19 14:27:05.586045 2024] [proxy:error] [pid 943:tid 140004219160256] (2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /run/php/php8.3-fpm.sock (*:80) failed
[Mon Aug 19 14:27:05.586140 2024] [proxy_fcgi:error] [pid 943:tid 140004219160256] [client 172.20.0.50:53700] AH01079: failed to make connection to backend: httpd-UDS
[Mon Aug 19 14:44:45.958334 2024] [mpm_event:notice] [pid 941:tid 140004247398272] AH00492: caught SIGWINCH, shutting down gracefully
[Mon Aug 19 16:45:09.587023 2024] [mpm_event:notice] [pid 1037:tid 130852814239616] AH00489: Apache/2.4.58 (Ubuntu) configured -- resuming normal operations
[Mon Aug 19 16:45:09.588444 2024] [core:notice] [pid 1037:tid 130852814239616] AH00094: Command line: '/usr/sbin/apache2'
As you can see I tried to restart the whole server but without luck.
Ah, okay, for that error try watching the app log instead:
tail -f /var/www/bookstack/storage/logs/laravel.log
Log messages will start with a timestamp, and the first few lines of each message are most relevant.
Unfortunately, there are also no lines added while uploading a picture.
output of : tail -f /var/www/bookstack/storage/logs/laravel.log
#0 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(65): PDO->__construct()
#1 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php(24): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(184): Illuminate\\Database\\Connectors\\MySqlConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->Illuminate\\Database\\Connectors\\{closure}()
#5 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1339): call_user_func()
#6 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php(528): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php(423): Illuminate\\Database\\Connection->getPdoForSelect()
#8 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php(816): Illuminate\\Database\\Connection->Illuminate\\Database\\{closure}()
#9 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php(783): Illuminate\\Database\\Connection->runQueryCallback()
#10 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php(414): Illuminate\\Database\\Connection->run()
#11 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php(401): Illuminate\\Database\\Connection->select()
#12 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php(41): Illuminate\\Database\\Connection->selectFromWriteConnection()
#13 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php(165): Illuminate\\Database\\Schema\\MySqlBuilder->getTables()
#14 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php(184): Illuminate\\Database\\Schema\\Builder->hasTable()
#15 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php(700): Illuminate\\Database\\Migrations\\DatabaseMigrationRepository->repositoryExists()
#16 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(140): Illuminate\\Database\\Migrations\\Migrator->repositoryExists()
#17 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Support/helpers.php(248): Illuminate\\Database\\Console\\Migrations\\MigrateCommand->Illuminate\\Database\\Console\\Migrations\\{closure}()
#18 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(140): retry()
#19 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(116): Illuminate\\Database\\Console\\Migrations\\MigrateCommand->repositoryExists()
#20 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(84): Illuminate\\Database\\Console\\Migrations\\MigrateCommand->prepareDatabase()
#21 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php(633): Illuminate\\Database\\Console\\Migrations\\MigrateCommand->Illuminate\\Database\\Console\\Migrations\\{closure}()
#22 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(83): Illuminate\\Database\\Migrations\\Migrator->usingConnection()
#23 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Database\\Console\\Migrations\\MigrateCommand->handle()
#24 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#25 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\\Container\\Util::unwrapIfClosure()
#26 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#27 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Container/Container.php(662): Illuminate\\Container\\BoundMethod::call()
#28 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call()
#29 /var/www/bookstack/vendor/symfony/console/Command/Command.php(326): Illuminate\\Console\\Command->execute()
#30 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run()
#31 /var/www/bookstack/vendor/symfony/console/Application.php(1096): Illuminate\\Console\\Command->run()
#32 /var/www/bookstack/vendor/symfony/console/Application.php(324): Symfony\\Component\\Console\\Application->doRunCommand()
#33 /var/www/bookstack/vendor/symfony/console/Application.php(175): Symfony\\Component\\Console\\Application->doRun()
#34 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(201): Symfony\\Component\\Console\\Application->run()
#35 /var/www/bookstack/artisan(35): Illuminate\\Foundation\\Console\\Kernel->handle()
#36 {main}
"}
but this was the stack trace of an older error. it was created while the Database user pw was not changed.
So... No, error from today. No lines were added while uploading pictures.... Any other Ideas? Thank you!
I noticed the owner changed completely over the different versions.
But when I change the permissions the picture upload says I need to check the write permissions... so I guess it was okay in first place..
Any other/saver way to update from a really old Bookstack version...? do I need to go back?
Updating from old versions is fine.
- If you re-run
php artisan migratewhat does that output? - Can you open the browser development tools (let me know which browser you use if help needed), view the "console" table, the re-produce the error & share back all messages that appear in this console view.
Thank you so much for the help.
here are the requested outputs:
Its Firefox 129.0.1 (64Bit)
Thanks, no extra clues there though.
While in the browser developer tools, can you open the "Network" tab. Then reproduce the error. You should see an extra (likely red) line appear in this tab after attempting image upload. Click on that line, then view the "response" tab in the sidebar which appears, then screenshot what you see there.
<!DOCTYPE html>
<html lang="de-DE"
dir="ltr"
class="">
<head>
<title>Wiki</title>
<!-- Meta -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<meta name="token" content="MxoOXhCFXv49tC6mxOhagOO5pGbydjAVH7K3NKsY">
<meta name="base-url" content="http://wiki.schorndorf-intern.de">
<meta name="theme-color" content="#9e2929"/>
<!-- Social Cards Meta -->
<meta property="og:title" content="Wiki">
<meta property="og:url" content="http://wiki.schorndorf-intern.de/images/gallery">
<!-- Styles -->
<link rel="stylesheet" href="http://wiki.schorndorf-intern.de/dist/styles.css?version=v24.05.3">
<!-- Icons -->
<link rel="icon" type="image/png" sizes="256x256" href="http://wiki.schorndorf-intern.de/icon.png">
<link rel="icon" type="image/png" sizes="180x180" href="http://wiki.schorndorf-intern.de/icon-180.png">
<link rel="apple-touch-icon" sizes="180x180" href="http://wiki.schorndorf-intern.de/icon-180.png">
<link rel="icon" type="image/png" sizes="128x128" href="http://wiki.schorndorf-intern.de/icon-128.png">
<link rel="icon" type="image/png" sizes="64x64" href="http://wiki.schorndorf-intern.de/icon-64.png">
<link rel="icon" type="image/png" sizes="32x32" href="http://wiki.schorndorf-intern.de/icon-32.png">
<!-- PWA -->
<link rel="manifest" href="http://wiki.schorndorf-intern.de/manifest.json">
<meta name="mobile-web-app-capable" content="yes">
<!-- Custom Styles & Head Content -->
<style>
:root {
--color-primary: #9e2929;
--color-primary-light: rgba(158,41,41,0.15);
--color-link: #9e2929;
--color-bookshelf: #a94747;
--color-book: #077b70;
--color-chapter: #af4d0d;
--color-page: #206ea7;
--color-page-draft: #7e50b1;
}
</style>
<!-- Translations for JS -->
</head>
<body
class="">
<a class="px-m py-s skip-to-content-link print-hidden" href="#main-content">Direkt zum Hauptinhalt</a> <div component="notification"
option:notification:type="success"
option:notification:auto-hide="true"
option:notification:show="false"
style="display: none;"
class="notification pos"
role="alert">
<svg class="svg-icon" data-icon="check-circle" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8z"/></svg> <span></span><div class="dismiss"><svg class="svg-icon" data-icon="close" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/><path fill="none" d="M0 0h24v24H0z"/></svg></div>
</div>
<div component="notification"
option:notification:type="warning"
option:notification:auto-hide="false"
option:notification:show="false"
style="display: none;"
class="notification warning"
role="alert">
<svg class="svg-icon" data-icon="info" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11 17h2v-6h-2zm1-15C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8M11 9h2V7h-2z"/></svg> <span></span><div class="dismiss"><svg class="svg-icon" data-icon="close" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/><path fill="none" d="M0 0h24v24H0z"/></svg></div>
</div>
<div component="notification"
option:notification:type="error"
option:notification:auto-hide="false"
option:notification:show="false"
style="display: none;"
class="notification neg"
role="alert">
<svg class="svg-icon" data-icon="danger" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.73 3H8.27L3 8.27v7.46L8.27 21h7.46L21 15.73V8.27zM12 17.3c-.72 0-1.3-.58-1.3-1.3s.58-1.3 1.3-1.3 1.3.58 1.3 1.3-.58 1.3-1.3 1.3m1-4.3h-2V7h2z"/><path fill="none" d="M0 0h24v24H0z"/></svg> <span></span><div class="dismiss"><svg class="svg-icon" data-icon="close" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/><path fill="none" d="M0 0h24v24H0z"/></svg></div>
</div> <header id="header" component="header-mobile-toggle" class="primary-background px-xl grid print-hidden">
<div class="flex-container-row justify-space-between gap-s items-center">
<a href="http://wiki.schorndorf-intern.de" data-shortcut="home_view" class="logo">
<img class="logo-image" src="http://wiki.schorndorf-intern.de/uploads/images/system/2021-05/logo-w-klein.png" alt="Logo">
<span class="logo-text">Wiki</span>
</a> <div class="hide-over-l py-s">
<button type="button"
refs="header-mobile-toggle@toggle"
title="Header-Menü erweitern"
aria-expanded="false"
class="mobile-menu-toggle"><svg class="svg-icon" data-icon="more" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2"/></svg></button>
</div>
</div>
<div class="flex-container-column items-center justify-center hide-under-l">
<form component="global-search" action="http://wiki.schorndorf-intern.de/search" method="GET" class="search-box" role="search" tabindex="0">
<button id="header-search-box-button"
refs="global-search@button"
type="submit"
aria-label="Suchen"
tabindex="-1"><svg class="svg-icon" data-icon="search" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27A6.47 6.47 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14"/><path fill="none" d="M0 0h24v24H0z"/></svg></button>
<input id="header-search-box-input"
refs="global-search@input"
type="text"
name="term"
data-shortcut="global_search"
autocomplete="off"
aria-label="Suchen" placeholder="Suchen"
value="">
<div refs="global-search@suggestions" class="global-search-suggestions card">
<div refs="global-search@loading" class="text-center px-m global-search-loading"><div class="loading-container">
<div></div>
<div></div>
<div></div>
</div></div>
<div refs="global-search@suggestion-results" class="px-m"></div>
<button class="text-button card-footer-link" type="submit">Alle anzeigen</button>
</div>
</form> </div>
<nav refs="header-mobile-toggle@menu" class="header-links">
<div class="links text-center">
<a class="hide-over-l" href="http://wiki.schorndorf-intern.de/search"><svg class="svg-icon" data-icon="search" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27A6.47 6.47 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14"/><path fill="none" d="M0 0h24v24H0z"/></svg>Suchen</a>
<a href="http://wiki.schorndorf-intern.de/shelves"
data-shortcut="shelves_view"><svg class="svg-icon" data-icon="bookshelf" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path fill="none" d="M1.088 2.566h17.42v17.42H1.088z"/><path d="M4 20.058h15.892V22H4z"/><path fill="none" d="M2.902 1.477h17.42v17.42H2.903z"/><path d="M6.658 3.643V18h-2.38V3.643zm4.668 0V18H8.947V3.643zm3.396.213 5.613 13.214-2.19.93-5.613-13.214z"/></svg>Regale</a>
<a href="http://wiki.schorndorf-intern.de/books" data-shortcut="books_view"><svg class="svg-icon" data-icon="books" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M19.252 1.708H8.663a1.77 1.77 0 0 0-1.765 1.764v14.12c0 .97.794 1.764 1.765 1.764h10.59a1.77 1.77 0 0 0 1.764-1.765V3.472a1.77 1.77 0 0 0-1.765-1.764M8.663 3.472h4.412v7.06L10.87 9.208l-2.206 1.324z"/><path fill="none" d="M30.61 3.203h24v24h-24z"/><path d="M2.966 6.61v14c0 1.1.9 2 2 2h14v-2h-14v-14z"/></svg>Bücher</a>
<a href="http://wiki.schorndorf-intern.de/settings"
data-shortcut="settings_view"><svg class="svg-icon" data-icon="settings" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65A.49.49 0 0 0 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5"/></svg>Einstellungen</a>
</div>
<div class="dropdown-container" component="dropdown" option:dropdown:bubble-escapes="true">
<span class="user-name py-s hide-under-l" refs="dropdown@toggle"
aria-haspopup="true" aria-expanded="false" aria-label="Profilmenü" tabindex="0">
<img class="avatar" src="http://wiki.schorndorf-intern.de/uploads/images/user/2021-05/thumbs-30-30/images.jpg" alt="xxx">
<span class="name">xxx</span> <svg class="svg-icon" data-icon="caret-down" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m7 10 5 5 5-5z"/><path fill="none" d="M0 0h24v24H0z"/></svg> </span>
<ul refs="dropdown@menu" class="dropdown-menu" role="menu">
<li>
<a href="http://wiki.schorndorf-intern.de/favourites" data-shortcut="favourites_view" class="icon-item">
<svg class="svg-icon" data-icon="star" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"/><path fill="none" d="M0 0h24v24H0z"/></svg> <div>Meine Favoriten</div>
</a>
</li>
<li>
<a href="http://wiki.schorndorf-intern.de/user/xxx" data-shortcut="profile_view" class="icon-item">
<svg class="svg-icon" data-icon="user" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4m0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4"/><path fill="none" d="M0 0h24v24H0z"/></svg> <div>Profil ansehen</div>
</a>
</li>
<li>
<a href="http://wiki.schorndorf-intern.de/my-account" class="icon-item">
<svg class="svg-icon" data-icon="user-preferences" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><circle cx="10" cy="8" r="4"/><path d="M10.67 13.02c-.22-.01-.44-.02-.67-.02-2.42 0-4.68.67-6.61 1.82-.88.52-1.39 1.5-1.39 2.53V20h9.26a6.96 6.96 0 0 1-.59-6.98M20.75 16c0-.22-.03-.42-.06-.63l1.14-1.01-1-1.73-1.45.49q-.48-.405-1.08-.63L18 11h-2l-.3 1.49q-.6.225-1.08.63l-1.45-.49-1 1.73 1.14 1.01c-.03.21-.06.41-.06.63s.03.42.06.63l-1.14 1.01 1 1.73 1.45-.49q.48.405 1.08.63L16 21h2l.3-1.49q.6-.225 1.08-.63l1.45.49 1-1.73-1.14-1.01c.03-.21.06-.41.06-.63M17 18c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2"/></svg> <div>Mein Account</div>
</a>
</li>
<li><hr></li>
<li>
<form action="http://wiki.schorndorf-intern.de/preferences/toggle-dark-mode" method="post">
<input type="hidden" name="_token" value="MxoOXhCFXv49tC6mxOhagOO5pGbydjAVH7K3NKsY" autocomplete="off">
<input type="hidden" name="_method" value="patch">
<input type="hidden" name="_return" value="http://wiki.schorndorf-intern.de/images/gallery">
<button class="icon-item"><span><svg class="svg-icon" data-icon="dark-mode" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 2c-1.82 0-3.53.5-5 1.35C7.99 5.08 10 8.3 10 12s-2.01 6.92-5 8.65C6.47 21.5 8.18 22 10 22c5.52 0 10-4.48 10-10S15.52 2 10 2"/></svg></span><span>Dunkler Modus</span></button>
</form> </li>
<li><hr></li>
<li>
<form action="http://wiki.schorndorf-intern.de/logout" method="post">
<input type="hidden" name="_token" value="MxoOXhCFXv49tC6mxOhagOO5pGbydjAVH7K3NKsY" autocomplete="off">
<button class="icon-item" data-shortcut="logout">
<svg class="svg-icon" data-icon="logout" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="m14.29 8.207 1.41-1.41 5 5-5 5-1.41-1.41 2.58-2.59H7.2v-2h9.67zM5 3h14a2 2 0 0 1 2 2v4h-2V5H5v14h14v-4h2v4a2 2 0 0 1-2 2H5c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2"/></svg> <div>Abmelden</div>
</button>
</form>
</li>
</ul>
</div> </nav>
</header>
<div id="content" components="" class="block">
<div class="container small py-xl">
<main class="card content-wrap auto-height">
<div id="main-content" class="body">
<h3>Es ist ein Fehler aufgetreten</h3>
<h5 class="mb-m">An unknown error occurred</h5>
<p><a href="http://wiki.schorndorf-intern.de" class="button outline">Zurück zur Startseite</a></p>
</div>
</main>
</div>
</div>
<div component="back-to-top" class="back-to-top print-hidden">
<div class="inner">
<svg class="svg-icon" data-icon="chevron-up" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7.41 15.41 12 10.83l4.59 4.58L18 14l-6-6-6 6z"/><path fill="none" d="M0 0h24v24H0z"/></svg> <span>nach oben</span>
</div>
</div>
<script src="http://wiki.schorndorf-intern.de/dist/app.js?version=v24.05.3" nonce="3yV3Yx7T0cMxudvAHzFxcDms"></script>
</body>
</html>
Let me know if I can do anything else.
Okay, so that confirms an app-level error.
What's the output of running ls -alh /var/www/bookstack/storage/logs/?
Okay, the log is lacking permissions.
Update with chown user:www-data /var/www/bookstack/storage/logs/laravel.log.
Then, retry watching the app logs while reproducing the error (tail -f /var/www/bookstack/storage/logs/laravel.log)
Now it is adding lines:
It says no write permission, but as I said this morning changing the storage permission did not help...
sudo chown -cR www-data /storage
sudo chmod -R 755 /storage
Why did the installation Script not set this? Whats the correct permissions to run smoothly? Thanks again!
@stothew Those commands are setting permissions on a /storage folder, which (if exists) would not be part of your BookStack install (since you're specifying a folder at the root of your filesystem).
Why did the installation Script not set this?
It does set some default permissions, but when you copied in old files, or had errors via commands, that may have interfered.
Whats the correct permissions to run smoothly?
You can follow our example permissions approach here:
https://www.bookstackapp.com/docs/admin/filesystem-permissions/#example-permissions-approach
Be sure to replace barry in those commands with user (I'm assuming going by your screenshots above).
Ah, okay! I only set it to the storage folder because the old server had the permissions like that. With the permissions set as described in the link, all works fine! May the Link is worth a mention on the Backup and Restore page? after unpacking tarball, reapply the file permissions :)
Thank you so much for digging into my problem! I have used Bookstack for years now and would be very sad to get problems with all that documentation.
Thank you for this wonderful piece of Software, and thanks again for the great help with troubleshooting. Keep up the good work.
if I can help someday, let me know.
Good to hear you got things working, I'll therefore close this off.