Can't install SuiteCRM 8.1.3 Attempted to call function "opcache_get_status" from the global namespace

I just setup a brand new server running Rocky Linux 8.6 / Plesk and it’s performance with many other FOSS apps has been flawless installing and running Joomla, Wordpress, Magento, etc.

Trying to install SuiteCRM is not smooth and runs into problems.

System:

  • Rocky Linux 8.6 (SELinux Disabled)
  • Apache 2.4.37.47
  • PHP 7.4/8.0/8.1 (Using 8.0 with SuiteCRM FastCGI Mode)
  • MariaDB 10.4.26

1) Web installer can’t connect to database. I made a test PHP file and connected fine with localhost but not 127.0.0.1.

2) The ./bin/console suitecrm:app:install fails with the following error.

20:48:39 CRITICAL [console] Error thrown while running command “suitecrm:app:install”. Message: “Call to undefined function opcache_get_status()” [“exception” => Error { …},“command” => “suitecrm:app:install”,“message” => “Call to undefined function opcache_get_status()”]

In SugarCache.php line 168:

Attempted to call function “opcache_get_status” from the global namespace.

I’ve gone in an enabled opcache in the master php.ini and even for the cli and verified it working, I’ve even done this for the domain account.

I have both php-mysql and mysqli enabled.

What am I doing wrong here?

I followed these instructions flawlessly.

I was only able to install with PHP 7.4 then afterwards turn on PHP 8.0.23, which would not connect to the database during install.

1 Like

This problem is specific to Plesk, they’ve disabled opcache_get_status for some reason.

I think the code will run just fine if you disable the opcache module in PHP 8.0 but you don’t get to use opcache, of course. Note that having it enabled might not mean you were using it, if the php.ini settings weren’t also turned on.

This is were it happens

SuiteCRM/SugarCache.php at master · salesagility/SuiteCRM · GitHub

The definitive fix would be to surround that also with the function_exists check that the other nearby bits of code have. The assumption that the function would exist if the module was enabled doesn’t seem to hold for Plesk servers…