Inspiré fortement de http://www.howtoforge.com/perfect-server-debian-wheezy-nginx-bind-dovecot-ispconfig-3

Pré-requis:

Installer Debian dans VirtualBox

  • Lancer VirtualBox

  • Créer une nouvelle machine virtuelle (icone soleil Bleu “Nouvelle”) et indiquer nom : CoopBox, système linux debian, 384mo de RAM, disque dynamique, maximum 8 go, 1 processeur

  • Editer les préférences de la machine virtuelle CoopBox (icone engrenage jaune “Configuration”) :

    • sous menu “Système”, onglet “Carte mère” : désactiver la disquette
    • sous menu “Stockage”, Controleur : IDE, pour le lecteur CD cliquer sur l’icone CD puis “Choisissez un fichier de CD virtuel”, parcourir votre machine pour faire le lien avec votre image ISO de Debian précedement téléchargée.
    • sous menu “Son” : décocher “Activer le son”
    • sous menu “Réseau” : Accès par pont (puis choisir l’interface réseau par ou internet passe Ethernet ou Wifi (Wlan))
  • Fermer les préferences

  • Démarrer la machine CoopBox (icone fleche verte “Afficher”) (cocher ne plus affiche le message, s’il vous parle d’un affichage 32bit, OSEF)

  • Choisir votre langue, French - Francais par exemple, idem pour Pays, disposition du clavier

  • Nom de machine : “coopbox” ce nom sera visible sur le réseau local, adapter le pour vos besoins, (juste pas le droit aux caractères spéciaux et espace) a vous de voir si vous préférez un autre nom)

  • mot de passe superutilisateur : j’ai mis “coopboxroot”

  • Nom complet du nouvel utilisateur : “CoopBox” (à adapter)

  • Identifiant pour le compte utilisateur : “coopbox”

  • Mot de passe : “coopbox”

  • Partition : assisté - utiliser un disque entier

  • Partition : tout dans une seule partition

  • Partition : valider et appliquer les changements

  • Miroirs : France debian.proxad.net

  • Mandataire : laisser vide

  • Etude statistique pour les paquets : non

  • Programmes : tout déchocher sauf serveur ssh et utilitaires usuels

  • Installer Grub : oui

Voila! C’est installé, reste plus qu’a enlever le cdrom virtuel et redémarrer la machine virtuelle

Configurer le serveur web

J’ai choisi d’installer les versions dans les dépots pour les outils serveurs (sauf si pas assez récents pour faire tourner les applis, dans ce cas on compile pour nodejs)

Première mise à jour et ajouts de petits outils utiles

Il faut s’identifier en root (mot de passe: coopboxroot) pour installer les paquets

apt-get update && apt-get upgrade
apt-get install ssh openssh-server openssl sudo vim-nox mc ntp ntpdate git-core curl build-essential libssl-dev pkg-config avahi-daemon

Partage de fichiers avec Windows (Samba)

apt-get install samba smbclient
vi /etc/samba/smb.conf

changer: wins support = yes /etc/init.d/samba restart

NGINX, PHP, MySQL, PhpMyAdmin

apt-get install mysql-client mysql-server nginx php5-fpm php5-mysql php5-curl php5-gd php5-intl php5-imagick php5-imap php5-mcrypt php5-memcache php5-memcached php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php-pear php-xml-parser php5-cli memcached php-apc fcgiwrap phpmyadmin 

Mysql et phpmyadmin

Quand l’installateur de Mysql demande quel serveur web est utilisé, ne rien cocher, pas de serveur web a reconfigurer automatiquement. Pour phpmyadmin : pas de db-commons

vi /etc/nginx/sites-enabled/default

changer localhost en coopbox.local activer php, ajouter les index.php et ajouter les directives pour phpmyadmin:

location /phpmyadmin {
       root /usr/share/;
       index index.php index.html index.htm;
       location ~ ^/phpmyadmin/(.+\.php)$ {
               try_files $uri =404;
               root /usr/share/;
               fastcgi_pass unix:/var/run/php5-fpm.sock;
               fastcgi_param HTTPS on; # <-- add this line
               fastcgi_index index.php;
               fastcgi_param SCRIPT_FILENAME $request_filename;
               include /etc/nginx/fastcgi_params;
               fastcgi_param PATH_INFO $fastcgi_script_name;
               fastcgi_buffer_size 128k;
               fastcgi_buffers 256 4k;
               fastcgi_busy_buffers_size 256k;
               fastcgi_temp_file_write_size 256k;
               fastcgi_intercept_errors on;
       }
       location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
               root /usr/share/;
       }
}
location /phpMyAdmin {
       rewrite ^/* /phpmyadmin last;
}

/etc/init.d/nginx start

Php

Editer le fichier de configuration de php vi /etc/php5/fpm/php.ini

Et changer les valeurs suivantes cgi.fix_pathinfo=0 date.timezone=”Europe/Paris” post_max_size = 64M upload_max_filesize = 1000M

vi /etc/php5/fpm/pool.d/www.conf

Changer user et group : mettre coopbox

Création des répertoires par défaut de la CoopBox

mkdir /home/coopbox/src
mkdir /home/coopbox/www
mkdir /home/coopbox/import
mkdir /home/coopbox/export
mkdir /home/coopbox/public
chown coopbox:coopbox /home/coopbox -R

NodeJS et NPM

cd /home/coopbox/src
git clone https://github.com/joyent/node.git
cd node
git checkout v0.10
	./configure --openssl-libpath=/usr/lib/ssl
make
make install

Etherpad

cd /home/coopbox/src
git clone git://github.com/ether/etherpad-lite.git

copier settings.json, mettre une base mysql

ScrumbLR

cd /home/coopbox/src
apt-get install redis-server
git clone https://github.com/aliasaria/scrumblr.git
cd scrumblr
npm install
node server.js 9002

Ethercalc

npm i -g ethercalc
ethercalc

Etherdraw (marche pas)

cd /home/coopbox/src
apt-get install libcairo2-dev
git clone git://github.com/JohnMcLear/draw.git
cd draw
bin/run.sh

Forever (pour garder les applis nodejs toujours ouvertes, relancees automatiquement)

npm install forever -g

vi /etc/init.d/nodejs-forever

copier le code suivant

#!/bin/sh

### BEGIN INIT INFO
# Provides:          nodejs-forever
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts all coopbox nodejs apps
# Description:       starts all coopbox nodejs apps using start-stop-daemon
### END INIT INFO

PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/node/bin"
LOGFILE="/var/log/etherpad-lite/etherpad-lite.log"
EPLITE_DIR="/usr/share/etherpad-lite"
EPLITE_BIN="bin/safeRun.sh"
USER="coopbox"
GROUP="coopbox"
DESC="Etherpad Lite"
NAME="etherpad-lite"

set -e

. /lib/lsb/init-functions

start() {
  echo "Starting $DESC... "
  cd /home/coopbox/src/scrumblr/
  forever start server.js 9002
  forever start /usr/local/bin/ethercalc
  cd /home/coopbox/src/etherpad
  forever start bin/run.sh
  echo "done"
}

stop() {
  echo "Stopping $DESC... "
  forever stopall
  echo "done"
}

status() {
  #status_of_proc -p /var/run/$NAME.pid "" "etherpad-lite" && exit 0 || exit $?
  forever list
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    start
    ;;
  status)
    status
    ;;
  *)
    echo "Usage: $NAME {start|stop|restart|status}" >&2
    exit 1
    ;;
esac

exit 0


chmod +x /etc/init.d/nodejs-forever
update-rc.d nodejs-forever defaults
service nodejs-forever start

YesWiki

cd /home/coopbox/src
git clone https://github.com/mrflos/yeswiki.git
cd yeswiki
git checkout cerco_php54

Faire les liens symboliques vers /home/coopbox/www (sauf files, cache et themes) Puis installer le wiki à partir de l’adresse web http://coopbox.local/

Owncloud

cf. http://www.crucial.com.au/blog/2013/04/11/setting-up-the-new-owncloud-5-0-with-nginx-and-mysql/ cf. http://doc.owncloud.org/server/5.0/admin_manual/installation.html cd /home/coopbox/www wget http://download.owncloud.org/community/owncloud-5.0.7.tar.bz2 tar -xjf owncloud-5.0.7.tar.bz2 rm owncloud-5.0.7.tar.bz2 mkdir owncloud/data chown -R coopbox:coopbox owncloud chmod 777 owncloud/data