Issue with Image Display and Database Migrations on Shared Hosting (PHP 8.3) #5547

Open
opened 2026-02-05 10:09:57 +03:00 by OVERLORD · 1 comment
Owner

Originally created by @vcsfroner on GitHub (Dec 20, 2025).

Describe the Bug

Hello everyone,

I am seeking assistance with a BookStack v24.10.1 installation on a shared hosting environment (DialHost). I have encountered two main issues that I haven't been able to resolve:

  1. Image/Avatar 404 Error: I have moved the contents of the public folder to my root subdirectory (/doc/) to run the application directly from that URL. However, the system is unable to display uploaded images (Logos/Avatars).

The Constraint: My hosting provider has disabled the exec() function for security reasons.

The Symptom: When I run php artisan storage:link, it fails with a 'Call to undefined function Illuminate\Filesystem\exec()' error.

Attempted Fixes: I tried creating a manual symbolic link (ln -s storage/app/public/uploads uploads) and setting permissions to 775/777, but the browser still returns a 404 or 'Image Not Found' within the app.

  1. Database Schema Mismatch: After an update/file restoration, I started getting the following error:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'owner_id' in 'joint_permissions'. When I try to run php artisan migrate, it fails because some tables (like search_terms) already exist, but running migrate:fresh or migrate often hits a snag with 'DoctrineSchemaManager does not exist' or similar compatibility issues with PHP 8.3.

Environment Details:

BookStack Version: v24.10.1

PHP Version: 8.3.28

Hosting: Shared (No root access, exec() disabled).

Install Path: Root of a subdomain (not using the /public folder).

Has anyone successfully managed the storage symlink issue in an environment where exec() is blocked? Also, what is the best way to force a full schema sync when standard migrations are failing due to existing tables?

Thank you in advance for your help!

Steps to Reproduce

.

Expected Behaviour

.

Screenshots or Additional Context

Image

Browser Details

No response

Exact BookStack Version

24.10.1

Originally created by @vcsfroner on GitHub (Dec 20, 2025). ### Describe the Bug Hello everyone, I am seeking assistance with a BookStack v24.10.1 installation on a shared hosting environment (DialHost). I have encountered two main issues that I haven't been able to resolve: 1. Image/Avatar 404 Error: I have moved the contents of the public folder to my root subdirectory (/doc/) to run the application directly from that URL. However, the system is unable to display uploaded images (Logos/Avatars). The Constraint: My hosting provider has disabled the exec() function for security reasons. The Symptom: When I run php artisan storage:link, it fails with a 'Call to undefined function Illuminate\Filesystem\exec()' error. Attempted Fixes: I tried creating a manual symbolic link (ln -s storage/app/public/uploads uploads) and setting permissions to 775/777, but the browser still returns a 404 or 'Image Not Found' within the app. 2. Database Schema Mismatch: After an update/file restoration, I started getting the following error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'owner_id' in 'joint_permissions'. When I try to run php artisan migrate, it fails because some tables (like search_terms) already exist, but running migrate:fresh or migrate often hits a snag with 'DoctrineSchemaManager does not exist' or similar compatibility issues with PHP 8.3. Environment Details: BookStack Version: v24.10.1 PHP Version: 8.3.28 Hosting: Shared (No root access, exec() disabled). Install Path: Root of a subdomain (not using the /public folder). Has anyone successfully managed the storage symlink issue in an environment where exec() is blocked? Also, what is the best way to force a full schema sync when standard migrations are failing due to existing tables? Thank you in advance for your help! ### Steps to Reproduce . ### Expected Behaviour . ### Screenshots or Additional Context <img width="804" height="171" alt="Image" src="https://github.com/user-attachments/assets/05ee7412-2533-4c7c-87e4-608128f50de8" /> ### Browser Details _No response_ ### Exact BookStack Version 24.10.1
OVERLORD added the 🐕 Support label 2026-02-05 10:09:57 +03:00
Author
Owner

@ssddanbrown commented on GitHub (Dec 21, 2025):

Hi @vcsfroner,

Is this a new instance you're attempting to set-up? Or an old instance you're attempting to migrate onto shared hosting? Or a different scenario?

We don't advise nor support changing the default directory locations at all. Nor do we support/advise the storage:link or the paths it uses. I can still try to help but I really advise against hosting which places limitations and/or road-blocks on using modern features or set-ups.

In regard to the database issues, it'd be helpful to see the output of the migrate command to know where it's at. Please be careful about running commands we don't have in our documentation, as you can easily loose data. Ensure you have full backups of everything before going forward if you have existing data.

@ssddanbrown commented on GitHub (Dec 21, 2025): Hi @vcsfroner, Is this a new instance you're attempting to set-up? Or an old instance you're attempting to migrate onto shared hosting? Or a different scenario? We don't advise nor support changing the default directory locations at all. Nor do we support/advise the `storage:link` or the paths it uses. I can still try to help but I really advise against hosting which places limitations and/or road-blocks on using modern features or set-ups. In regard to the database issues, it'd be helpful to see the output of the migrate command to know where it's at. Please be careful about running commands we don't have in our documentation, as you can easily loose data. Ensure you have full backups of everything before going forward if you have existing data.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/BookStack#5547