m (+ libevent-1.4-2)
 
(39 intermediate revisions by the same user not shown)
Line 2: Line 2:
 
Currently supports only amd64 and compatible architecture systems.
 
Currently supports only amd64 and compatible architecture systems.
  
===Prerequisites (Ubuntu)===
+
===Minimal prerequisites (Ubuntu Server)===
 
* libtcmalloc-minimal0
 
* libtcmalloc-minimal0
 
* libboost-system1.46.1
 
* libboost-system1.46.1
 
* libboost-program-options1.46.1
 
* libboost-program-options1.46.1
 
* libboost-filesystem1.46.1
 
* libboost-filesystem1.46.1
* libevent-1.4
 
 
* libtbb2
 
* libtbb2
 
* libonig2
 
* libonig2
 
* libmcrypt4
 
* libmcrypt4
* libmemcached7
 
 
* libc-client2007e
 
* libc-client2007e
 +
* memcached
 +
* libcloog-ppl0
 +
* libicu48
 +
* libcap2
 +
* libgd2-xpm
 +
* libjemalloc1
 +
* build-essential
  
===Install libmemcached===
+
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 libevent-1.4-2 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
 
  wget http://launchpad.net/libmemcached/1.0/0.49/+download/libmemcached-0.49.tar.gz
 
  tar -xzvf libmemcached-0.49.tar.gz
 
  tar -xzvf libmemcached-0.49.tar.gz
Line 20: Line 37:
 
  ./configure
 
  ./configure
 
  make
 
  make
  make install
+
  sudo make install
 
  sudo cp libmemcached/.libs/libmemcached.so /lib/libmemcached.so.7
 
  sudo cp libmemcached/.libs/libmemcached.so /lib/libmemcached.so.7
  
See complete list at [[ChronoLive Runtime ldd]]
+
====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===
  
===Running live web server===
 
 
Run command at terminal to start as server:
 
Run command at terminal to start as server:
  chromolive_1.0.xxxx_amd64.bin -m server -c config.cfg
+
  ./chromolive_1.0.xxxx_amd64.bin -m server -c config.cfg
  
Or as daemon:
+
Or as daemon (background process):
  chromolive_1.0.xxxx_amd64.bin -m daemon -c config.cfg
+
  ./chromolive_1.0.xxxx_amd64.bin -m daemon -c config.cfg
  
 
Then navigate browser to: http://localhost:8080/live/index.php
 
Then navigate browser to: http://localhost:8080/live/index.php
 
==Database==
 
===Creating database before first run===
 
Download database file at: http://wiki.enymind.fi/demo/chronogrid_live.sql
 
  
 
==Configuring service==
 
==Configuring service==
Line 43: Line 114:
 
===Example configuration file (config.cfg)===
 
===Example configuration file (config.cfg)===
 
   ServerVariables {
 
   ServerVariables {
 +
    password = livepassword
 
     dbhostname = localhost
 
     dbhostname = localhost
     dbusername = chronogrid_live
+
     dbusername = chronolive
     dbpassword = password123
+
     dbpassword = yourpassword
 
     dbdatabase = chronogrid_live
 
     dbdatabase = chronogrid_live
     uploaddir = /tmp
+
     uploaddir = /tmp/live
 
     logdir = /var/log/hhvm
 
     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 {
 
   Server {
 
     Port = 8080
 
     Port = 8080
     DefaultDocument = index.php
+
     DefaultDocument = index.html
 
   }
 
   }
 
    
 
    
Line 75: Line 152:
 
    
 
    
 
   StaticFile {
 
   StaticFile {
    FilesMatch {
 
      * {
 
        pattern = .*\.(dll|exe)
 
        headers {
 
          * = Content-Disposition: attachment
 
        }
 
      }
 
    }
 
 
     Extensions {
 
     Extensions {
 
       css = text/css
 
       css = text/css
Line 92: Line 161:
 
       png = image/png
 
       png = image/png
 
       txt = text/plain
 
       txt = text/plain
 +
      woff = application/x-font-woff
 
     }
 
     }
 
   }
 
   }

Latest revision as of 19:13, 20 January 2015

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 libevent-1.4-2 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
   }
 }