themetman's picture

I have a fresh install of Gentoo Linux which I have used for nearly 20 years now. I have been using Drupal 7 and 8 for about 6 years, and have converted to Backdrop last year. I use Drush and the command line mostly.

I have this error when clicking the 'Save and Continue' button on the first page which I cannot find on the Forum at all.

Error: Call to a member function name() on boolean in install_settings_form() (line 984 of /PATH/TO/backdrop.local/core/includes/install.core.inc). 

I have created a fresh install of Backdrop, so have downloaded the zip file and extracted into backdrop.local folder, created the Virtual Host as usual and gone to html://backdrop.local in the browser. Select Language as English, and click the 'Save and Continue' button. If I use Drush (my preferred method) I have the same error.

There are no errors in the Apache Logs, and the access log shows no problems:

127.0.0.1 - - [04/Mar/2020:09:06:55 +0000] "POST /core/install.php HTTP/1.1" 302 - "http://backdrop.local/core/install.php" "Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
127.0.0.1 - - [04/Mar/2020:09:06:55 +0000] "GET /core/install.php?langcode=en HTTP/1.1" 302 - "http://backdrop.local/core/install.php" "Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
127.0.0.1 - - [04/Mar/2020:09:06:55 +0000] "GET /core/install.php?langcode=en&profile=standard HTTP/1.1" 500 3137 "http://backdrop.local/core/install.php" "Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"

Help would be appreciated.

Comments

BWPanda's picture

The Call to a member function name() on boolean error seems to refer to this line in install_settings_form():

$form['driver']['#options']['mysql'] = $driver->name();

It's trying to call the name() function, but it's being called on a boolean rather than an object. This means that $driver should be an object, but is a boolean instead. $driver is set just above that line with:

$driver = backdrop_load_database_driver();

backdrop_load_database_driver() is therefore returning FALSE in your case which implies that there's an issue with your database. What database are you using? Note that only MySQL/MariaDB are supported in Backdrop, unlike Drupal: https://backdropcms.org/requirements

themetman's picture

@BWPanda I have just been looking at that line in the install.core.inc file

I think I have spotted the problem, I have not compiled php with mysql, only mysqli, so I am going to recompile with mysql USE Flag and I think that will cure it.

I will let you know later how I get on. I have a problem with a module compiling which I will have to fix first.

themetman's picture

BINGO!!!! Anyway I fixed my own problem.

Sorry to bother you all.