# Problems installing Kirby CMS on shared hosting (IONOS)

**URL:** <https://forum.getkirby.com/t/problems-installing-kirby-cms-on-shared-hosting-ionos/34822>\
**Category:** Hosting\
**Tags:** v5\
**Created:** [October 5, 2025, 8:43am UTC](https://forum.getkirby.com/t/problems-installing-kirby-cms-on-shared-hosting-ionos/34822 "2025-10-05T08:43:21Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![j54j6](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/j54j6/32/12951_2.png) [@j54j6](https://forum.getkirby.com/u/j54j6)\
**Post date:** [October 5, 2025, 8:43am UTC](https://forum.getkirby.com/t/problems-installing-kirby-cms-on-shared-hosting-ionos/34822/1 "2025-10-05T08:43:21Z")

</div>

Hi there,

currently I try to install a Kirby CMS Website on a customer shared hosting plan from IONOS.  
Normally I install all dependencies with composer and until now it is working great but on the IONOS System I cannot get kirby to run.

`Interface "Laminas\Escaper\EscaperInterface" not found`

I seems like php is not finding the dependency from Laminas but I can see that composer has installed it since it is shown under `composer show` →

> **composer show output**
>
> christian-riesen/base32 1.6.0 Base32 encoder/decoder according to RFC 4648  
> claviska/simpleimage 4.2.1 A PHP class that makes working with images as simple as possible.  
> composer/semver 3.4.4 Semver library that offers utilities, version constraint parsing and validation.  
> filp/whoops 2.18.4 php error handling for cool kids  
> getkirby/cms 5.1.2 The Kirby core  
> getkirby/composer-installer 1.2.1 Kirby’s custom Composer installer for the Kirby CMS and for Kirby plugins  
> graham-campbell/result-type 1.1.3 An Implementation Of The Result Type  
> laminas/laminas-escaper 2.17.0 Securely and safely escape HTML, HTML attributes, JavaScript, CSS, and URLs  
> league/color-extractor 0.4.0 Extract colors from an image as a human would do.  
> michelf/php-smartypants 1.8.1 PHP SmartyPants  
> phpmailer/phpmailer 6.10.0 PHPMailer is a full-featured email creation and transfer class for PHP  
> phpoption/phpoption 1.9.4 Option Type for PHP  
> psr/log 3.0.2 Common interface for logging libraries  
> symfony/deprecation-contracts 3.6.0 A generic function and convention to trigger deprecation notices  
> symfony/polyfill-ctype 1.33.0 Symfony polyfill for ctype functions  
> symfony/polyfill-intl-idn 1.33.0 Symfony polyfill for intl’s idn\_to\_ascii and idn\_to\_utf8 functions  
> symfony/polyfill-intl-normalizer 1.33.0 Symfony polyfill for intl’s Normalizer class and related functions  
> symfony/polyfill-mbstring 1.33.0 Symfony polyfill for the Mbstring extension  
> symfony/polyfill-php80 1.33.0 Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions  
> symfony/yaml 7.3.3 Loads and dumps YAML files  
> twbs/bootstrap-icons 1.13.1 Official open source SVG icon library for Bootstrap  
> vlucas/phpdotenv 5.6.2 Loads environment variables from .env to getenv(), $\_ENV and $\_SERVER automagically.

My composer.json in the root folder looks like this:

> **composer.json**
>
> {
> 
> “name”: “j54j6/\<\>\_Webseite”,
> 
> “description”: “Webseite der \<\>”,
> 
> “type”: “project”,
> 
> “keywords”: [
> 
> ```
> "<<customer>>"
> 
> ```
> 
> ],
> 
> “authors”: [
> 
> ```
> {
> 
> "name": "Justin Ritter",
> 
> "email": "mail@nodework.de",
> 
> "homepage": "https://www.nodework.de"
> 
> }
> 
> ```
> 
> ],
> 
> “homepage”: “[https://nodework.de](https://nodework.de)”,
> 
> “require”: {
> 
> ```
> "php": "\~8.1.0 || \~8.2.0 || \~8.3.0 || \~8.4.0",
> 
> "getkirby/cms": "^5.0",
> 
> "twbs/bootstrap-icons": "^1.13",
> 
> "vlucas/phpdotenv": "^5.6"
> 
> ```
> 
> },
> 
> “config”: {
> 
> ```
> "allow-plugins": {
> 
> "getkirby/composer-installer": true
> 
> },
> 
> "optimize-autoloader": true
> 
> ```
> 
> },
> 
> “scripts”: {
> 
> ```
> "start": \[
> 
> "Composer\\\\Config::disableProcessTimeout",
> 
> "@php -S localhost:8000 kirby/router.php"
> 
> \],
> 
> "post-install-cmd": \[
> 
> "php8.4 scripts/copy_assets.php"
> 
> \],
> 
> "post-update-cmd": \[
> 
> "php8.4 scripts/copy_assets.php"
> 
> \]
> 
> ```
> 
> }
> 
> }

All dependencies are installed inside the vendor folder inside the project root. The Kirby folder does not have it’s own vendor folder.  
On my local System (Windows) it works without any problems. I can clone my git project, use composer install && composer start.

I hope someone can help me on this one 🙂

---

<div class="post-metadata">

**Author:** ![j54j6](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/j54j6/32/12951_2.png) [@j54j6](https://forum.getkirby.com/u/j54j6)\
**Post date:** [October 5, 2025, 12:35pm UTC](https://forum.getkirby.com/t/problems-installing-kirby-cms-on-shared-hosting-ionos/34822/2 "2025-10-05T12:35:13Z")

</div>

I found the solution!  
I had uploaded the folder directly from my workspace instead of from GitHub. Because of that, the `vendor` folder was included as well. After switching to the Git version (without the `vendor` folder) and running `composer install`, everything worked.

Also, for anyone having problems with **IONOS web hosting** → make sure to enable `RewriteBase /` in your `.htaccess` file!  
In my case, the site loaded, but images didn’t display and some routes were broken. After uncommenting the `RewriteBase /` line in the `.htaccess` file, everything started working correctly.
