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
See complete list at ChronoLive Runtime ldd
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
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
Install libmemcached (only Ubuntu 12.04)
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 (only Ubuntu 12.04)
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 } }