Revision as of 18:10, 20 January 2015 by Enymind (Talk | contribs) (+ libmemcached10)

Running service

Currently supports only amd64 and compatible architecture systems.

Minimal prerequisites (Ubuntu Server)

  • libtcmalloc-minimal0
  • libboost-system1.46.1
  • libboost-program-options1.46.1
  • libboost-filesystem1.46.1
  • libtbb2
  • libonig2
  • libmcrypt4
  • libc-client2007e
  • memcached
  • libcloog-ppl0
  • libicu48
  • libcap2
  • libgd2-xpm
  • libjemalloc1
  • build-essential

Ubuntu 12.04 LTS Server

sudo apt-get install libtcmalloc-minimal0 libboost-system1.46.1 libboost-program-options1.46.1 memcached
sudo apt-get install libboost-filesystem1.46.1 libtbb2 libonig2 libmcrypt4 libc-client2007e libcloog-ppl0
sudo apt-get install libicu48 libcap2 libgd2-xpm libjemalloc1 build-essential

Ubuntu 14.04 LTS Server

sudo apt-get install libtcmalloc-minimal4 libboost-system1.55.0 libboost-program-options1.54.0 memcached libmemcached10
sudo apt-get install libboost-filesystem1.54.0 libtbb2 libonig2 libmcrypt4 libc-client2007e libcloog-ppl1
sudo apt-get install libicu52 libcap2 libgd2-xpm-dev libjemalloc1 build-essential

See complete list at ChronoLive Runtime ldd

Install libmemcached

wget http://launchpad.net/libmemcached/1.0/0.49/+download/libmemcached-0.49.tar.gz
tar -xzvf libmemcached-0.49.tar.gz
cd libmemcached-0.49
./configure
make
sudo make install
sudo cp libmemcached/.libs/libmemcached.so /lib/libmemcached.so.7

Install libevent

wget http://www.monkey.org/~provos/libevent-1.4.14b-stable.tar.gz
tar -xzvf libevent-1.4.14b-stable.tar.gz
cd libevent-1.4.14b-stable
wget https://raw.github.com/facebook/hiphop-php/pre-hhvm/src/third_party/libevent-1.4.14.fb-changes.diff
patch -p1 < libevent-1.4.14.fb-changes.diff
./configure
make
sudo make install

Database

Creating database before first run

Download database file at: http://wiki.enymind.fi/demo/chronogrid_live.sql

wget http://wiki.enymind.fi/demo/chronogrid_live.sql

Install and configure database

sudo apt-get install mysql-server

During the installation it will ask the root user's password. Do not use root user with ChronoLive.

Create another user for ChronoLive.

After installation start mysql CLI with command:

mysql -u root -p

After login create new database:

CREATE DATABASE chronogrid_live;
USE chronogrid_live;
SOURCE chronogrid_live.sql

And create new user:

CREATE USER 'chronolive'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON chronogrid_live.* TO 'chronolive'@'localhost';
FLUSH PRIVILEGES;

Running live web server

Do not run server with sudo (administrator privileges)!

If you want to use port 80, set up Apache (use ProxyPass and ProxyPassReverse) as front-end server.

<VirtualHost *:80>
    ServerName myhost
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/
</VirtualHost>

Create log directory

sudo mkdir /var/log/hhvm
sudo chmod 777 /var/log/hhvm

Configuration file

Create your configuration file (config.cfg) and change default values.

Runtime

Run command at terminal to start as server:

./chromolive_1.0.xxxx_amd64.bin -m server -c config.cfg

Or as daemon (background process):

./chromolive_1.0.xxxx_amd64.bin -m daemon -c config.cfg

Then navigate browser to: http://localhost:8080/live/index.php

Configuring service

Read more at: https://github.com/facebook/hiphop-php/wiki/Runtime-options

Example configuration file (config.cfg)

 ServerVariables {
   password = livepassword
   dbhostname = localhost
   dbusername = chronolive
   dbpassword = yourpassword
   dbdatabase = chronogrid_live
   uploaddir = /tmp/live
   logdir = /var/log/hhvm
   userstyle = /path/to/style.css
   locale = en_EN
   clubname = Your Club Name
   cluburl = http://www.club.com
   logopath = http://www.club.com/images
 }
 
 Server {
   Port = 8080
   DefaultDocument = index.html
 }
 
 AdminServer {
   Port = 8088
   ThreadCount = 1
   Password = gj34Us
 }
 
 Log {
   Level = Error
   UseLogFile = true
   File = /var/log/hhvm/error.log
   Access {
     * {
       File = /var/log/hhvm/access.log
       Format = %h %l %u %t \"%r\" %>s %b
     }
   }
 }
 
 StaticFile {
   Extensions {
     css = text/css
     gif = image/gif
     html = text/html
     jpg = image/jpeg
     js = text/javascript
     old = text/javascript
     png = image/png
     txt = text/plain
     woff = application/x-font-woff
   }
 }