I've inherited a tarball-based Drupal 8.7.8 project.
I'm moving it to new hosting, and assuming responsibility for updates and maintenance.
After updating core to 8.8.2, and updating all contrib themes and modules to their latest versions, I used the amazing new core-based tool to convert the tarball to a Composer-based project.
This worked well, with one exception: Composer refuses to install the latest 8.x-3.0-beta7
of the LDAP module, and insists on installing 8.x-3.0-beta3
. But now Drush is showing messages like:
$ lando drush en new_custom_module
In ExtensionList.php line 522:
The module ldap does not exist.
And if I try to enable it, I get this:
$ lando drush en ldap
In PmCommands.php line 247:
Unable to install modules ldap due to missing modules ldap.
I have rebuilt caches about a million times. (It used to be that you needed to do a registry rebuild if you did funny business like move an installed module to a different path in the filesystem. But now that is just part of the drush cr
process.)
LDAP is not actually a module per se, it's a project that contains all of its "submodules."
It's very odd that the maintainer added an ldap.info.yml
file but there is no ldap.module
file.
I wish I could just uninstall it, but LDAP auth is a client requirement. They are locking down the site logins unless users are in their Active Directory Domain.
The weird thing is ... it might still work, since all the submodules are installed. (Can't test in my local; deploy environment not set up yet.)
Comparing my new dev branch with the production site (before composerization and the downgrade from beta7 to beta3) I have verified that all the same LDAP submodules are installed:
$ lando drush pml |grep ldap
Lightweight Directory Access Protocol LDAP Authentication (ldap_authentication) Enabled 8.x-3.0-beta3
Lightweight Directory Access Protocol LDAP Authorization Provider (ldap_authorization) Enabled 8.x-3.0-beta3
Lightweight Directory Access Protocol LDAP Help (ldap_help) Enabled 8.x-3.0-beta3
Lightweight Directory Access Protocol LDAP Query (ldap_query) Enabled 8.x-3.0-beta3
Lightweight Directory Access Protocol LDAP Servers (ldap_servers) Enabled 8.x-3.0-beta3
Lightweight Directory Access Protocol LDAP Users (ldap_user) Enabled 8.x-3.0-beta3
How do I proceed to troubleshoot this situation?
Is it safe to manually remove all traces of the LDAP module in the database, since all the submodules seem to be installed and enabled?
I've written about this in the LDAP project's issue queue, but I have no responses after a week so I brought it here.
I'm grateful in advance for any guidance.
UPDATE (2020-03-01):
The package maintainer has responded to the Drupal.org thread, suggesting that I should run the following command:
composer update drupal/ldap drupal/ldap_authentication drupal/ldap_authorization drupal/ldap_servers drupal/ldap_query drupal/ldap_user --with-dependencies
This command executes without error, but claims there is "nothing to install or update":
Finished: success: 12, skipped: 0, failure: 0, total: 12
Package "drupal/ldap_authentication" listed for update is not installed. Ignoring.
Package "drupal/ldap_authorization" listed for update is not installed. Ignoring.
Package "drupal/ldap_servers" listed for update is not installed. Ignoring.
Package "drupal/ldap_query" listed for update is not installed. Ignoring.
Package "drupal/ldap_user" listed for update is not installed. Ignoring.
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
After running this command, drush pml
shows that I still have beta3
installed, so this remains unresolved.