Fix Drupal 7 if there are ctools functions missing, but the module is in the web root in modules

php
drupal
mysql
skitamix
Tags: #<Tag:0x00007f0caf091808> #<Tag:0x00007f0caf0916c8> #<Tag:0x00007f0caf091560> #<Tag:0x00007f0caf0913f8>

#1

Drupal broken again after update?

Pre-conditions

  • your ctools functions have not been found
  • the PHP files of the Drupal module reside in the correct folder with correct permissions
  • the files have the correct version
  • the PHP interpreter and the web server are fine (and have been fine prior to the update)

So let’s say the problem is that Drupal doesn’t load the PHP files. How do you fix this without Drush? The solution I found was doing the opposite of this.

Enable the disabled module in the Drupal DB

This is how you do it for MySQL:

mysql> use drupal;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysql> SELECT name,status FROM system WHERE type='module';
...
mysql> SELECT name,status FROM system WHERE type='module' HAVING name='ctools';
+--------+--------+
| name   | status |
+--------+--------+
| ctools |      0 |
+--------+--------+

The fix is:
mysql> UPDATE system SET status='1' WHERE name='ctools';

This was the last time I perform a Drupal update without Drush :wink: I googled a lot of error messages, and found out that the module index went out of sync with the DB during the update. You can only rebuild the Drupal module registry if the dependencies can be resolved.

Avoid this issue, use Drush</h2

Drush is a management tool for Drupal. Since I use Drupal since many years, I am faster building up an installation without it. Or at least I think I am. But for maintaining Drupal, it’s better to use Drush.

There are probably 1 million Google hits how people specifically “solved” dependency resolution errors like this. By reinstalling…