1

I have a Drupal 8 site set up in Docksal. It was version 8.6.15, and needed updates to core and several modules. Bear with me - I don't have complete notes, because I thought everything had worked. I'm more than happy to debug... I just don't know where/how/what to look for in this case.

I would just roll back to a backed up version of the site. But that is missing ( My own fault)

The first problem I encountered, was not being able to update with Drush anymore. So I used composer to to attempt updating, with "composer require drupal/core --update-with-all-dependencies" - this was my first time doing so.

It didn't work. I had to update composer in order to continue on. After using "composer prohibits Drupal/core:8.7.3," I got several results, so I went ahead and updated them. I would tell you all I uploaded, but that was yesterday and I did not save those notes. Sorry. I also did an update of composer itself, all the packages. that appeared out of date. There were a couple that would not update, rejected by constraints.

Updated composer, and Drupal is now 8.7.3. I also did a bunch of module updates on the site as well.

I have an issue where the admin area shows I'm still on Drupal 8.6.15, even though Composer shows the latest version. I assumed this was a separate issue, but maybe it's related. There is an issue with this site being set up with drupal/drupal and not drupal/core. Something to do with the composer json.

Everything seemed fine, but when I tried to navigate to some of the admin pages (Content, Configuration or People page), I get an error:

Fatal error: require(): Failed opening required '/var/www/docroot/vendor/composer/../doctrine/common/lib/Doctrine/Common/Reflection/ClassFinderInterface.php' (include_path='.:/usr/local/lib/php') in /var/www/docroot/vendor/symfony/class-loader/ApcClassLoader.php on line 112

Not even sure what first steps might be on this. When I type composer outdated, I don't see anything called class-loader or classfinder

Looking at ApcClassLoader.php, I see 'require $file;' on line 112:

 public function loadClass($class)
    {
        if ($file = $this->findFile($class)) {
            require $file;

            return true;
        }
    }
3
  • By just stating facts you make your question too broad. Plus debugging always needs to be done by you, this can't be done from afar. Please update your question to provide a reproducible problem, telling us what you've tried yourself so far and what exactly you've done before your page went nuts. Many thanks :)
    – leymannx
    Commented Jun 25, 2019 at 22:12
  • @leymannx I just tried to add more detail, but I really don't know what is needed. I'm more than happy to debug and report back. I just don't know where/how/what to look at in this case. And I can't recall ever step taken. If I could just go to a backup and start over, I would. but that file is missing/gone. Let me know if there's something specific I can provide, and I'll try to see if I can.
    – turpentyne
    Commented Jun 25, 2019 at 22:52
  • Much better now! Thank you. You may want to have a look at github.com/grasmash/composerize-drupal. I remember vaguely that drupal/drupal doesn't work anymore since version 8.7. or so. And apart from that what you are doing is really dangerous. Updating a live site like that, untested (as in locally on your own computer), no backups, no version control, really... Don't do that anymore! :)
    – leymannx
    Commented Jun 25, 2019 at 23:00

1 Answer 1

1

Not sure whether or not this will actually fix your issue, but I'd try:

  • update the drupal/core version to in composer.json to be ^8.7.0
  • if you're using webflo/drupal-core-require-dev, update that to ^8.7.0 as per https://www.drupal.org/docs/8/update/update-core-via-composer
  • run composer update drupal/core webflo/drupal-core-require-dev --with-dependencies
  • run your database updates, drush updb or site.com/update.php

If that still doesn't work, try:

  • deleting your vendor directory, core directory, and composer.lock
  • run composer install
4
  • on the second option, "composer install" doesn't install the core directory, it seems. Is there an extra step, or did something not do what it should've?
    – turpentyne
    Commented Jun 26, 2019 at 2:00
  • Sorry, you are correct. It won't install without a composer.install file. I think you'll need to composer update or another composer require
    – Mrweiner
    Commented Jun 26, 2019 at 2:43
  • got it...the first option didn't do anything. so I used composer update. Then did composer update drupal/core --with-dependancies, and got several errors for "egulias/email-validator". it seems to be a recurring problem for people. I tried updating the validator, but got same errors: can only install one of egulias/email-validator[2.0.x-dev, 1.2.15]. and a couple regarding installation request satisfiable by each of the same versions. 2.0.x-dev and 1.2.15. I'm starting to think I'm forced to start over from an 5-month old version of the site. This one's buggered
    – turpentyne
    Commented Jun 26, 2019 at 3:11
  • uh... here's a strange one... On a whim, after having done the above... I restarted PHP, then I restarted the docksal project. I was suddenly able to access the pages I couldn't. Now I'm just getting an error when I try to export a tar file of the site: Fatal error: Class 'Archive_Tar' not found in /var/www/docroot/core/lib/Drupal/Core/Archiver/ArchiveTar.php on line 8
    – turpentyne
    Commented Jun 26, 2019 at 3:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.