Jump to content

500 Errors after automatic updates and resolution


Recommended Posts

After attempting to use the auto updater for the first time it failed with the error:

 

Error (Help Documentation)
Error: Failed to perform early file copy during WHMCS file relocation: vendor/whmcs/whmcs-foundation/lib/Application.php
[WHMCS\Exception]
Script WHMCS\Installer\Composer\Hooks\ComposerInstallerHook::postUpdateCmd handling the post-update-cmd event terminated with an exception
Relocating WHMCS core files...
Skipping: downloads
Skipping: templates_c
Skipping: attachments
Skipping: crons
Preparing to relocate WHMCS core files...
An existing installation has been found - updating...
-------------------------------------
WHMCS Installation/Update Assistant
-------------------------------------
> WHMCS\Installer\Composer\Hooks\ComposerInstallerHook::postUpdateCmd
Generating autoload files
Writing lock file
File signature was validated
Certificate used for signature validation was loaded and validated
File hash was validated. Hash: 0169a218b9e066c1809afb65113beb55ae5c934b8f4496642262bcd13f9081dc
Validating /var/www/sites/example.com/htdocs/vendor/whmcs/whmcs/4a4b22f8aa92f0a87aa907d4e3a29aa8.zip
Downloading
- Installing whmcs/whmcs (7.2.2)
Updating dependencies
Loading composer repositories with package information

 

 

At this point, WHMCS completely failed and I was getting 500 errors with the following message in the logs:

 

 

PHP Fatal error:  Interface 'Whoops\\RunInterface' not found in /var/www/sites/example.com/htdocs/vendor/whmcs/whmcs/vendor/whmcs/whmcs-foundation/lib/Utility/Error/Run.php on line 0, referer: https://example.com/admin/update.php

 

So it was apparent that WHMCS didn't make something more clear in terms of how a path should be structured in a configuration dialog. The problem became, tracking down how to fix this. After digging a bit I was able to isloate out that the URLs were orchestrated by composer (pun intended) and could find this in the following file:

 

 

$ cat vendor/composer/autoload_psr4.php
<?php

// autoload_psr4.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
   'WHMCS\\' => array($vendorDir . '/whmcs/whmcs/vendor/whmcs/whmcs-foundation/lib'),
);

 

 

I fixed this up removing

/whmcs/whmcs

from the path prefix. Changing into

/whmcs/whmcs

I found the contents of what _should_ have gotten moved to my htdocs directory. After moving this into place, I was force to hit the

/install

URL, but got things back online.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use & Guidelines and understand your posts will initially be pre-moderated