Recent Install no longer queries database for user credentials, login fails

SuiteCRM 8.2.1 installed roughly 2 months ago. Initially worked with minor issues of little consequence. Two weeks ago, I was no longer able to login to SuiteCRM with any credentials. Checked production log, but no errors since a few days prior. Also ran TCPDUMP for port 3306 on the local SuiteCRM server during login attempts, but no traffic was observed. Verified that .env.local shows my database information:

DATABASE_URL="mysql://suitecrm:<PASSWORD>@127.0.0.1:3306/suitecrm"

When I go to the SuiteCRM server from my web browser, I am presented with the login screen. I put in my username and password, then get an error popup, “Login credentials incorrect, please try again.” This occurs no matter what credentials I enter.

This seems to be some disconnect between the application and the process that queries MariaDB, but I’m not certain of where to look. I also didn’t see any PHP errors that seemed to be relevant to the login process as well.

I have also attempted disabling SELinux and my firewall, but there were no different results.

Can anyone give me any ideas for how to troubleshoot this further?

Maybe check your session.save_path in php.ini. That directory needs to exist and be writeable by the web server.

And check both logs for any other messages at the time of the login attempts.

That field was commented out, but I did uncomment it, created the relevant directory, then gave the web server permission to it. There was no change. Also, I have php-ini configured to log errors, but it has not created the relevant log file of “/var/log/php_errors.log”. I had configured that when I initially installed the server. I would expect php errors to show in the prod.log file, as they used to, but no logging has happened in that file since 1/10, which I find suspicious.

I’m starting to wonder if php just isn’t working locally on the server, as I just enabled display logging, but nothing arose on the webpage.

I also find that lack of logging strange, you should look into it.

About your DATABASE_URL, I just noticed something. Mine is

DATABASE_URL="mysql://myuser:mypassword@localhost:3306/suitecrm8"

Maybe you can try with localhost instead of 127.0.0.1, I read somewhere that PHP treats both differently, even if they’re supposed to designate the same thing.

I did try changing to localhost, but there was no change in the behavior. I’ve done everything I can find to enable logging as well, but there has been no change in that at all.

Are you aware that you need to restart the web server after any changes to php.ini?

You can see your effective settings in Admin / Diagnostics / phpinfo

Yes, I am aware. I did restart nginx and php-fpm. I also rebooted the server. There was no change in behavior.

Also, I cannot log in, so I can’t view the settings you mentioned.

You can also create a simple file in your web root, with this:

<?php
    phpinfo();
?> 

Save it as phpinfo.php, Give it proper permissions and call it from the browser:

your.site.com/phpinfo.php

You should see all your settings.

I wouldn’t consider this a database problem until you have some further proof of that. You could still be having session problems, or missing PHP modules (in case there was a PHP upgrade). The phpinfo will help you sort these things out, especially the logging, which is essential to avoid troubleshooting blindly.

@pgr, thank you! I don’t consider this a database issue, as I don’t even see the database being queried during the login attempts. I did as you suggested, and I see that logging is enabled for /var/log/php_errors.log, but that file does not exist. Does it matter that I’m using php-fpm? There is an error log at /var/log/php-fpm/error.log, but it only seems to have information about the status of php-fpm, and doesn’t show any php execution errors.

I do see mysqli is enabled, and I don’t see anything that looks out of place, but I don’t consider myself an expert in this area. Shall I post the output of phpinfo()?

I just created a php file to test connection to the database from php, and that was successful. I just don’t understand why the login page isn’t making that connection attempt.