We’ve been running Xibo 2.0.3 on a Windows-based Web Server for a while now and everything was working perfectly.
However, our Security Team has unfortunately noticed that the version of PHP we’re using is quite old and they’re pressing us to update it to improve the security of the system.
So, with this in mind i’ve tried to do an upgrade to version 7.0.8 of PHP which I believe should be supported with the version of Xibo we’re running.
It seems that the Xibo application itself is working fine, but when I came to try to remove the old version I found that the ‘Xibo XMR Service’ was still pointing to the old version. I tried up update this to point to the PHP.EXE for v7.0.8, but it seems there is some sort of issue launching the xmr.phar file with this version. When I try doing it from in a command prompt I get this:
C:\Program Files (x86)\PHP\v7.0.8>php d:\PHP_FILES\vendor\bin\xmr.phar [2020-03-25 00:38:57] xmr.INFO: Starting up - listening for CMS on tcp://127.0.0.1:50001. [] []
Running the same file using the old version yields this result:
[2020-03-25 00:46:42] xmr.INFO: Starting up - listening for CMS on tcp://127.0.0.1:50001. [] []
[2020-03-25 00:46:42] xmr.INFO: Bind to tcp://193.9.203.46:9505 for Publish. [] []
[2020-03-25 00:46:42] xmr.INFO: Bind to tcp://193.9.203.46:50002 for Publish. [] []
[2020-03-25 00:46:42] xmr.DEBUG: Adding a queue processor for every 5 seconds [] []
Is anyone able to provide any insight into why this issue might be happening? I found a github repo for the xmr.phar file, but it looks like i’m running the latest version (I downloaded it and used FC /B to compare and the files were identical).
Thanks Dan. I actually tried doing an upgrade to a newer version of Xibo first but then I hit a different issue.
In that case I found that when I loaded a new version of Xibo Player and used the connect button I got an error. I had a bit of a dig into it and it looked like the system was throwing a SOAP error when the client was making a POST request to register the computer.
My ideal aim is to get both Xibo and PHP up to the most recent release possible, so i’m only too happy to have another go at the Xibo upgrade, and perhaps I can just post in here with the issues I hit to see if we can overcome them or get them logged as bugs in the git repo.
I have just upraded to version 2.3.2 and have a couple of issues i’d appreciate help with.
Post upgrade I find that all the graphs on the opening dashboard don’t render. If I click on ‘More Statistics’ in the Bandwidth Usage pane (top left) then another window opens where the graphs look ok.
If I go to an instance of Xibo Player and click the connect button I get an error saying ‘syntax error, unexpected ‘?’’.
I can see from the IIS logs that the request being POSTed is this:
Right away the ‘Report Fault’ flags up the issue with only being on PHP 5.6.31 and the required is a minimum of 7.0.8. I’ll get the PHP upgraded over the weekend.
Ok, so i’ve upgraded to the latest version of Xibo and have now also upgraded PHP to v7.0.8.
I am unfortunately still having issues with the Xibo XMR Service. I have modified the configuration to point to to new version of PHP but the service fails to start. If I try to run the PHAR file using this command:
[2020-03-30 13:24:52] xmr.INFO: Starting up - listening for CMS on tcp://127.0.0.1:50001. [] []
I have made sure that the previously used config.json is copied across but that doesn’t seem to have any impact. I have also made sure that the php_zmq.dll file got transferred over from the old version of PHP to the new one. The extension is also enabled in the PHP config.
Has anyone got any bright ideas please as to why the .phar file fails to launch fully?
[30-Mar-2020 10:35:11 UTC] PHP Warning: PHP Startup: zmq: Unable to initialize module
Module compiled with module API=20131226
PHP compiled with module API=20151012
These options need to match
in Unknown on line 0
[30-Mar-2020 13:35:11 Europe/Minsk] PHP Fatal error: Uncaught Error: Class ‘ZMQContext’ not found in phar://D:/PHP_FILES/vendor/bin/xmr.phar/vendor/react/zmq/src/React/ZMQ/Context.php:15
Stack trace: #0 phar://D:/PHP_FILES/vendor/bin/xmr.phar/index.php(75): React\ZMQ\Context->__construct(Object(React\EventLoop\StreamSelectLoop)) #1 D:\PHP_FILES\vendor\bin\xmr.phar(10): require(‘phar://D:/PHP_F…’) #2 {main}
thrown in phar://D:/PHP_FILES/vendor/bin/xmr.phar/vendor/react/zmq/src/React/ZMQ/Context.php on line 15
I had originally just copied the dll from the old version of PHP but maybe this isn’t possible.
I’ll continue trying to squash this error but if anyone has any help they can offer then i’d appreciate it.
Found a version of php_zmq.dll that is file version 7.0.2. Put that in place and now get a different error.
[30-Mar-2020 10:43:45 UTC] PHP Warning: PHP Startup: Unable to load dynamic library ‘C:\Program Files (x86)\PHP\v7.0.8\ext\php_zmq.dll’ - %1 is not a valid Win32 application.
in Unknown on line 0
[30-Mar-2020 13:43:45 Europe/Minsk] PHP Fatal error: Uncaught Error: Class ‘ZMQContext’ not found in phar://D:/PHP_FILES/vendor/bin/xmr.phar/vendor/react/zmq/src/React/ZMQ/Context.php:15
Stack trace: #0 phar://D:/PHP_FILES/vendor/bin/xmr.phar/index.php(75): React\ZMQ\Context->__construct(Object(React\EventLoop\StreamSelectLoop)) #1 D:\PHP_FILES\vendor\bin\xmr.phar(10): require(‘phar://D:/PHP_F…’) #2 {main}
thrown in phar://D:/PHP_FILES/vendor/bin/xmr.phar/vendor/react/zmq/src/React/ZMQ/Context.php on line 15
Ok, so we now have both Xibo and PHP up to a later revision.
Only issue still remaining is that the main dashboard still doesn’t function. I have tried the obvious stuff (clearing the browser cache, etc.) but still no luck.
Not only are the graphs missing but the count for things like the number of displays (top left) has a value of 0. The library size, uers and now showing values are all correct though. Using the report fault button causes the tests to be run, but they all come back as passing.