PHP and MySQL upgrades can break a previously working ActiveCollab because of version incompatibility, as well as extension and runtime configuration changes.
Prior to upgrading PHP and MySQL, check if your version of ActiveCollab supports it. Check out the compatibility table on the System Requirements page for details.
Checking Web Environment
There are two ways of checking whether your environment meets ActiveCollab's requirements.
1. Run the probe.php script to confirm that the web environment is working correctly:
2. Checking Command Line Environment
Before and after the upgrade, you should run command line environment check, to confirm that your command line environment was correctly upgraded or can it be upgraded.
Using Terminal or command prompt application, go to the directory where ActiveCollab is installed on your server and run:
- php tasks/activecollab-cli.php check_environment
If this tool reports any errors, please correct them.
Email Replies are Not Imported
This is most probably due to a missing IMAP extension. To check if IMAP extension is installed, please run this command:
This is most probably due to a missing IMAP extension. To check if IMAP extension is installed, please run this command:
- php -m | grep imap
If IMAP extension is found, it will be listed. If not, this command will just output a blank line.
Note
It is important to use command line to check if IMAP extension is installed, not phpinfo(). Incoming mail is always imported from cron jobs, and they run in command line environment. phpinfo() displays the configuration of your web environment. It can lead you to an incorrect conclusions, because web and command line environment are different and can be differently configured.
MySQLi is Broken After PHP Upgrade
After PHP upgrade you may experience a broken ActiveCollab, and find this error in server responses or in log files: Call to a member function execute() on null in .../activecollab/6.X.Y/angie/classes/database/DB.class.php.
What this error means is that ActiveCollab can't connect to the database, despite having correct connection parameters in config/config.php.
This is usually due to MySQLi extension configuration, which may be disabled or reset to default configuration after you have upgraded PHP.
Check if MySQLi is Installed
The first step is to check if MySQLi extension is installed. You can do that by visiting a phpinfo() page that you made, or by running this command:
- php -m | grep mysqli
If MySQLi extension is found, it will be listed. If not, this command will just output a blank line. You can yse php -m to get the list of all enabled extensions.
Check MySQLi Runtime Configuration
The next step is to check MySQLi runtime configuration. You can get all settings on phpinfo() page, or by running this command:
- php -i | grep mysqli
It will list all lines from PHP runtime configuration that have а mention of mysqli. Check if all settings are OK. Pay close attention of the default socket option, because it can result in a functional MySQLi extension that can't connect to the MySQL server. Consult the PHP and MySQL installation guide that you used to set up the environment to see how to correctly set up the mysql.sock.
MySQL Upgrade
If you did the full platform refresh, and upgraded both PHP and MySQL in the same go, make sure that all MySQL upgrade steps are completed.
Check the upgrade guide that you followed through, and verify that all steps have been completed. Information about mysql_upgrade command should be part of that guide. If it's not, you can find more information in the official documentation. mysql_upgrade command will check all database tables, and make sure that they are upgraded. It will also refresh system tables that are needed for the normal operation of the MySQL server.