Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,090 of 9,090 pages
About the help in other languages
All help pages

Repair a broken installation from the browser

This page is for administrators whose site does not start because the Composer libraries (vendor/) are missing. Until 6.0.15 a visitor then saw PHP's raw output. Now Exponential shows a page of its own that explains…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/features/6.0/repair-from-the-browser.md

On this page

Repair a broken installation from the browser

This page is for administrators whose site does not start because the Composer libraries (vendor/) are missing. Until 6.0.15 a visitor then saw PHP's raw output. Now Exponential shows a page of its own that explains what is wrong and lets an administrator repair it without a shell session. Added 2026-10-02. Full guide: Repair.

Repair in three minutes

  1. On the server, as the web server user, create a repair key:

    sudo -u <web server user> php bin/php/exprepair.php --create-key

    The key is printed once and works once. Only its hash is stored. The command runs without the libraries, so it works while the site is down.

  2. Open any page of the site. The cursor is already in the key field: paste the key and press Enter.

  3. Watch the status bar. It shows three steps, each waiting, running, done or failed, with a progress bar and the end of the log, refreshed every two seconds. When all are done, the page reopens after five seconds.

StepWhat runs
Install the Composer librariescomposer install --no-dev --no-interaction --no-plugins --no-scripts --no-progress
Regenerate the autoload arraysphp bin/php/ezpgenerateautoloads.php -e, then the kernel autoloads (ezpgenerateautoloads.php -k with an --exclude for the installation's worktree directory)
Clear the cachesphp bin/php/ezcache.php --clear-all

If composer.lock does not match composer.json, the page explains it and offers Update the lock file and install, authorised by the failed run's token for 15 minutes.

The repair runs composer install for you; you do not need to run Composer yourself.

Check and switch off

php bin/php/exprepair.php --status    # state of the last repair and the end of its log; safe at any time
php bin/php/exprepair.php --disable   # writes Enabled=false and an empty KeyHash

Why it is safe

  • The queue runs as the web server user, never as root.
  • The key is stored only as a hash, in settings/override/exprepair.ini.append.php (mode 0640). Never commit that file.
  • The worker is detached, so the page that starts a repair answers at once.
  • index.php answers the run's status before the kernel starts, because the kernel cannot start without its libraries.
  • Repair settings are recorded in the audit trail: whether a key is set, never the key or its hash.

Settings

FileBlockKeyDefaultScope
settings/override/exprepair.ini.append.phpRepairSettingsEnabledtrue once a key existsinstallation
settings/override/exprepair.ini.append.phpRepairSettingsKeyHashwritten by --create-keyinstallation
settings/override/exprepair.ini.append.phpRepairSettingsComposercomposer on the PATH; set it when the binary is elsewhereinstallation
settings/error.iniErrorSettingsStaticErrorPage[dependencies]commented out; the page it would name is design/standard/errors/dependencies.htmlinstallation

Become an Exponential Partner

Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x