How to install Xibo CMS 2.1.X on Windows Server 2016 using Xampp.
1. Download the Xampp 7.2.24 (you must use 7.2.24 as 7.3.11 is not yet supported by
ZeroMQ) installer from:
https://www.apachefriends.org/xampp-files/7.2.24/xampp-windows-x64-7.2.24-0-VC15-
installer.exe
2. Run the installer, and leave all settings at the default.
3. Run the Xampp Control center as an administrator, it should be located at:
C:\xampp\xampp-control.exe
4. In this program you should see the various modules and options for each, you need to
click the red “X” to the left of Apache and MySQL, and this will install those modules as
a service so it can auto start during startup.
5. After you click the red “X” it will turn into a green check mark if it is successful, when
both are green check marks we are good to move onto the next step.
6. Now that we have created our services we can now start each service manually by
selecting the “Start” button to the right of the module name.
7. When those have started up you should see numbers populate into the “PID(s)” and
“Port(s)” columns of the control panel. When you see that it is time to make our SQL
database a little more secure, please click on the “Admin” button to the right of MySQL
module.
8. This will bring up the phpMyAdmin interface for our MySQL database, please click on
the “User accounts” tab at the top of the page.
9. On the next page you will want to click on the “Edit privileges” link to the right of the
account with the User name of “root” and the Host name of “localhost”.
10. This next screen all we need to do is to click the button named “Change password” at the
top of the page.
11. Now just create a secure password and type it into the field that is titled “Enter:” and
“Re-type:” and click the “Go” button at the bottom right.
12. With that done we now need to edit a file so we can continue to use phpMyAdmin to
interact with the database. You will want to edit the config.inc.php file located at
C:\xampp\phpMyAdmin\config.inc.php.
13. Inside the file you will want to change two lines, the firs is the line
“$cfg[‘blowfish_secret’] = ‘xampp’;” you will want to replace xampp with a random
string of characters. If you would like you can obtain a randomly generated one to paste
in from https://phpsolved.com/phpmyadmin-blowfish-secret-
generator/?g=[insert_php]echo%20$code;[/insert_php]. The second line is
“$cfg[‘Servers’][$i][‘auth_type’] = ‘config’;” you will want to replace the word config
with cookie. This will ensure that you have to sign in every time instead of the password
just being stored in the config file.
14. Download Xibo from https://github.com/xibosignage/xibo-cms/releases you will want to
download the xibo-cms-2.1.X.zip file.
15. Once that is downloaded extract all files to C:\xampp\htdocs\Xibo.
16. Now that it is extracted where we want it we will want to point our web server at Xibo
instead of its original default document. To do this we will alter the httpd.conf file
located at C:\xampp\apache\conf\httpd.conf. There will be two lines that will be edited,
the first is “DocumentRoot “C:/xampp/htdocs”” and the second is “<Directory
“C:/xampp/htdocs”>”. In both cases we will be replacing “C:/xampp/htdocs” with
“C:/xampp/htdocs/Xibo/web”.
17. Now it is time to install ZeroMQ. You can download the version of ZeroMQ we need
from https://windows.php.net/downloads/pecl/releases/zmq/1.1.3/php_zmq-1.1.3-7.2-ts-
vc15-x64.zip *Please note this is the thread-safe version of zmq, with Apache you need
to use thread-safe and not NTS*.
18. You will also need to install both the x64 and x86 versions of Visual C++ Redistributable
for Visual Studio 2015-2019 VC15 found at
X64 - https://aka.ms/vs/16/release/VC_redist.x64.exe
X86 - https://aka.ms/vs/16/release/VC_redist.x86.exe
19. Extract the files from the zip file and transfer “php_zmq.dll” to C:\xampp\php\ext and
“libzmq.dll” to C:\xampp\php.
20. Now it is time to modify the php.ini file which is located at C:\xampp\php\php.ini there
are a few lines that need to be edited, we will go over each over the next few steps. The
first is “post_max_size=40M” we will be changing 40M to 200M.
21. The next is “upload_max_filesize=40M” we will again replace the 40M with 200M.
22. The next line will be added, under the “Dynamic Extensions” header we will insert
“extension=php_zmq” it doesn’t matter where it goes in the list.
23. The next line to be edited will be “;extension=soap” for this one we will simply remove
the semicolon (;) to uncomment that line.
24. The next line will be “;date.timezone = “ for this line we will remove the semicolon (;)
and insert the appropriate timezone given your area, for me it is America/Los_Angeles.
To find what yours is please visit http://php.net/date.timezone
25. The next line is “SMTP=localhost” for this we will replace localhost with the smtp server
for your mail provider.
26. The next line is “;sendmail_from = [email protected]” here we will remove the
semicolon (;) and replace the [email protected] address with the email address you want
the emails to come from.
27. The next and final setting that needs to be changed is “mail.add_x_header=off” for this
we will change off to on.
28. Now we will edit the System variables within the Environment Variables. First you open
the Advanced System Settings. To do this I search for Control Panel, click System, and
click on the Advanced System Settings link on the left. Once there click on the
Environment Variables… button. In the bottom half of that window you will see system
variables, select the Path variable and click Edit… From here you want to click the New
button on the right and type in C:\xampp\php then move that to the top.
29. This next step we will navigate to C:\xampp\htdocs\Xibo\vendor\bin where you will
create a new file using a text editor named config.json that file will contain the following
text. Please replace yourip with the ip address of the server.
{
"listenOn": "tcp://127.0.0.1:50001",
"pubOn": ["tcp://yourip:9505", "tcp://yourip:50002"],
"debug": true
}
30. Now you will go back to the Xampp control panel and stop the Apache module, wait for
the button text to change from stop back to start and the restart it.
31. Next run an admin instance of command prompt and type in:
cd C:\xampp\htdocs\Xibo\vendor\bin
Press enter
Now type in:
php xmr.phar
Press enter
32. You should see messages in your command prompt similar to the screenshot below.
33. Now we need to create a library folder for Xibo, I created mine titled Xibo_LIB and it is
directly in the C:\ directory so my library directory is C:\Xibo_LIB.
34. Now we can start the actual installation, open your browser of choice and type localhost
into the address bar and press enter.
35. You should be taken to the Xibo installation screen
36. Below the welcome is a list of prerequisites for the installation of Xibo, if you followed
along all should show check marks, if any show an “X” or an “!” please review that
portion of documentation over again.
37. At the very bottom of the page you will see a “Next” button, click that.
38. On this next page we will be setting up the Xibo database, since this is a fresh install we
will be creating the database. At the top there is a radio button labeled “Create a new
database” this needs to be selected. For the “Host” field it will be localhost, “Admin
Username” is root, “Admin Password” is the password you created in phpMyAdmin,
“Database Name” will be whatever you want, I chose Xibo_DB. “Database Username”
will be whatever username you want Xibo to use on the database, I chose XIBO_Admin.
“Database Password” will be whatever password you want Xibo to use for the database.
Once that is all filled out just click the Next button.
39. This next page is where you will setup the first account for Xibo CMS, you can make the
username and password whatever you want, and then click Next.
40. This page you need to provide the Library Location, this is the library file you created
earlier, and mine is located at C:\Xibo_LIB. The Server Key is the key that will need to
be input into each display to add them (don’t worry about it; you can always get it from
the settings in Xibo). As for the statistics checkbox that is totally up to you if you want to
share your stats with the Xibo team. Now click the Next button.
41. If everything went as planned you should now see the Xibo signon screen.
The rest of this guide will be merged from a guide provided by another forum member by the
username Skidoo, he helped me so much when trying to figure out why previous installation
methods weren’t working with the newer versions of Xibo.
Xibo CMS Post-Installation
Setup Guide
Introduction
Once your 2.0 series Xibo CMS is installed, there’s some additional setup required to
enable all functionality and to keep things running smoothly. This guide will take you
through the steps needed.
Please note:
This guide relates to Xibo 2.0 series, for information relating to 1.8 series the old article
is archived here.
If you have yet to install a Xibo CMS please follow the CMS Installation instructions
appropriate for your environment.
If you’d rather not host your own CMS, then please do take a look at Xibo in the
Cloud for hosting. Xibo in the Cloudcustomers benefit from pre-configuration of
features and can, therefore, skip steps, as detailed below.
If you are running with Docker, please upload a test file (such as an image) to your
CMS, and ensure that the same image then appears in the shared/cms/library directory
on your local filesystem. If not, please do not proceed as your changes may not be
saved.
Time and timezone
NTP
Xibo in the Cloud customers please skip this section and go directly to
the Timezone section.
It’s very important that the time is correct on your CMS, and that the CMS timezone
setting is set correctly for the timezone you’re working in.
You may want to consider setting up your Operating System to sync time automatically
from the Internet so that the time is always correct.
ntp.org provide free access to time servers you can use to synchronise your CMS clock.
Instructions for configuring access to their servers are provided
here http://www.pool.ntp.org/en/use.html
Timezone
Now your clock is correct (and will remain so automatically), you need to let the CMS
know what Timezone it should be using. The installer attempts to make an intelligent
guess from the timezone that your OS has been set up to use, but it’s not always able to
make the best choice.
Log in to your CMS and go to the Settings page under the Administration section of the
Menu and click on the Regional tab.
Use the drop-down menu to select the nearest major city in your timezone, click Save at
the bottom of the page.
CMS Maintenance and Email Alerts
The Xibo CMS is only ever running when a User is actively interacting with the system,
or a Player is connecting to update its content. At all other times, Xibo isn’t running at
all which means in order to carry out certain background routines (eg clearing out old
records) or to alert you if one of your Players stops connecting as expected, we need a
regular “wakeup” to run Xibo that will allow those things to happen. Xibo
uses Tasks and XTR to run these routines.
Xibo in the Cloud and Docker installations, running XTR will happen automatically.
For non-Docker installations please follow the configuration instructions
for XTR-Routine Tasks
Email Alerts
Now the CMS is being regularly woken up, you can optionally configure Email Alerts to
be sent when Players stop connecting properly, and when they come back online after a
period of downtime.
Again from the Settings page located under the Administration section of the Menu,
click on the Maintenance tab. Here you will see some settings referring to the sending
of emails.
Xibo in the Cloud customers please note that some settings are pre-populated for you
but are available for you to change, with others locked for editing.
1. Enable Email Alerts? (MAINTENANCE_EMAIL_ALERTS) - is set to On
2. Admin email address (mail_to) - enter the email address that should receive an email
when a Display goes offline or comes back online.
3. Sending email address (mail_from) - enter the email address alerts from the CMS
should come from.
4. Max Display Timeout (MAINTENANCE_ALERT_TOUT) - enter a time in minutes for
a Player to be considered as gone “offline” from the last time you saw the Player
connect to the CMS. This can be overridden on a per client basis should you need that.
Do not set this value lower than your normal Player collection interval. If in doubt, set it
higher. The default is 30 minutes.
5. Send repeat Display Timeouts (MAINTENANCE_ALWAYS_ALERT)- if this is set to On, for
each offline Display you’ll receive an email every time the maintenance.php routine is
run. Most people will want this set to Off which means that you’ll be notified only once
per downtime period.
6. Save your settings by clicking the Save button at the bottom of the page.
In some cases, it’s also useful to alert Users/User Groups if a Player goes offline. To
do this navigate to Users under the Administration section and use the row menu for
the selected User record to Edit. Click on the Notifications tab and tick the box
to Receive Display Notifications.
This can also be set against User Groups.
Next, you need to decide which Displays should receive alerts. Navigate to Displays on
the Menu and for each Display you want to receive alerts for, use the row menu to Edit
then click on the Maintenance tab.
Make sure Email Alerts is set to Yes. For any display you don’t want to receive email
alerts for, set Email Alerts to No.
If you are not using Display Setting Profiles (see section below), ensure that you
tick Use Global Timeout? tick box so that the value set earlier for the time a Display
needs to be offline before being alerted is used. If you are using Display Settings
Profiles, then if that box is unticked, the Collect Interval from the Display Profile will
be used instead.
With Email Alerts configured, if you turn off one of your Displays, you should be notified
by email. The email will be sent once the Global Timeout or Display Profile Collection
Interval has elapsed since the Player last connected, on the subsequent run of the
maintenance script.
Example: If the Global Timeout is 10 minutes and your maintenance script is set to run
every 5 minutes, then you may not be notified for up to 15 minutes after the Player last
connects.
When the Player comes back online, you will be notified instantly via email.
Please note: Multiple recovery emails are sent if the Player in use makes multiple
simultaneous calls to the CMS when it starts up.
Log and Statistics Retention
Xibo in the Cloud customers should be aware that these settings are pre-configured
and are not available to be modified, please skip this section.
The CMS generates log output when it’s running, and also receives log output from
the Players connected to it for the purposes of debugging and checking the system’s
state. It can also collect Proof of Play Statistics. All these records are held in the
database and should be purged periodically to keep the size of the database
manageable and to prevent system performance problems. The maintenance script
performs that function.
Go to the Settings page under the Administration section of the Menu in the CMS, and
click on the Maintenance tab.
x Max Log Age (MAINTENANCE_LOG_MAXAGE) controls how many days logs should be
retained in the CMS database before being automatically deleted. A setting of 5 would keep
logs for 5 days and that’s reasonable for most debugging purposes.
x Max Statistics Age (MAINTENANCE_STAT_MAXAGE) controls how many days proof of
play statistics are retained in the CMS database before being automatically deleted. A setting
of 30 would keep statistics for 30 days. If you need to keep them for audit purposes, they can be
exported from the Statistics page in the CMS and archived for later use.
Regional Settings
The Xibo has built-in support for display of the user interface in alternative languages,
and to show dates in alternative formats too (eg DD/MM/YYYY vs MM/DD/YYYY).
All translations are contributed by the community and we are very grateful for all
Community efforts to keep the system translations updated and accurate. If you’re
interested in improving the translations for a specific language, you can contribute
directly via Launchpad Translations:
Launchpad Translations
Edits made there will be automatically included in a future Xibo CMS release.
Language Detection
By default, the CMS will use the language preferences set in your web browser to
auto-detect which language to display the CMS interface in. In some instances, for
example, where only small parts of the CMS have been translated into a particular
language, it may be desirable to disable language detection and enforce a specific
language instead.
x From the Settings page of the CMS, move to the Regional tab
x Untick the Detect Language (DETECT_LANGUAGE) tick box
x Select a suitable Default Language (see below)
x Save your changes
Default Language
If you disable language detection, the CMS will need to know which language file to
take its translations from.
x From the Settings page of the CMS, move to the Regional tab.
x The Default Language is en_GB which will give you English (British) translations. You
can enter any valid code from the list of languages Xibo is currently translated in to. You can
see a list here
x Enter the language code, without the trailing .mo. So for example, to select Spanish,
enter es
x Save your changes
Regionalised Date Formats
By default Xibo CMS shows dates in Y-m-d H:i format (eg 2015-03-29 10:00:00)
The date format used throughout the CMS can be adjusted from the Settings screen by
adjusting the Date Format settingon the Regional tab.
Display Profiles
Display Profiles offer a powerful way of centrally configuring your Player settings from
the CMS. When the Players connect to the CMS, they will receive any default or
assigned Profile you’ve created and reconfigure themselves with those settings
automatically.
Profiles are located on the Display Settings page of the CMS. You can create default
profiles for each Player type or individual profiles which can then be applied to one or
more Players to override the default settings.
Full details on managing Display Profiles can be found in the User Manual on
the Display Settings page.
Important Note On Collection Intervals
The Xibo 1.8 series comes with XMR push technology, which means that by default
when you make changes to content assigned to displays in the CMS, the Players are
notified to connect in and download that update straight away. It’s therefore strongly
advisable to set relatively long collection intervals for your Players since those only
really serve as a failsafe for any missed push messages.
You do not want 1.8 series CMS and Players with 1-minute collection intervals. 5
minutes is the absolute minimum for normal operation, and we strongly advise setting
this value to 30 minutes or longer.
Proxy Settings
Xibo in the Cloud customers can skip this section.
The CMS will need to be able to contact external servers to pull in RSS feeds from
outside your local network, or for integrations such as Twitter. If your network uses a
proxy server then you’ll need to tell the Xibo CMS about it so it knows where to look.
From the Settings page under the Administration section of the Menu, click on
the Network tab.
Auto start XMR-Service on startup
Open notepad and create a batch file called XMR.BAT
cd C:\XIBO_CMS\vendor\bin
php xmr.phar
exit
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 path 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"
"OK"
An authentication box will pop up.
Enter the password for the Administrator account
Configure XMR in Xibo
Settings-> Displays-> XMR Private Address: tcp://127.0.0.1:50001
Settings-> Displays-> XMR Public Address: tcp://x.x.x.x:9505
Save
Displays-> Display Setting for your display group -> Edit
Under XMR Public Address: tcp://x.x.x.x:9505
Save
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”
Save
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.
More information can be found here: https://xibo.org.uk/docs/setup/xtr-routine-tasks
If you want to see if you can perform an upgrade of Xibo 2.03 to 2.10 following the instructions from the
vendor, I would be happy to oversee your efforts.
https://community.xibo.org.uk/t/2-1-0-release-xibo-signage/20004
Xibo Upgrade Preparations
Since we’re done with the configuration of the webserver itself, we can go on with the Xibo upgrade.
This is how Xibo processes it’s upgrades:
1. Create a back-up of your Xibo file in your ‘./www’ folder and one of your SQL database.
2. Move the contents of your Xibo files to another folder. Call the old folder something like
‘Xibo_old’.
3. Copy the new Xibo installation to the place of your previous install.
4. Copy your custom 'config.json', 'xmr.bat' and ‘settings.php’ files from the previous
installation.
5. Reboot Server
6. Now open Xibo through the installation and the upgrade process should pop-up!
7. Your Xibo upgrade is ready.
Now we got the Xibo CMS files, let’s get a database dump. This one is pretty easy as it also requires
one single command. Tweak the command down below so it’s the same as your own user/database
name.
cd c:\Program Files\MySQL\MySQL Server 5.6\bin
mysqldump -u root -p xibo_db> xibo_backup.sql
Enter your SQL root password when prompted
This might take a minute or two. Once it’s done I recommend to get all the files to an external disk or
location. A back-up that’s stored on the local device isn’t a back-up, it’s just an extra security risk!
We will now download the Xibo CMS files to your home directory on your server.
https://github.com/xibosignage/xibo-cms/releases/download/2.1.0/xibo-cms-2.1.0.zip
Now we move our current installation to a different folder. Change the destination folder to
something on your own webserver
Create a new folder C:\Xibo_OLD
move C:\Xibo_CMS\*.* C:\Xibo_OLD
Now we need to copy custom XMR file to new version.
Copy c:\Xibo_old\vendor\bin\config.json c:\Xibo_CMS\vendor\bin\*.*
Now we need to copy XMR startup batch file to new version.
Copy c:\Xibo_old\xmr.bat c:\Xibo_CMS\*.*
This will be the last step before we can open the Xibo upgrade page. As stated before we needed to
back-up the ‘settings.php’ before replacing and moving the website files.
Copy c:\Xibo_old\web\settings.php c:\Xibo_CMS\web\*.*
Reboot server
Xibo Upgrade Process
Now we’ve done all the preparations we can head to the Xibo upgrade page. Open your favorite
browser and refer to the server IP address. If everything is configured correctly you should be
greeted with the Xibo installation page on the page ‘<your webserver>/install’. Note you should be
forwarded to this page automatically. If this is not the case, please check the settings in your
configuration files as you probably missed something
Press next if everything is correct. You will see an overview of the steps involved in this upgrade.
Hit ‘Start’ to start the Xibo upgrade process. The Xibo upgrade progress might take a while, so if you
want you can grab a cup of coffee in the meantime. I had a few errors along the way stating some
table columns already existed. Had to manually start the upgrade process again as it halted after the
error. I don’t think this will cause too much problems.
Once the upgrade is done, you will see the following message.