Christophe Casalegno

PALI : The Perfect Automatic Lamp Installer

PALI (Perfect Automatic Lamp Installer) est un script shell qui va de manière automatique transformer à votre place votre serveur Debian 8 ou Debian 9 en une pile LAMP (Linux Apache Mysql Php) pré-optimisée. Il suffit d’installer debian 8 ou 9 « nue » avec un accès ssh et vous allez pouvoir obtenir en quelques minutes une pile apache + php + mysql + memcached (avec les sessions php stockées dans memcached au lieu du disque), git, nodejs, webmin, grunt ainsi que d’autres petites choses intéressantes tel qu’un serveur Mysql ou MariaDB préoptimisé ou un certificat let’s encrypt dès l’installation avec une seule et unique ligne de commande.

C’est un script vraiment très simple, autonome et sans aucune dépendance directe qui peut être facilement modifié pour rajouter les softwares dont vous avez besoin. Je le mettrai à jour aussi souvent que possible. Dans l’instant il peut déjà faire pas mal de choses dont les opérations suivantes :

  • Installer vim, iotop, mc, apache2, rsync, screen, duplicity…
  • Installer php5-fpm (curl, apcu, gd, intl, imagick, imap, mcrypt, memcache, pspell, recode, sqlite, tidy, xmlrpc, xsl, soap, calendar)
  • Installer Mysql-server / MariaDB-server, Mysql-client / MariaDB-client et phpmyadmin
  • Installer munin, postfix, git, pure-ftpd, Imagemagick et curl
  • Installer Composer, NodeJs, Grunt, Drupal Console, wp-cli, Drush et webmin
  • Activer userdir, rewrite, expires, deflate, headers et ssl
  • Configurer pure-ftpd (FTP & FTPS) pour utiliser des utilisateurs unix standard et les chrooter dans leur répertoire
  • Créer un premier virtualhost php-fpm avec un phpinfo et un phptest
  • Pré-optimiser la configuration du serveur MySQL
  • Pré-optimiser la configuration apache et php-fpm
  • Modifier le port ssh par défaut (22 par défaut)
  • Modifier le port webmin par défaut (10000 par défaut)
  • Installer au choix NodeJS version 6, 7 ou 8 (7 par défaut)
  • Modifier « à chaud » le nom du serveur
  • Installer et configurer automatiquement un certificat SSL Let’s encrypt
  • Installer et configurer automatiquement Fail2ban, rkhunter & chkrootkit
  • Installer et configurer un firewall iptables avec des règles adaptés aux modifications de ports
  • Configurer un email « admin » de contact
  • Générer les mots de passe root, mysql et utilisateur et vous les envoyer par email

 
IMPORTANT : si vous choisissez l’option let’s encrypt (-l 1), attention à bien vérifier que le nom utilisé pointe déjà correctement au niveau de vos dns vers l’adresse IP de votre serveur, sinon cela ne fonctionnera pas correctement (j’ajouterai prochainement une vérification automatique).
 
Assez parlé ! Vous voulez simplement pouvoir installer votre serveur ? Il vous suffit de télécharger et de lancer le script. Pensez à modifier l’adresse email sinon il ne se lancera pas ou à la spécifier dans les options en ligne de commande :

  • -a email@address -> l’adresse email utilisée pour recevoir les accès
  • -n my.hostname.com -> spécifier un nouveau nom pour votre serveur
  • -s port_number -> specifier un nouveau port pour ssh (22 par défaut)
  • -w port_number -> specifier un nouveau port pour webmin (10000 par défaut)
  • -j nodeJS_version -> specifier la version de nodeJS souhaitée : version 6, 7 ou 8 (7 par défaut)
  • -l 1 -> Mettez 1 si vous souhaitez que votre vhost s’installe automatiquement avec un certificat SSL let’s encrypt
  • -h -> simplement pour avoir la liste des options disponibles

 

wget --no-check-certificate https://www.christophe-casalegno.com/tools/palidx(8 ou 9).sh
chmod +x palidx(8 ou 9).sh
./palidx(8 ou 9).sh -a admin@mydom.tld -n myserver.dom.tld -s 65022 -w 65000 -j 7 -l 1

 
Note : vous pouvez simplement modifier l’adresse email et lancer le script tel quel si vous ne souhaitez pas modifier les options par défaut (ports, let’s encrypt, etc.) :

 

./palidx(8 ou 9).sh

 
C’est tout ? Vraiment ? Oui : vous pouvez maintenant tester votre installation via les urls suivantes :
http://votreserveur/phpinfo.php (for http)
https://votreserveur:yourwebminport (for webmin)
http://votreserveur/munin (for munin)
ssh -l yourlogin yourserver -p ssh_port (for ssh)

Vous pouvez également directement télécharger les scripts depuis ces adresses :
Debian 8 : palid8.sh
Debian 9 : Debian 8 : palid9.sh

Amusez vous bien !


Christophe Casalegno
https://twitter.com/Brain0verride