Lancer son stack LAMP manuellement avec Ubuntu

Linux, c’est top, Ubuntu c’est cool, mais quand on installe une pile LAMP, Apache2 et MySql se lancent au boot, et si, comme moi, vous ne développez pas à chaque session, et bien vous les lancez pour rien. Heureusement, il est facile de rendre ce lancement manuel.
Supprimer les deux services du démarrage automatique
Source : https://askubuntu.com/questions/57381/how-to-stop-mysql-from-running-at-boot-time
sudo systemctl disable apache2
sudo systemctl disable mysql
Ensuite, pour les relancer en ligne de commande :
sudo service mysql start
sudo service apache2 start
Évidemment, nous voulons une entrée dans le menu des applications pour le faire sans avoir à ouvrir un terminal…
Créer deux scripts qui lancent et arrêtent les 2 services
- Remarque 1 : on pourrait bien sûr ne faire qu’un script qui prend un paramètre start ou stop en entrée
- Remarque 2 : je mets tout dans ~/.local/share/applications, il serait plus élégant de mettre les scripts et les icônes dans un dossier ad hoc
Source : https://askubuntu.com/questions/37401/how-do-i-add-a-launcher-for-sh-applications
Créer un script qui lance les 2 services :
vim ~/.local/share/applications/start-lamp.sh
#!/bin/bash
sudo service mysql start
sudo service apache2 start
zenity --info --text="Started !"
Répéter l’opération pour créer un script qui arrête les 2 services (stop au lieu de start).
Le problème est que ces deux services nécessitent les droits root. Donc…
Autoriser votre user à lancer/arrêter apache2 et mysql
sudo visudo
**Attention** : cela autorise le user à exécuter sudo <commande> sans mot de passe, pas à exécuter <commande> sans sudo !
Ajouter la ligne suivante à la fin du fichier avant includedir :
<votre_user> ALL=NOPASSWD:/usr/sbin/service apache2 *, NOPASSWD:/usr/sbin/service mysql *
Créer deux icônes start et stop dans le menu application
Créer un fichier start-lamp.desktop
vim ~/.local/share/applications/start-lamp.desktop
Contenant :
[Desktop Entry]
Name=Start Lamp
GenericName=Start LAMP Stack
GenericName[fr]=Lancement LAMP Stack
Comment=Manually start Apache2 and MySql services
Comment[fr]=Lancement manuel des services Apache2 et MySql
Exec=/home/denis/.local/share/applications/start-lamp.sh
Icon=/home/denis/.local/share/applications/start-lamp.png
Terminal=false
Type=Application
!!! Attention la ligne suivante ne marche pas : faire avec l’éditeur du launcher ubuntu (extension Appfolders Management extension du gnome shell) !!
Categories=<où vous voulez>;
MimeType=text/html;
StartupNotify=true
Keywords=Apache;MySql;
Y adjoindre un icône start-lamp.png dans le même dossier
Répéter l’opération pour stop-lamp.desktop