0

I am working with the Drupal multisite functionality. I have been asked to implement the following architecture:

mysite is a Drupal site with several angular pages. mysite/backend is a separate site with a separate user store that mostly acts as a headless Drupal system. For political reasons, it is very important that the users in mysite/backend not be stored in the same database as the users in mysite .

Anyway, from what I have read about Drupal multi-sites, I have taken the following steps.

  1. I started with a working site and performed the following steps to add a second one
  2. Create a symlink, making the /backend a symlink to the web root:

    ln -s backend .
    
  3. Add entries to my sites.php (because with our deployment workflow, the site name cannot always match with the domain name. Also allows us to test with xip.io).

    $sites['mysite.dev'] = 'mysite';
    
    $sites['mysite.dev.backend'] = 'mysite.backend';
    
  4. I created a directory named mysite.backend .

  5. In mysite.backend, I created a directory corresponding to all directories in mysite.
  6. In mysite.backend, I created the following settings.php file:

    $databases = array (
       'default' =>
       array (
         'default' =>
         array (
           'database' => 'XXXXXX',
           'username' => 'XXXXXX',
           'password' => 'XXXXXX',
           'host' => 'localhost',
           'port' => '',
           'driver' => 'mysql',
           'prefix' => '',
         ),
       ),
     );
    
     $update_free_access = FALSE;
     $drupal_hash_salt = 'k_vtgGjzCyq0mp0dsxDk1gILuEs6G5ODP5aJuQsAUuc';
     $base_url = 'http://mysite.dev/backend';  // NO trailing slash!
     ini_set('session.gc_probability', 1);
     ini_set('session.gc_divisor', 100);
     ini_set('session.gc_maxlifetime', 200000);
     ini_set('session.cookie_lifetime', 2000000);
    
  7. I go to /backend/install.php and go through the install process. Everything goes smoothly

  8. I click the link to view the new site, and enter the admin login credentials (for the new site. I made it a point to have separate logins for each site)

My problem is that when I go to the /backend directory of my test site and log in with my credentials, I get the standard authentication error behavior if I login with an invalid username or password, but when I supply the correct credentials, I get redirected to /backend/node, but I see no indication of being logged in. If I try to go to the admin pages, I get an access denied error. I still see the login block. If I click the reset password link, I get a one-time login link in my email, but when I click it, I get a message that says that the link has expired.

Forgive me if this is too verbose or missing details. This seems to be a messy problem. Has anyone run into similar issues with Drupal?

  • I tried the solution at drupal.stackexchange.com/questions/128815/… , but that isn't working. If I go to (siteurl)/backend/?q=user and log in, then I get redirected to (siteurl)/backend/user/1 and see an access denied error. – TMorgan May 22 '15 at 17:47
0

This issue might be a variation of the question about "drupal /?q=user is working but /user not working". So verify if you can use an URL containing ?q=user or ?q=admin. If that gets you going, then probably tuning RewriteBase in your .htaccess (as described in the accepted answer of that question) should help.

It might be worth trying to further enhance your .htaccess file, by adding a line after that existing RewriteBase, which looks like so:

RewriteRule . index.php [L]

For more details on the above line, refer to the (accepted) answer in this question on StackOverflow.

Another option for debugging is to retry using another browser. If via that browser you are able to login, then it's probably a cookie problem (in your original browser).

0

I solved the problem by deleting my cookies and trying again. After doing so, I was not able to reproduce the issue. I tried logging in to the front end and then logging in to the backend (I was able to log into both sections as different users), and I tried it in the reverse order (logging into the /backend first and then the front end). In both cases, I was able to log in correctly.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.