Prérequis du serveur¶
Système¶
Linux. Les extraits de commande sont faits sous Debian.
Utilisateur dédié¶
Pour tourner le service dans un environnement protégé et isolé, il est fortement recommandé de créer un utilisateur système dédié pour l'application.
useradd assistat -m -U
Environnement Ruby et Rails¶
On va faire un environnement ruby complet pour cet utilisateur, avec RVM.
Installation de RVM, en tant qu'utilisateur assistats
:
apt-get install curl \curl -sSL https://get.rvm.io | bash rvm install 2.1 rvm --default use 2.1
Installation de rails :
gem install rails
Librairies nécessaires¶
Pour installer l'interfaçage entre rails et postgresql, on a besoin d'une librairie de développement :
apt-get install libpq-dev
Services¶
Postgresql¶
Préparer un environnement postgresql, avec une base de donnée et un utilisateurs possédant la base et le droits de créer des tables.
Par la suite, la base s'appellera assistatsdb
et l'utilisateur assistats_web
Node.js¶
Lancer un serveur Rails demande également de pouvoir exécuter du javascript côté serveur. Pour cela, on install node.js depuis une source externe (tel que décrit dans la doc node.js https://github.com/joyent/node/wiki/installing-node.js-via-package-manager), en tant que root :
curl -sL https://deb.nodesource.com/setup | bash -
Apache2¶
Installation d'Apache2 :
apt-get install apache2
Phusion Passenger¶
Passenger est installé avec les paquets officiels du dépôt de Phusion :
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7 echo "deb https://oss-binaries.phusionpassenger.com/apt/passenger wheezy main" > /etc/apt/sources.list.d/passenger.list apt-get update && apt-get install libapache2-mod-passenger passenger-install-apache2-module
Déploiement¶
Récupération de l'application¶
su - assistats git clone git://tucuxi.univ-brest.fr/assistats cd assistats bundle install
Configuration
Configurer l'accès à la base de données dans le fichier config/database.yml
¶
production: adapter: postgresql database: assistatsdb host: localhost username: assistats_web password: xXXXXXxxxXX encoding: utf8
Secret¶
Génération d'un secret pour rails :
rake secret
On colle la sortie dans le fichier config/secrets.yml
Base de données¶
Création du schéma
RAILS_ENV=production rake db:migrate
Assets¶
Préparation des "assets" (CSS, JS, images, polices, ...). Il faut préciser que l'application tourne dans une URL relative "/assistats", afin que les chemins internes soient bien configurés.
$ RAILS_ENV=production rake assets:precompile RAILS_RELATIVE_URL_ROOT=/assistats
Conifguration Apache2¶
Dans le fichier de configuration d'apache, on ajoute dans le virtualhost souhaité la config suivante :
Alias /assistats /var/www/assistats/public <Location /assistats> PassengerBaseURI /assistats PassengerAppRoot /var/www/assistats PassengerRuby /home/assistat/.rvm/gems/ruby-2.1.2/wrappers/ruby # RailsEnv production </location> <Directory /var/www/assistats/public> Allow from all Options -MultiViews </Directory>
et un lien symbolique : /var/www/assistats -> /home/assistat/assistats
Mis à jour par Jonathan Schaeffer il y a environ 9 ans · 3 révisions