6. Installation stepsΒΆ

The following steps describe the installation of PyScaler on a Centos 6 box.

  • Install EPEL repository

    rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
  • Install required packages

    yum install httpd mod_wsgi tomcat6-webapps tomcat6 python-pip librabbitmq \
    rabbitmq-server.noarch make gcc gcc-c++ java-1.6.0-openjdk-devel \
    java-1.6.0-openjdk git sqlite memcached nginx
  • Enable and start services

    chkconfig memcached on
    /etc/init.d/memcached start
    chkconfig rabbitmq-server on
    /etc/init.d/rabbitmq-server
  • Install the virtualenv packages to ease the python libraries management

    pip-python install virtualenv
    pip-python install virtualenvwrapper
  • Create a new virtualenv

    mkvirtualenv pyscaler
  • Create the pyscaler folder

    mkdir -p /opt/django/pyscaler
    
  • Create the celery logs folder

    mkdir /var/log/celery
    chown pyscaler:pyscaler  /var/log/celery
    mkdir /var/run/celery
    chown pyscaler:pyscaler  /var/run/celery
  • Grab the latest PyScaler version from github

cd /opt/django/pyscaler
git clone https://www.github.com/madrover/pyscaler.git
  • Jpype python lib needs Java JDK to be installed and have JAVA_HOME defined to build correctly. More details here.

    export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk.x86_64/
  • Install pyscaler python lib requirements

pip install -r requirements.txt
  • Configure Nginx to forward requests to Django / Gunicorn. There is a good guide here.

    This is an example nginx configuration

upstream app_server_djangoapp {
    server localhost:8000 fail_timeout=0;
}

server {
    listen 80;
    server_name pyscaler;

    access_log  /var/log/nginx/guni-access.log;
    error_log  /var/log/nginx/guni-error.log info;

    keepalive_timeout 5;

    root /opt/django/pyscaler/pyscaler;

    location /static {
        autoindex on;
        alias/opt/django/pyscaler/pyscaler/site_media/static;
    }

    location /media {
       autoindex on;
       alias /opt/django/pyscaler/pyscaler/site_media/media;
    }

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;

        if (!-f $request_filename) {
            proxy_pass http://app_server_djangoapp;
            break;
        }
    }
}

Project Versions

Previous topic

5. Design

Next topic

7. User Guide

This Page