How to install on Centos 6

The commands below are a guide to installing and configuring Xibo on a Centos 6 platform, specifically a Centos 6 Minimal installation. A typical use case is where your server only has a CD-ROM drive - rather than a DVD-ROM and cannot boot from USB or other media. Centos 6 Mininal install is available for CD-ROM installation.

These instructions assume that your hardware is functioning correctly, any RAID etc is externally managed (maybe in a RAID card) and that a vanilla Centos 6 Mininal Installation has completed suceesfully without errors.

Centos 6 is available for x86 and x64 archtitecture here:

Some of the steps below require additional inputs from you the administrator such as the apache configuration and the PHP configuration, please also refer to the Security Page for further security advice and considerations.

The version number of this guide is v1.0, March 11th, 2015.

Built-in ethernet is not setup on a fresh install, lets change this to static or DHCP;
Further info on the structure of this file is here:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

Note that to save and exit in vi you use the command:

Set the machines hostname

hostname XiboCMS

Open port 80 on the built-in firewall

iptables -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT 

Restart network services to acquire / use an IP address, as many of the steps from here on require internet access

service network restart

update any base components

yum update -y

install some basic tools for a happy system admin

yum install nano wget bash-completion ntp ntpdate -y

set the date and time, then start nptd to keep it in sync

service ntpd start
chkconfig ntpd on

We need additional repositories for Mcrypt, lets add them in

sudo rpm -Uvh epel-release-6*.rpm remi-release-6*.rpm 

install apache (httpd) PHP and MySql server
You may want to copy and paste this as there are 26 components

yum install httpd php-devel mysql mysql-server json json-c php php-cli php-common php-devel php-pdo php-soap php-mysql php-mcrypt* php-common php-cli php-devel php-fpm php-gd php-imap php-intl php-mysql php-process php-xml php-xmlrpc php-zts

Configure apache, start it and the set it to start on boot

nano /etc/httpd/conf/httpd.conf
service httpd start
chkconfig httpd on

Start mysql, configure and set to autostart on boot

service mysqld start
chkconfig mysqld on

edit this

nano /etc/php.d/json.ini

It needs to be like this:

# Json Extension

edit config php to suit

nano /etc/php.ini

At this point

  • your server is on your network
  • the hostname, date & time are set
  • you have a basic webserver installed with PHP and mySQL
  • the Xibo required PHP modules are all installed
  • you know a MySQL username and password
  • PHP has been set to allow larger than normal uploads (necessary for large video files)

Now download and install xibo into the standard webroot.
Note that the example below shows a version (1.7.1), which you’ll want to review and change as new versions of Xibo are released.

cd /var/www/html
sudo tar zxvf 1.7.1.tar.gz
sudo mv xibo-cms-1.7.1 xibo
chmod 777 -R xibo
cd ../..
mkdir xibo-library
chmod -R 700 xibo-library
chown -R apache:apache xibolibrary

now check your servers IP address with:

ifconfig | grep inet

it will show you, maybe the last line.

then visit http://<youripaddress>/xibo
and begin the setup.

Once it’s running, I generally change the webroot directory in httpd.conf to /var/www/html/xibo so the access address is simply http://<youripaddress> and also remove the downloaded installation archive. Or move it out of the webroot!

cd /var/www/html
rm 1.7.1.tar.gz

Thanks @andyblackham - let us know when you are happy with this version and we can add it to the FAQ category.

The only thing I might suggest on a quick read is not setting 777 on the xibo-library folder. Instead set 750 or 700 and make it owned by whatever user Apache is running as (eg www-data on Debian so perhaps httpd on CentOS?)

I’ve made a small change as per Alex’s suggestion (700 it is). httpd runs as apache in the group apache by default on Centos / RHEL.

If there are no more comments by the weekend I’m happy to go live with it. I can assist anyone who replies here with issues. I’m working on a Centos distribution that does all of the above as a post install script. But I’m wondering if a VM image would be more useful?

This will take some time - I’m still focused on live TV feeds.

I am currently trying to install the CMS software, and I cannot get the installation to start from http:///xibo but I have followed the rest of the steps, and believe that I have installed and configured LAMP correctly.
I am installing on CentOS 7.
Any ideas on things that I could have missed?

The guide says to use your IP address? Unless “xibo” is registered in your local DNS then just entering http://xibo won’t work

1 Like

I apologize for the typo, it must not have liked the way I typed it. I am using http://myipaddress/xibo/
It just loads to blank screen and does not start the installation. Could this be a permissions issue?

I’d start by entering; notice you do not type the /xibo part
(maybe something like 192.168.0.X or 10.0.1.X).
you should see the default web home page of your server.

Do you get that?
If no then check that apache is running

service https status

what does that return?

Apache is running, it displays the Apache Test Page.
HTTPD is enabled and active.

I also ran through the PHP settings and did the example code to verify that is working, and myipaddress/info.php returns a page with PHP information as it should.

I installed MySQL as well.

It is possible that httpd is in a different group on C7. Hmm

can you cd into your webroot,
ls -al
and post the results back?

It might be suffering a fatal error and stopping. At the top of this file:

Can you change lines 24 & 25 to

ini_set('display_errors', 1);

When I ran ls -a in /var/www/html/ I get back:
“info.php” “xibo-server” (which contains the extracted items from the install .zip)

Let me look into the error and get back to you in a few minutes.

I changed the install.php and the screen continues to load to a blank screen.

Can you copy and paste the text from the session into the message?
I wanted to see the permissions and owners.

Here’s another thing to try,

  1. Stop httpd
    service httpd stop
  2. restart httpd in debug mode temporarily
    httpd -k start -e debug
  3. read the error log continuously
    tail -f /var/log/httpd/error_log
  4. Then try to access it again from a browser
    You should see any errors in the console / session, coming from the tail command.
  5. end the tail with ctrl C I think.
    Once you’ve tried to access it stop and restart httpd normally with
    service httpd restart (as there are no users on it, no need for graceful)

Post back what you find



Thanks for the help. It is much appreciated.

I ran the commands listed above and reloaded the xibo installation page on the server, and I finally see the page for the install. However, these errors came up on the top of the window:

Notice: SQLSTATE[28000] [1045] Access denied for user ‘soc’@‘localhost’ (using password: NO) in /var/www/html/xibo-server/config/config.class.php on line 78

Notice: SQLSTATE[28000] [1045] Access denied for user ‘soc’@‘localhost’ (using password: NO) in /var/www/html/xibo-server/config/config.class.php on line 78

The user above has root privileges, so I am not sure why access would be denied.

The mysql user is not necessarily the root user of the operating system.

Part of the


Command is setting up an admin user. You can either use this or better
still, login to my sql as the admin user with a tool like mySQL workbench
and setup a new user with lower permissions.

Okay. I completely redid everything with the instructions above, and now when I pull up http://myip/xibo I get to the index of the page, with no instructions/button on how to install.

I have some crosses on my install page what options do i need in /etc/php.ini?

Also i had to disable iptables firewall to get apache to display anything