Trying to create a Client Inventory Report, SEPM abruptly answers with an HTTP 500 error. In the Apache log (<SEPM>\apache\logs\reporting.logs) there were some error messages hinting at PHP errors:
[21-Nov-2013 22:45:04 UTC] PHP Fatal error: Call-time pass-by-reference has been removed in C:\Programme\Symantec\Symantec Endpoint Protection Manager\Inetpub\Reporting\Inventory\inventoryreport6.php on line 9
The suspicious line 9 in inventoryreport6.php:
require("Include/common/connectdb.php"); connectnav(&$conn_id);
I'm not a PHP guy, however in the function call the culprit seemed to be the ampersand (&) in front of "$conn_id". So I removed the ampersand in line 9. Now PHP was complaining about line 909 in the same file. There I removed the ampersand as well, and then the report worked fine.
Other php files in the Reporting\Inventory folder don't use the ampersand syntax.
OS: Windows Server 2003 SP2
SEPM 12.1.4 (upgraded from 12.1.3)
IE 7
In 12.1.3 (different testing machine, same OS) the client inventory report worked fine with ampersand syntax. After some googling, I found that this syntax for call-by-reference function calls is deprecated. Is it possible that 12.1.4 is using a newer PHP version that does not accept the ampersand method anymore? And is it possible that the ampersands in Client inventory php file are just artefacts from older versions?