Xibo install on vm of server 2016

Hi all

Does anyone have a detailed guide of how to install xibo without docker




How do you install php

I’m honestly not sure. I just assumed the documentation might help you.

The problem is the documentation before was great and now isn’t as good

It’s been two years since I setup our server, so I don’t remember the procedure, but PHP can be installed on Windows, along with the Apache web server and MariaDB Xibo needs, using the XAMPP suite.

Xibo 2.x Software Installation
**On **
Microsoft Server 2016

This guide will explain every step for installing Xibo 2.x on IIS 10 on WINDOWS SERVER 2016 Standard 64Bit. Reference Xibo document from site:
Xibo Server requirements:
⦁ MySQL 5.6 or 5.7 (only)
⦁ CGI Support for IIS
⦁ Visual C++ Redistributable (VC15) 32 & 64bit
⦁ A web server (iis)
⦁ PHP 7.2 (VC15) 64bit “Non Thread Safe”
⦁ PHP-CLI 7.2+
⦁ PHP PHAR support
⦁ ZeroMQ bindings for PHP 7.2 (VC15)
⦁ URL Rewriting
⦁ Virtual Hosts or dedicated web server (modify DocumentRoot)
⦁ CRON/Scheduled Tasks https://xibo.org.uk/docs/setup/xtr-routine-tasks

Install CGI for IIS support from Server Roles:

Install MYSQL 5.6
Mysql 5.6 download from community and install

  1. Run the mysql-installer-community- installer.

  2. After starting the installation, you may be presented with a message about installing .NET Framework 4.0

  3. If so, install it from here http://go.microsoft.com/fwlink/?LinkId=181012

  4. When you make it to the welcome screen, select ‘Install MySQL Products’

  5. Accept the license.

  6. Their next window is poorly designed it looks like two selectable radio buttons, but they aren’t. Just click ‘Execute’ and the installer will make sure it has the latest data that it needs.

  7. Next you will select the type of installation. I used SERVER type role.

You will then be presented with a dependency checklist of software that will be installed. Select ‘Execute’
7. The MySQL software installation list will be presented to you. Just click ‘Execute’
8. Initial Configuration of ‘MySQL Server 5.6.35′

  1. The default values are okay. Check ‘Show Advanced Options’

  2. Config Type: ‘Development Machine’ is okay

  3. ‘Enable TCP/IP Networking’ is checked

  4. Check ‘Show Advanced Options’

  5. click ‘Next’

  6. Account configuration

  7. Set the root password (Make sure it is something you remember!)

  8. You don’t need to create any user accounts right now.

  9. Click ‘Next’

  10. Windows service details

  11. Pick a windows service name ‘MySQL56′ is okay

  12. Make sure ‘run windows service as a standard system account’ is checked.

  13. Logging options

  14. Use the default options.

  15. Finish configuration

Install PHP 7.2.x (Non Thread Safe) 64bit
Download and manually install PHP 7.2.20:

NOTE: If you are using PHP as FastCGI with IIS you should use the Non-Thread Safe (NTS) versions of PHP.

Get PHP 7.2.20 “Non threat safe” 64bit zip package
Click on link http://windows.php.net/download#php-7.0

Create directory for your Library Files “C:\PHP” - And Give Permission for IUSR and IIS_IUSR

Unzip PHP7.2 files into “C:\PHP” directory
Copy “C:\PHP\php.ini-production” to “C:\PHP\php.ini”

Edit Configuration file: C:\PHP\php.ini and change basic PHP settings for CGI support

Fastcgi.impersonate = 1
Cgi.fix_pathinfo = 0
Cgi.force_redirect = 0
Extension_dir = “ext”
Error_log = C:\PHP\php_errors.log
Date.timezone = “"America/New_York”

In [PHP] section: Uncomment extensions to support SQL requirements



Change settings to support XIBO requirements

SMTP = exchange.website.ca
smtp_port = 25
sendmail_from =xibo@website.ca
mail.add_x_header = On

Now save the file and close notepad

Set server PATH environmental variable

Control Panel->System->System Properties->Environment Variable->System Variables
Add “C:\PHP”

Install MS Web Platform Installer

Install Microsoft Web Platform Installer from Microsoft downloads site

Download and install x64 installer
After installation is complete - Launch the new application
Click on the “Products” tab
Add the following Products:
URL Rewrite 2.1
Click Finish & Exit

run the command: iisreset

Install Xibo PHP files and Configure IIS v10

Extract XIBO 2.x files into Server 2016 dedicated Folders

Launch “Files and Folders” and perform the following commands
In this Manual web site is: Default Web Site you can use which you want in IIS
Extract all Xibo CMS Files to C:\XIBO_CMS - And Give “Full Control” Permission for IUSR and IIS_IUSR
Create directory for your Library Files C:\XIBO_LIB - And Give “Full Control” Permission for IUSR and IIS_IUSR

Configure IIS Settings:
Launch IIS Manager
-> Handler Mappings

Add Module Mapping
· Request path: *.php
· Module: FastCgiModule
· Executable: C:\PHP\php-cgi.exe
· Name: FastCGI

To prevent “HTTP 405 error” when try to save a setting in portal

Click on "Request Restrictions"
Select Verbs tab and choose "All verbs".

save your changes

-> Default Web Site -> Basic Settings-Change Physical path to your XiboFiles folder in this manual C:\XIBO_CMS\web

-> Default Web Site-> Request Filtering
Edit Feature Settings…
Set Maximum Query String (Bytes) to 4096 (otherwise you will get datatables.ajax error)
Set Maximum allowed content length (Bytes) (3000000 to 30000000) (Add one more zero)

-> Default Web Site->URLRewrite
Import Rules
Browse the Configuration files and import the .htaccess file in C:\XIBO_CMS\web
Click “Import”
(remove the problem line and import by placing a “#” comment in the front of the code)
Click on “Apply” to make changes

-> Default Web Site->MimeTypes -> Add (.woff = font/x-woff ) If missing
-> Default Web Site-> MimeTypes -> Add (.woff2 = font/woff2 ) If missing

-> Default Web Site->Default Document
Add -> “index.php” (if missing from list)

Move to the top of the list “index.php” otherwise you will get HTTP 500 error when start.
· install.php

Test PHP installation

To test if PHP setting or working launch MS Powershell

Type “cmd” at the PS prompt
Type “echo %PATH%” to view current PATH environmental variable
If the “C:\PHP” path is not in the list

Control Panel->System->System Properties->Environment Variable->System Variables
Add it to the “PATH” variable under

reboot the server

Launch MS Powershell (again) if the server required rebooting

Type “php –info”
If no exporting of data is displayed, confirm that Visual C++ Redistributable (VC15) 32 & 64bit files were installed.
· Execute the program “C:\PHP\php-win.exe”
· If “VCRUNTIME140.dll” is missing error window pops up you are missing the> C++

Redistribution files. http://stackoverflow.com/questions/30811668/php7-missing-vcruntime140-dll
If everything passes, exit Powershell and create the following “info.php” text file.
< ?php

Save the file to your default web page “C:\PHP_FILES\web\info.php”

Type “localhost\test.php” in your webpage URL
If you are presented with the PHP configuration page you successfully installed PHP

Install ZeroMq

Confirm the following setting on your PHP information page are reflecting information below:
· PHP version (should be at 7.2.20)
· Architecture (should be x64)
· Thread Safety (should be disabled)

Confirm the version of Microsoft Visual C++ Runtimes (both 32 and 64bit)
Microsoft Visual C++ 2017 equates to (VC15)

Download zero mq package from https://windows.php.net/downloads/pecl/releases/zmq/

Release 1.1.3 = PHP Version 7.0.x – 7.2.x
TS = Thread Save
NTS = None Thread Save


copy “php_zmq.dll” to your ext folder in PHP installation (ex. C:\PHP\ext)
copy “libzmq.dll” to your PHP installation folder (ex. C:\PHP)

If your package is wrong you could get error. You can check from Windows Event Viewer-Application Logs (PHP Warning: PHP Startup: Unable to load dynamic library ‘C:\PHP\ext\php_zmq.dll’ - The specified module could not be found.)

Modify php.ini

Edit Configuration file: C:\PHP\php.ini and change basic PHP settings for ZMQ support
Under the Dynamic Extensions section of PHP.ini


Copy from C:\XIBO_CMS\vendor\xibosignage\xibo-xmr
or Create new file “config.json”
as follows: (Note: change “yourip” to the actual server IP xx.xx.xx.xx)

“listenOn”: “tcp://”,
“pubOn”: [“tcp://yourip:9505”, “tcp://yourip:50002”],
“debug”: true

Copy the file in to C:\XIBO_CMS\vendor\bin folder.

In same folder open command prompt (Pressing Shift and right mouse key and select Open Command prompt from here)

run the command: iisreset
run the command: php xmr.phar

You will get debug console with information on xmr events

If everything is correct you will get a screen like this:

C:\YDSPHP\vendor\bin>php xmr.phar
[2017-05-04 22:13:19] xmr.INFO: Starting up - listening for CMS on tcp:// [] []
[2017-05-04 22:13:19] xmr.INFO: Bind to tcp://yourip:9505 for Publish. [] []
[2017-05-04 22:13:19] xmr.INFO: Bind to tcp://yourip:50002 for Publish. [] []
[2017-05-04 22:13:49] xmr.DEBUG: Heartbeat… [] []
[2017-05-04 22:14:19] xmr.DEBUG: Heartbeat… [] []
[2017-05-04 22:14:49] xmr.DEBUG: Heartbeat… [] []
[2017-05-04 22:15:19] xmr.DEBUG: Heartbeat… [] []

Note: Dont forget to run “php xmr.phar” command when you restart your server

Xibo 2.0 installation

Open Internet Explorer and type the following URL:


Check that all the prerequisites are checked

Follow the POST XIBO installation steps after completing the installation

make sure you also change these settings

Auto start XMR-Service on startup

Open notepad and create a batch file called XMR.BAT

cd C:\XIBO_CMS\vendor\xibosignage\xibo-xmr\bin
php xmr.phar

Save it to C:\XIBO_CMS\xmr.bat

It is important that this script is always running. If not, XMR will not work.

Run “Task Scheduler” and select “Create Basic Task”

Give it a name “XiboXMRstartup” ==> Next
Set the trigger to “When the computer starts” ==> Next
Select “Start a program” ==>Next
Browse to the Batch file where you saved it above
Add the Start in patch without the “” at the end

Check the box: “Open the Properties dialog …” ==>Finish
Under General tab:
Select “Run whether user is logged on”
“Run with highest privileges”

Under Conditions Tab:
Check “Wake the computer to run this task”
An authentication box will pop up.
Enter the password for the Administrator account

Configure XMR in Xibo

Settings-> Displays-> XMR Private Address: tcp://
Settings-> Displays-> XMR Public Address: tcp://x.x.x.x:9505

Displays-> Display Setting for your display group -> Edit
Under XMR Public Address: tcp://x.x.x.x:9505

Go to: Displays and push the button “Column visibility” and choose “Xmr-Registered” to display that your Xibo-Player received XMR-Commands.

In Displays menu choose: “Edit” and go to “Advanced” and check on “Reconfigure XMR”

After players get those settings you will need to restart player. You should now see XMR Status: Connected (tcp://x.x.x.x:9505, last activity 04.05.2017 12:23:22) It will update every 30 seconds