Hello, I have recently migrated a site from Drupal 7 and the last step was to try to install civicrm. This module worked fine and was updated before migration.

But when I installed civicrm, running setup, the process returns that installation was succesfull but clean URLs doesn't work only in civicrm pages.

Civicrm link appears in admin bar but clicking gives page not found error. If I add manually '?q=' at the beginning of links they work, but buttons does not, and civicrm admin bar isn't showing.

I tried to define Clean URLs variables = 1 on civicrm.settings.php and settings.php without success. Clean URLs work in all links of the backdrop site.

I think I'm bringing a mistake or misconfiguration from Drupal 7 migration but I don't known how to resolve this.

I would appreciate any advice.

Andrés

Accepted answer

Hello,

searching in the apache2 error.log I saw:

[Tue Jan 26 14:15:46.726049 2021] [negotiation:error] [pid 16679] [client 127.0.0.1:44192] AH00687: Negotiation: discovered file(s) matching request: /home/(...)backdrop/civicrm (None could be negotiated)., referer: http://(...)backdrop/?q=civicrm&reset=1

Then I searched the web and found this post that explains that in the line

Options Indexes FollowSymLinks MultiViews

of my virtual host configuration (file /etc/apache2/sites-enabled/backdrop.conf) I should delete the word "MultiViews".

I restarted apache and civicrm links started working.

Thanks,

Andrés

Comments

Can you double check your resource urls and directory settings in civicrm? And also the path in civicrm.settings.php.

Hello, I double checked resource urls and directory settings. I made a new migration of Drupal 7 site, but clean URLs doesn't work. I disabled clean URLs and I rebuilt menus, updated resources urls, but I if try to enable Clean URLs the problem persist.

I'm working locally, and I installed backdrop in another virtual host, and installed civicrm. I see the same behaviour, with a totally new and empty site: civicrm installs succesfully but clean urls doesn't work only in civicrm pages. I think I have a missconfiguration of the server, or the backdrop civicrm installer overrides some settings.

My drupal 7 sites works fine even clean urls on civicrm pages.

I give a copy of the status report.

Thank you in advance!

Andrés

 

Status report

Display error messages

Enabled less

Backdrop CMS provides the ability to display error messages, which can be useful while a site is in development. Do not forget to disable the display of errors when you have finished testing and this site goes live.

Warning

Trusted Host Setting

Not configured less

The trusted_host_patterns setting is not configured in settings.php. It is highly recommended that you configure this to protect your site. See Protecting against HTTP HOST Header attacks for more information.

Info

Backdrop CMS

1.18.0

Info

Backdrop CMS core update status

No update data available more

Info

CAPTCHA

Already 26784 blocked form submissions

Info

MySQL Database

MySQL, MariaDB, or equivalent version 5.5.5-10.3.27-MariaDB-0+deb10u1

Info

MySQL Database 4-byte UTF-8 support

Not enabled more

Info

PHP

Version: 7.3.19-1~deb10u1 (PHP information)

Info

Web server

Apache/2.4.38 (Debian)

OK

Access to update.php

Protected

OK

Backdrop CMS update notifications

Enabled

OK

CiviCRM

5.33.2

OK

Cron maintenance tasks

Last run 1 hour 3 min ago (Run cron manually) more

OK

cURL

Enabled

OK

Database updates

Up to date

OK

File system

Writable (public download method)

OK

GD library rotate and desaturate effects

2.2.5

OK

jQuery

jQuery version 1.12.4 / jQuery UI version 1.12.1

OK

Node Access Permissions

Disabled (Rebuild permissions) more

OK

PHP DOMDocument class

Enabled

OK

PHP extensions

Enabled: date, dom, filter, gd, hash, json, pcre, pdo, session, SimpleXML, SPL, xml

OK

PHP memory limit

128M

OK

PHP open_basedir restriction

Disabled

OK

PHP register globals

Disabled

OK

Unicode library

PHP Mbstring Extension

OK

Upload progress

Client-side upload progress enabled

Are you on localhost with the Backdrop installation compared to the Drupal site, or both on the same server? Are any symlink directories being used for the installation?

I configured virtual hosts for each site. There are only a symlink between files/ and sites/default/files in the backdrop site.

Hello,

searching in the apache2 error.log I saw:

[Tue Jan 26 14:15:46.726049 2021] [negotiation:error] [pid 16679] [client 127.0.0.1:44192] AH00687: Negotiation: discovered file(s) matching request: /home/(...)backdrop/civicrm (None could be negotiated)., referer: http://(...)backdrop/?q=civicrm&reset=1

Then I searched the web and found this post that explains that in the line

Options Indexes FollowSymLinks MultiViews

of my virtual host configuration (file /etc/apache2/sites-enabled/backdrop.conf) I should delete the word "MultiViews".

I restarted apache and civicrm links started working.

Thanks,

Andrés

Great -- thanks for following up and posting the answer for others!

I am having this problem with Lando and I'm not sure how to edit by virtual host config in Lando (or if that is my problem in this case).

I copied an existing CiviCRM site onto my laptop using Lando as the dev environment. The site is working and CiviCRM data is showing up on the front page (through views). So, I think that the database must be connected. 

But, every CiviCRM page generates a 404 error. 

OK, I solved my problem. I was using a lando.yml file from @herb as found here:

https://forum.backdropcms.org/comment/2766#comment-2766

I had removed the line about using Nginx, because I don't usually use nginx for my lando sites. However, in looking closer @herb specifically mentioned using nginx because of problems with apache. 

Once I added the nginx back and did "lando rebuild" - my site is working fine. 

Just saw someone reference this thread and saw the alternative solution mentioned in Stack Exchange which linked to here. Using Nginx certainly does work if encountering the problem in Lando, though I just tried out the SE suggestion of adding to the site's .htaccess file:

Options -MultiViews

(which removes MultiViews with the minus sign in front) and that appears to work as well.

It's still not clear why it's a Backdrop-only issue with CiviCRM. Perhaps there's a difference in the .htaccess compared to Drupal 10+ which is causing it. Something other than MultiViews which isn't mentioned in the Drupal 10 .htaccess file.