1

I've been working on moving my elderly Drupal 7 site over to Backdrop CMS, and the last step is getting CiviCRM installed and working on the new site with my existing database (using the instructions here).

Edit: To clarify, Civi is being installed on a Backdrop site converted from Drupal 7, but the D7 Civi database is not being loaded (yet). This should be the equivalent of a fresh install.

Short version: Civi module installs properly in Backdrop, and gives the expected messsage

CiviCRM is almost ready. You must configure CiviCRM for it to work.

That message links here: https://[mysite.org]/civicrm/setup

Clicking that link does not bring me to the installer/configuration process (specifying database, db user, etc) but instead goes to a page which looks like this:

Generic confirmation of CiviCRM install

The link to the configuration checklist simply displays this same page. The "review these permission" link brings you to the Backdrop permissions page, but CiviCRM is not on the list. No database has been created, and no civicrm.settings.php file has been created. I find no errors in any of the logs, even though I have errors turned on in Backdrop.

I have tried this with a couple versions of CiviCRM (see below), with two PHP versions, and both in a Docker container using ddev and on a LAMP server, with identical results each time.

I've tried a number of things, with only partial success. I was able to run the installation with the utility cv, which appeared to work partially (though I was unable to change any Civi settings). However, when I used it to upgrade the database to the latest version, cv reported success but I was unable to access any Civi pages (error "Warning: session_start(): Failed to read session data: user..."). I'm not sure what to try next, or what is going wrong.

Any advice would be appreciated. Thank you!

  • CiviCRM: 5.76.2 (same as Drupal) and 5.78.2
  • Backdrop CMS 1.29.1
  • PHP 7.4.33 (Docker and server) and 8.3.12 (server)
  • MariaDB (10.5.22 on the server)
  • Docker container with nginx web server, and LAMP server running on AlmaLinux 9
6
  • 1
    I've converted a few sites to Backdrop recently, but I have not gone the route of upgrading the D7 database to Backdrop - it did some weird things esp. re themes/layouts. Instead I installed Backdrop, then Civi and then dropped all the Civi tables and imported a D7 backup. Then I imported users. The only problem is that doesn't deal with roles & permissions, but that's not a big deal. That obviously doesn't help if you have webforms or other stuff like Views but it's worked very well, so if you don't have those dependencies I recommend it.
    – Andy Clark
    Commented Oct 19 at 7:38
  • Thanks. Does that mean you imported the D7 Civi database in pieces? When I tried a test on a completely clean Backdrop site, I was able to get Civi to load correctly, but had some issues when trying to restore the existing database from D7. Turned out Civi uses lots of triggers, and the old database user name was hard-coded into the sql dump I was using. (I use Virtualmin to manage the sites, and it does not offer a choice to ignore "definers" in the dump, even if I'd known to do it. ;) ) But still stuck on the converted site. Commented Oct 19 at 18:18
  • Can you search replace the definers for the old MySQL username with the new, before importing the CiviCRM database?
    – Laryn
    Commented Oct 19 at 21:24
  • Yes, I did just that in BBEdit. Based on posts I had read, I replaced the old username with CURRENT_USER, which seemed to work. But again, this was on a clean Backdrop site locally which had not been converted from Drupal. Commented Oct 20 at 2:29
  • There are a number of suggestions on dealing with triggers in case that is a solution for you eg civicrm.stackexchange.com/questions/619/…
    – petednz - fuzion
    Commented Oct 20 at 18:18

1 Answer 1

2

I think the answer is here: CiviCRM installation (Backdrop) incomplete?

After getting the Backdrop/CiviCRM installation working on the local Docker container site (I think by fixing some SSL issues), I moved the codebase and databases to the remote server.

At that point, I was getting empty civi pages as shown in the question above, along with a number of behind the scenes errors. I decided to try the solution in the post above, because the main change was moving from nginx (Docker) to Apache (LAMP server). After adding Options -MultiViews to the .htaccess file on the remote server, everything started working.

While I did not retry a Civi installation from scratch (I ended up moving a working codebase/database to a new server), I am willing to bet that this would have solved my initial problem as well.

It's a relief, but also kind of frustrating. I hope this saves others from many hours of fruitless debugging!

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.