Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 11/09/2017, à 19:12

kholo

[tuto bash] script pour l'installation de LAMP sur 16.04+ partie 1

on peut très bien coder en html et ne rien connaître à l'installation, administration de programmes comme le sont les composantes de LAMP...
on va partir de mon tuto pour créer un script d'automatisation (ou plutôt de simplification d'abord)

tentons de faire simplifié : implanter un script qui simplifiera l'installation des divers parties.

avant tout, je vous invite à regarder cette vidéo avant de vous lancer et de la conserver sous le coude pour les parties où il vous faudra remplir ou valider des choix (sélection apache avec la barre d'espace, mot de passes de mysql, et phpmyadmin,...).

avec ce script, il suffira de lancer point par point et de répondre quand ce sera nécessaire.
1505149889.png

c'est parti
on crée un dossier pour nos scripts (il y en aura peut être d'autres)

mkdir $HOME/bin

on y met un script

> $HOME/bin/lamp_install

on le rend exécutable

chmod +x $HOME/bin/lamp_install

et on l'édite pour y mettre du code :

gedit $HOME/bin/lamp_install

gedit peut être remplacé par un autre éditeur de texte : leafpad, nano, vi, vim,...
et on colle ce texte dedans

#!/bin/bash
# ----------------------------------------------
nomlogiciel="${0##*/}"
FONCTION="Installation de LAMP sur Ubuntu 16.04+
---------------------------------------------------------------------
Ce module facilite l'installation de LAMP sur Ubuntu 16.04+"
VERSION="0.003"
# NOTES DE VERSIONS
# ----------------------------------------------
# 
# ----------------------------------------------
echo "lancement $nomlogiciel..."
# nautilus "$PWD" ; exit 0 

# ******************************************************************
# fixe la taille de la fenetre
# ******************************************************************
/usr/bin/resize -s 32 80 > /dev/null
reset > /dev/null

# ******************************************************************

# DECLARATION DES COULEURS
# ******************************************************************
# 
# Texte : # Fond :
# 30, 40 : noir ;
# 31, 41 : rouge ;
# 32, 42 : vert ;
# 33, 43 : jaune ;
# 34, 44 : bleu ;
# 35, 45 : rose ;
# 36, 46 : cyan ;
# 37, 47 : gris / blanc ;
# 0 : retour aux paramètres par défaut ;
# 1 : texte en gras ;
# 4 : souligner ;
# 5 : clignotant ;
# 7 : surligner.
enGras='\033[1m'
enSouligner='\033[4m'
enClignotant='\033[5m'
enSurligner='\033[7m'
 
# explications
# echo -e "\033[31mHello\033[00m"
# On écrit \033, on met un crochet ouvrant [, 
# puis on met le code de la couleur choisie (ici, 31 signifie rouge) 
# et on finit avec un m. 
# On affiche notre texte, 
# ici Hello, puis on remet la couleur à noir (\033[00m), 
# sinon le reste sera écrit en rouge aussi. :)
# 
# exemples complexes
# enNoir='\033[1;30;40m'
# enRouge='\033[1;31;40m'
# enVert='\033[0;32;40m'
# enJaune='\033[1;33;40m'
# enBleu='\033[1;34;40m'
# enRose='\033[1;35;40m'
# enCyan='\033[1;36;40m'
# enGris='\033[7;37;40m'

enNoir='\033[30m'
enRouge='\033[31m'
enVert='\033[32m'
enJaune='\033[33m'
enBleu='\033[34m'
enRose='\033[35m'
enCyan='\033[36m'
enGris='\033[37m'
enDefaut='\033[0m'

# ******************************************************************

# Fonctions générales
# ******************************************************************

_quitter () {
	journal "_quitter"
	# mettre ici tout ce qui sera nescessaire à la bonne fermeture

	exit 0
}

pause () { read -p 'Appuyer sur [Enter] pour contnuer...' ; }

on_clear_terminal () {
	# echo -e "${enDefaut}"
	reset > /dev/null
}


fichier_log="$nomlogiciel.log"
> "$fichier_log"

journal () { echo "$@" >> "$fichier_log" ; }
journal "ouverture du journal"

journal "*******************initialisation*******************"
journal "VARIABLES"
quitter=0
NAVIGATEUR='firefox'

splashScreen () {
# echo -e "${enJaune}${enGras}$(< lamp.txt)"
cat << splashScreen
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMXl,,oNMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMW     ,Mc..    'MNdKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMo.  .kk       0M;  .dWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMM0ooo.  .:oxxOMO     .kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMO     :XMMMMMMMMX:    lK:..cXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMW.    dMMMMMMMMMMMMk  .M.    .MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMO    .MMMMMMMMMMMMMM'  kx.  .kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMNkOKNNWMMMMMMMMMMMMW.   .KWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMo..  ,NMMMMMMMMMMW;    .WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMN.     cKMMMMMMXWX,   .KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMWl       .''.  .xWO.;NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMNodoodl.       ;WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMM0.   .Xc,;:okXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMXo.  ;kMNl  .lWd     0d'  .oKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMd .MMMMX ;NMMM0lcdXMMK  KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMO .MMMN.lMMMMMMMMMMMMN  NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMO .MMX.dMMMMMMMMMMMMMN  NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMO .MK.xMMMMMMMWk,:MMMN  NMMMMMMMMMO,;.'OMMNd.xK,.'KMd..:WMMO;lX,..kMMMM
MMMMMO .O xMMMMMMMMk, ;MMMN  NMMMMMMMM0 lMW. XMo. ;:kc .ccx, lMk, ,.:.  kMMM
MMMMMO    xMMMMMMMMM0 ;MMMN  NMMMMMMMMo xMM: OMMo cMMM. xMMX .MM0 .KMM: .MMM
MMMMMO .l  dMMMMMMMMK ;MMMN  NMMMMMMMMWkWWk. OMMo dMMM, KMMW .MMK :MMMN  XMM
MMMMMO .Md  oMMMMMMMK ;MMMN  NMMMMMMMMMWo,d; OMMo dMMM; KMMM .MMK :MMMM. KMM
MMMMMO .MMx  cMMMMMMK ;MMMN  NMMMMMMKWK.:WMc OMMo dMMM; KMMM .MMK :MMMM' XMM
MMMMMO .MMMk  :WMMMMK ;MMMN  NMMMMMW:M, XMMc OMMo dMMM; KMMM .MMK :MMMM..MMM
MMMMMx .MMMMk  ,WMMMK ;MMMN  XMMMMMclM. OMN' kKMo dMMM, KMMW .MMK 'MMMK oMMM
MMMWX;  ONMMX.  .dXWo .XMNo  'ccc:. KMl  ,,; .oN; :NMX. dWWk  0WK  oNK.;WMMM
MMMXkkkkkOMMkkkkkkk0kkkkNkkkkkkkkkkOMMMklxMNlOMkkkkONkkkk0KkkkkNK ;d:cOMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK :MMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK :MMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMk 'MMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMkc;;oNMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
splashScreen
sleep 3
}
splashScreen

afficherMenu () {
echo -en "${enJaune}${enGras}$FONCTION ${enDefaut}
${enJaune}
${enJaune}Suivez les étapes une à une
${enJaune}Faire un choix dans :
${enJaune}A, B, C, D pour l'aide
${enJaune}un numéro pour les élements de la liste
${enJaune}______________________________
${enJaune}\tA. [aide] ${enGras}Apache ${enDefaut}
${enJaune} 1. ${enVert}Etape 1	APACHE_Installer
${enJaune} 2. ${enVert}Etape 2	APACHE_Tester
${enJaune} 3. ${enVert}Etape 3	APACHE_RenommerFichierTest
${enJaune}\tB. [aide] ${enGras}PHP ${enDefaut}
${enJaune} 4. ${enVert}Etape 4	PHP_Installer
${enJaune} 5. ${enVert}Etape 5	PHP_Tester
${enJaune} 6. ${enVert}Etape 6	PHP_SupprimerFichierTest
${enJaune}\tC. [aide] ${enGras}MySQL ${enDefaut}
${enJaune} 7. ${enVert}Etape 7	Mysql_Installer
${enJaune} 8. ${enVert}Etape 8	Mysql_Tester
${enJaune}\tD. [aide] ${enGras}PhpMyAdmin ${enDefaut}
${enJaune} 9. ${enVert}Etape 9	Phpmyadmin_Installer
${enJaune}10. ${enVert}Etape 10	redemarrer !
${enJaune}11. ${enVert}Etape 11	Phpmyadmin_Tester
${enJaune}______________________________
${enRouge} q. ${enVert}${enGras}Quitter ${enDefaut}
${enVert}______________________________\n
${enGris}Votre choix : "
}

parserChoix () {
# journal "*******************frm_principale_parser*******************"
# journal "frm_principale_parser : $1"

case "$choix" in
	0 ) frm_Informations 			;;
	1 ) APACHE_Installer 			;;
	2 ) APACHE_Tester 				;;
	3 ) APACHE_RenommerFichierTest 	;;
	4 ) PHP_Installer 				;;
	5 ) PHP_Tester 					;;
	6 ) PHP_SupprimerFichierTest 	;;
	7 ) Mysql_Installer 			;;
	8 ) Mysql_Tester 				;;
	9 ) Phpmyadmin_Installer 		;;
	10 ) redemarrer 				;;
	11 ) Phpmyadmin_Tester 			;;
	A | a )  Aide_Apache			;;
	B | b )  Aide_PHP				;;
	C | c )  Aide_Mysql				;;
	D | d )  Aide_Phpmyadmin		;;
	99 | q ) _quitter ;				;;
	* ) _quitter ;					;;
esac
}

frm_Informations () {
	zenity --info --text="$FONCTION"
}
# APACHE
Aide_Apache () {
echo -e "${enJaune}
${enGras}# Installation de apache2 ${enDefaut}
${enJaune}Cette partie installe apache2${enDefaut}
sudo apt install apache2
${enGras}APACHE_Tester ${enDefaut}
${enJaune}# si index.html.old existe renommer en index.html ${enDefaut}
if [ -f /var/www/html/index.html.old ] ; then 
	sudo mv /var/www/html/index.html.old /var/www/html/index.html
fi
${enJaune}${enGras}# on test dans le navigateur ${enDefaut}
$NAVIGATEUR http://127.0.0.1/
${enJaune}${enGras}APACHE_RenommerFichierTest ${enDefaut}
${enJaune}# on renomme le fichier index par défaut en old ${enDefaut}
sudo mv /var/www/html/index.html /var/www/html/index.html.old
${enDefaut}
"
pause
}
APACHE_Installer () {
# Installer apache
sudo apt install apache2
}
APACHE_Tester () {
# si index.html.old existe renommer en index.html
if [ -f "/var/www/html/index.html.old" ] ; then 
	sudo mv /var/www/html/index.html.old /var/www/html/index.html
fi
# on test dans le navigateur
$NAVIGATEUR "http://127.0.0.1/" &
}
APACHE_RenommerFichierTest () {
# on renomme le fichier index par défaut en old
sudo mv "/var/www/html/index.html" "/var/www/html/index.html.old"
}
Aide_PHP () {
echo -e "${enJaune}
${enGras}# Installation de php ${enDefaut}
sudo apt install php libapache2-mod-php7.0
${enJaune}${enGras}# test de php : ${enDefaut}
${enJaune}# Création du fichier php dans le dossier de l'utilisatur ${enDefaut}
echo <?php
   phpinfo();
?> > $HOME/test.php
${enJaune}${enGras}# Copie du fichier dans /var/www/html ${enDefaut}
sudo mv $HOME/test.php /var/www/html
${enJaune}${enGras}# on ouvre le fichier dans le navigateur ${enDefaut}
$NAVIGATEUR http://127.0.0.1/test.php
${enJaune}${enGras}# si tout va, plus besoin du fichier, on le supprime ${enDefaut}
sudo rm /var/www/html/test.php
${enDefaut}
"
pause
}
# PHP
PHP_Installer () {
# Installation de php
sudo apt install php libapache2-mod-php7.0
}
PHP_Tester () {
# test de php :
# Création du fichier php dans le dossier de l'utilisatur
echo "<?php
   phpinfo();
?>" > $HOME/test.php
# Copie du fichier dans /var/www/html
sudo mv $HOME/test.php /var/www/html
# on ouvre le fichier dans le navigateur
$NAVIGATEUR "http://127.0.0.1/test.php"
}
PHP_SupprimerFichierTest () {
# si tout va, plus besoin du fichier, on le supprime
sudo rm -f /var/www/html/test.php
}
Aide_Mysql () {
echo -e "${enJaune}
${enGras}# Installation de Mysql ${enDefaut}
sudo apt install mysql-server
${enJaune}${enGras}# test ${enDefaut}
${enJaune}# Ça demande le mot de passe (celui ci-dessus).
# Et le prompt mysql > apparaît
# pour sortir taper
# exit ; ${enDefaut}
mysql -u root -p
${enDefaut}
"
pause
}
# Mysql
Mysql_Installer () {
# Installation de Mysql
sudo apt install mysql-server
}
Mysql_Tester () {
# test
echo "
# Ça demande le mot de passe (celui ci-dessus).
# Et le prompt mysql > apparaît
# pour sortir taper
# exit ;"
mysql -u root -p
}
# Phpmyadmin
Aide_Phpmyadmin () {
echo -e "${enJaune}
${enGras}# Installation de Phpmyadmin ${enDefaut}
sudo apt install phpmyadmin php-mbstring php7.0-mbstring php-gettext
${enRouge}${enGras}# fermez tout et redémarrez le PC ${enDefaut}

${enJaune}# dans le navigateur ${enDefaut}
$NAVIGATEUR http://127.0.0.1/phpmyadmin/
${enRouge}${enGras}Première partie terminée !
${enDefaut}
"
pause
}
Phpmyadmin_Installer () {
sudo apt install phpmyadmin php-mbstring php7.0-mbstring php-gettext
# fermez tout et redémarrez le PC
}
Phpmyadmin_Tester () {
	# dans le navigateur
	$NAVIGATEUR "http://127.0.0.1/phpmyadmin/"
}

redemarrer () {
	quitter=1
	dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.Reboot" boolean:true &
	exit 0
}

_main () {
	on_clear_terminal
	afficherMenu

	# saisie du choix
	read -r choix
	on_clear_terminal
	parserChoix

	_main
}
_main

# Programme principale
_main ;
_quitter ;

exit 0

on enregistre et on ferme (pour gedit ctrl + w puis ctrl + q)
puis on lance le script :

cd $HOME/bin && ./lamp_install

Dernière modification par kholo (Le 01/11/2017, à 19:10)

Hors ligne

#2 Le 16/09/2017, à 23:55

??

Re : [tuto bash] script pour l'installation de LAMP sur 16.04+ partie 1

Bonsoir.
Comme c'est un tuto, je fais une réponse fictive pour que cet échange ne soit pas comptabilisé comme non traité.

Dernière modification par ?? (Le 17/09/2017, à 11:02)


Utiliser REFIND au lieu du GRUB https://doc.ubuntu-fr.org/refind . Aidez à vous faire dépanner en suivant le guide et en utilisant les outils de diagnostic J'ai perdu ma gomme. Désolé pour les fautes d'orthographes non corrigées.

Hors ligne

#3 Le 17/09/2017, à 10:38

kholo

Re : [tuto bash] script pour l'installation de LAMP sur 16.04+ partie 1

ok, merci... cool

Hors ligne

#4 Le 01/11/2017, à 19:11

kholo

Re : [tuto bash] script pour l'installation de LAMP sur 16.04+ partie 1

script modifié ; version 0.003 cool

Hors ligne