Skip to content

Installation report: RHEL7, new VM, July 2017

Wessel Stoop edited this page Sep 22, 2017 · 12 revisions

These were the exact commands needed to install Signbank on (1) RHEL7 on a (2) new VM with full rights (neither of which are requirements for Signbank), July 2017. That is, this page is intended to be helpful for future Signbank installations, but might not be fully up-to-date or applicable in your case.

#Install Python
sudo yum install python34
sudo yum install python34-setuptools
sudo yum install python34-devel
sudo yum groupinstall "Development Tools"

#Install pip en virtualenv
sudo easy_install-3.4 pip
sudo pip3 install virtualenv
sudo pip3 install virtualenvwrapper

#Setup the virtualenv (setting the rights correctly omitted)
cd /var/www
virtualenv -p python3 signbank
cd signbank
source bin/activate
pip install django django-tagging django-reversion django-summernote django-bootstrap3 django-modeltranslation

#Install Apache, with xsendfile & uWSGI 
sudo yum install httpd
sudo yum install httpd-devel
wget https://tn123.org/mod_xsendfile/mod_xsendfile.c
sudo apxs -cia mod_xsendfile.c
sudo yum install gcc #For uwsgi compilation
sudo yum install mod_proxy_uwsgi
pip install https://projects.unbit.it/downloads/uwsgi-lts.tar.gz
mkdir /var/www/signbank/logs

#Setup the application itself (filling the writable folder omitted)
git clone https://github.com/Signbank/NGT-signbank.git repo
mkdir writable/

#Make a symlink to the admin static files
cd /var/www/signbank/repo/media
ln -s ../../lib/python3.4/site-packages/django/contrib/admin/static/admin/

#Installing software for video editing on the fly
sudo yum install libvorbis yasm freetype zlib bzip2 faac lame speex libvpx libogg  libtheora  x264 XviD openjpeg15 opencore-amr
wget http://libav.org/releases/libav-10.1.tar.gz
tar -xvzf libav-10.1.tar.gz
cd libav-10.1
./configure
make
sudo make install

#Start running an uwsgi server in a screen process
sudo yum install screen
screen -S signbank
source /var/www/signbank/bin/activate #enter the virtualenv
sh start_uwsgi.sh

Apache configuration in /etc/httpd/conf/httpd.conf

LoadModule proxy_uwsgi_module modules/mod_proxy_uwsgi.so
LoadModule xsendfile_module   /usr/lib64/httpd/modules/mod_xsendfile.so

<VirtualHost *:80>
  ServerName {SERVER_REDACTED}

  ErrorLog      /var/www/signbank/logs/error.log
  CustomLog     /var/www/signbank/logs/access.log combined

  #DocumentRoot /var/www/signbank/htdocs/

  XSendFile on
  XSendFilePath /var/www/signbank/writable/

  Proxypass /static !
  ProxyPass / uwsgi://127.0.0.1:{PORT_REDACTED}/

  Alias /static /var/www/signbank/repo/media

  <Directory "/var/www/signbank/repo/media">
      AllowOverride       Limit AuthConfig FileInfo Indexes
  </Directory>

</VirtualHost>

The UWSGI start shell script

uwsgi --virtualenv /var/www/signbank/\
      --socket 127.0.0.1:{PORT_REDACTED}\
      --chdir /var/www/signbank/repo\
      --wsgi-file /var/www/signbank/repo/signbank/wsgi.py\
      --logto /var/www/signbank/logs/uwsgi.log --log-date --log-5xx --master\
      --processes 4\
      --threads 4\
      --need-app\
      --static-map /static=/var/www/signbank/repo/media