Forum Linux.mandriva Créer un bouton qui lance Apache

Posté par  .
Étiquettes : aucune
0
24
nov.
2009
Bonjour à tous,

Voilà afin de gagner du temps au lancement de mon ordi, je ne lance pas mon serveur APACHE au démarrage, cependant il est pénible de devoir aller à chaque fois en console, devoir me loguer en root, puis tapper
service httpd start | service mysqld start

Alors serais t il possible de créer un bouton sur mon bureau qui le lance?

Merci à vous?
  • # Oui, c'est possible

    Posté par  (site web personnel) . Évalué à 10.

    Tu commences d'abord par te donner les droits nécessaires au lancement d'apache et de mysql avec visudo, du genre :
    login ALL=(root) NOPASSWD:/etc/init.d/httpd, /etc/init.mysqld

    Ensuite un petit script bash tout con :
    #!/bin/bash
    /etc/init.d/httpd start
    /etc/init.mysqld start

    Tu n'oublies pas de donner les droits d'exécution :
    chmod +x ton_script

    Après, soit tu le mets sur le bureau et c'est ça ton bouton, soit tu le mets autre part et tu crées un lanceur (le plus souvent c'est clic droit sur le bureau, créer un lanceur, nom, commentaire, commande (là tu mets bien sûr le chemin vers ton script), icône...)

    Tout ça devrait marcher, après, niveau sécurité, je sais pas si c'est conseillé, je trouve un peu léger de mettre sur le bureau une icône pour lancer ce genre de service. Tu pourrais faire un raccourci clavier avec le script, comme ça, pas d'icône qui traîne et personne ne le voit. (et tu peut faire un autre script et un autre raccourci pour tout arrêter) (oui, je sais, on pourrait tout faire dans un seul script, mais je pense que c'est plus simple pour gotcha5832)
    Après, c'est toi qui voit bien sûr.

    Being a sysadmin is easy. As easy as riding a bicycle. Except the bicycle is on fire, you’re on fire and you’re in Hell.

    • [^] # Re: Oui, c'est possible

      Posté par  . Évalué à 4.

      Tu peux même faire un lanceur "tiroir" dans lequel tu vas placer plusieurs scripts sur le principe de ci dessus.
      Tu peux te faire un tiroir qui contient les scripts pour lancer apache, arrêter apache, lancer mysql, arrêter mysql, ou script qui lance les deux et un autre qui arrête les deux.
      Vu comme c'est facile de "scripter son environnement", t'aurais tort de te gêner !
      • [^] # Re: Oui, c'est possible

        Posté par  . Évalué à 1.

        MEEEERRCCCIII!!!!!

        A vous deux, et ca viens du fond du coeur, il est agréable d'avoir une réponse explicite, sans mauvais commentaire, et techniquement adapté à l'interrogateur, qui répond aux demandes et surtout permet d'apprendre.
        Je vais m'y mettre et je vous tiens au courant.
        P.S.: c'est quoi un tiroir? un lanceur type katapult?

        -------------------------
        BON Faux départ...
        Je me log en root en console, je rentre la commande:
        login ALL=(root) NOPASSWD:/etc/init.d/httpd, /etc/init.mysqld
        il me dis:
        init.mysqld
        bash: syntax error near unexpected token `('


        J'ai essayé:login ALL=root NOPASSWD:/etc/init.d/httpd, /etc/init.mysqld
        il me ferme la console.
        • [^] # Re: Oui, c'est possible

          Posté par  . Évalué à 1.

          login ALL=(root) NOPASSWD:/etc/init.d/httpd, /etc/init.mysqld
          n'est pas a taper dans un terminal, mais a ajouter dans le fichiers qui s'ouvrira grâce a la commande :
          sudo visduo

          http://doc.ubuntu-fr.org/sudo pourrait t'être utile.
          • [^] # Re: Oui, c'est possible

            Posté par  . Évalué à 1.

            j'etait justement entrain de regarder autre chose et je suis tomber la dessus :http://wiki.mandriva.com/fr/Root#Une_version_graphique_de_su(...)
            Pendant que tu me répondais.

            MERCI!
          • [^] # Re: Oui, c'est possible

            Posté par  . Évalué à 1.

            ca y est j'ai pu installer sudo
            j'ai donc tapper en root

            sudo visudo


            J'ai ajouter à la fin du fichier:

            login ALL=(root) NOPASSWD:/etc/init.d/httpd, /etc/init.d/mysqld


            j'ai ensuite créer un fichier /bin/allumageapache.sh
            dans lequel j'ai rajouter:

            #!/bin/bash
            /etc/init.d/httpd start
            /etc/init.d/mysqld start


            puis adapter les droits:

            chmod 777 allumageapache.sh


            mais que je tappe en root :allumageapache.sh pas de souci
            mais quand je suis pas root il me dis:

            [sacha@localhost /bin]$ allumageapache.sh
            /bin/allumageapache.sh: line 2: /etc/init.d/httpd: Permission non accordée
            /bin/allumageapache.sh: line 3: /etc/init.d/mysqld: Permission non accordée

            du coup je vois plus?
            dois je passer en 777
            /etc/init.d/httpd
            /etc/init.d/mysqld
            • [^] # Re: Oui, c'est possible

              Posté par  (site web personnel) . Évalué à 1.

              Je ne pense pas que passer en 777 des trucs dans le /etc/init.d soit conseillé.
              Mais je ne comprends pas pourquoi ça foire chez toi : je me suis donné les droits sudo pour apache en NOPASSWD pour pouvoir le relancer avec une macro vim et ça marchait.

              Tu dis avoir rajouté ta ligne login ALL=(root)... à la fin du fichier sudoers ? Essaye voir de le placer en dessous de la ligne root ALL=(ALL)...

              Je ne suis sûr de rien mais ça peut être une piste.

              Being a sysadmin is easy. As easy as riding a bicycle. Except the bicycle is on fire, you’re on fire and you’re in Hell.

              • [^] # Re: Oui, c'est possible

                Posté par  . Évalué à 1.

                Bah ecoute c'est idem:

                voiçi mon ficher quand je tappe visudo (/etc/sudoers):

                # sudoers file.
                #
                # This file MUST be edited with the 'visudo' command as root.
                # Failure to use 'visudo' may result in syntax or file permission errors
                # that prevent sudo from running.
                #
                # See the sudoers man page for the details on how to write a sudoers file.
                #

                # Host alias specification

                # User alias specification

                # Cmnd alias specification

                # Defaults specification

                # Runas alias specification

                #test
                login ALL=(root) NOPASSWD:/etc/init.d/httpd, /etc/init.d/mysqld

                # User privilege specification
                root ALL=(ALL) ALL

                # Uncomment to allow people in group wheel to run all commands
                # %wheel ALL=(ALL) ALL

                # Same thing without a password
                # %wheel ALL=(ALL) NOPASSWD: ALL

                # Samples
                # %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
                # %users localhost=/sbin/shutdown -h now


                il me dis:

                [sacha@localhost ~]$ allumageapache.sh
                /bin/allumageapache.sh: line 2: /etc/init.d/httpd: Permission non accordée
                /bin/allumageapache.sh: line 3: /etc/init.d/mysqld: Permission non accordée


                Je retourne donc voir dans /etc/init.d les droits des fichiers, et la je vois:

                -rwx------ 1 root root 9441 2008-03-08 01:22 httpd*
                -rwx------ 1 root root 12219 2009-07-27 00:29 mysqld*

                les fichiers ne sont plus en 777
                je les repasse donc en 777

                [root@localhost /etc/init.d]# chmod 777 httpd
                [root@localhost /etc/init.d]# chmod 777 mysqld

                je sors du compte root, relance allumageapache.sh et la:

                [sacha@localhost /etc/init.d]$ allumageapache.sh
                Starting httpd: (13)Permission denied: make_sock: could not bind to address 127.0.0.1:80
                no listening sockets available, shutting down
                Unable to open logs
                [�CHEC ]
                ls: ne peut ouvrir le r�pertoire /var/lib/mysql/mysql: Permission non accord�e
                Initializing MySQL database:
                Installing MySQL system tables...
                091127 15:55:12 [Warning] Can't create test file /var/lib/mysql/localhost.lower-test
                091127 15:55:12 [Warning] Can't create test file /var/lib/mysql/localhost.lower-test
                091127 15:55:12 [Warning] One can only use the --user switch if running as root

                ERROR: 1347 'mysql.db' is not BASE TABLE
                091127 15:55:12 [ERROR] Aborting

                091127 15:55:12 [Note] /usr/sbin/mysqld: Shutdown complete

                Installation of system tables failed!

                Examine the logs in /var/lib/mysql for more information.
                You can try to start the mysqld daemon with:
                /usr/sbin/mysqld --skip-grant &
                and use the command line tool
                /usr/bin/mysql to connect to the mysql
                database and look at the grant tables:

                shell> /usr/bin/mysql -u root mysql
                mysql> show tables

                Try 'mysqld --help' if you have problems with paths. Using --log
                gives you a log in /var/lib/mysql that may be helpful.

                The latest information about MySQL is available on the web at
                http://www.mysql.com
                Please consult the MySQL manual section: 'Problems running mysql_install_db',
                and the manual section that describes problems on your OS.
                Another information source is the MySQL email archive.
                Please check all of the above before mailing us!
                And if you do mail us, you MUST use the /usr/bin/mysqlbug script!
                chown: ne peut lire le r�pertoire `/var/lib/mysql': Permission non accord�e
                chmod: modification des permissions de `/var/lib/mysql': Op�ration non permise
                Starting MySQL: /etc/init.d/mysqld: line 165: kill: (6816) - Aucun processus de ce type
                [�CHEC ]


                Bon du coup je pensais que ca serais un truc tout simple, mais en faite ... non
              • [^] # Re: Oui, c'est possible

                Posté par  . Évalué à 1.

                Alors voici mon ficher "visudo"

                # sudoers file.
                #
                # This file MUST be edited with the 'visudo' command as root.
                # Failure to use 'visudo' may result in syntax or file permission errors
                # that prevent sudo from running.
                #
                # See the sudoers man page for the details on how to write a sudoers file.
                #

                # Host alias specification

                # User alias specification

                # Cmnd alias specification

                # Defaults specification

                # Runas alias specification

                #test
                login ALL=(root) NOPASSWD:/etc/init.d/httpd, /etc/init.d/mysqld

                # User privilege specification
                root ALL=(ALL) ALL

                # Uncomment to allow people in group wheel to run all commands
                # %wheel ALL=(ALL) ALL

                # Same thing without a password
                # %wheel ALL=(ALL) NOPASSWD: ALL

                # Samples
                # %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
                # %users localhost=/sbin/shutdown -h now


                j'essaye donc de lancer allumageapache.sh
                et là:
                [sacha@localhost ~]$ allumageapache.sh
                /bin/allumageapache.sh: line 2: /etc/init.d/httpd: Permission non accordée
                /bin/allumageapache.sh: line 3: /etc/init.d/mysqld: Permission non accordée


                je reverifie les droits sous /etc/init.d
                -rwx------ 1 root root 9441 2008-03-08 01:22 httpd*
                -rwx------ 1 root root 12219 2009-07-27 00:29 mysqld*


                je remet les droits en 777
                [root@localhost /etc/init.d]# chmod 777 httpd
                [root@localhost /etc/init.d]# chmod 777 mysqld


                Je sors du compte root, relance allumageapach.sh:

                [sacha@localhost /etc/init.d]$ allumageapache.sh
                Starting httpd: (13)Permission denied: make_sock: could not bind to address 127.0.0.1:80
                no listening sockets available, shutting down
                Unable to open logs
                [�CHEC ]
                ls: ne peut ouvrir le r�pertoire /var/lib/mysql/mysql: Permission non accord�e
                Initializing MySQL database:
                Installing MySQL system tables...
                091127 15:49:18 [Warning] Can't create test file /var/lib/mysql/localhost.lower-test
                091127 15:49:18 [Warning] Can't create test file /var/lib/mysql/localhost.lower-test
                091127 15:49:18 [Warning] One can only use the --user switch if running as root

                ERROR: 1347 'mysql.db' is not BASE TABLE
                091127 15:49:18 [ERROR] Aborting

                091127 15:49:18 [Note] /usr/sbin/mysqld: Shutdown complete

                Installation of system tables failed!

                Examine the logs in /var/lib/mysql for more information.
                You can try to start the mysqld daemon with:
                /usr/sbin/mysqld --skip-grant &
                and use the command line tool
                /usr/bin/mysql to connect to the mysql
                database and look at the grant tables:

                shell> /usr/bin/mysql -u root mysql
                mysql> show tables

                Try 'mysqld --help' if you have problems with paths. Using --log
                gives you a log in /var/lib/mysql that may be helpful.

                The latest information about MySQL is available on the web at
                http://www.mysql.com
                Please consult the MySQL manual section: 'Problems running mysql_install_db',
                and the manual section that describes problems on your OS.
                Another information source is the MySQL email archive.
                Please check all of the above before mailing us!
                And if you do mail us, you MUST use the /usr/bin/mysqlbug script!
                chown: ne peut lire le r�pertoire `/var/lib/mysql': Permission non accord�e
                chmod: modification des permissions de `/var/lib/mysql': Op�ration non permise
                Starting MySQL: /etc/init.d/mysqld: line 165: kill: (5886) - Aucun processus de ce type
                [�CHEC ]


                Et bah je pensais que ca serais simple mais non...
                • [^] # Re: Oui, c'est possible

                  Posté par  . Évalué à 1.

                  Personne pour m'aidez?
                  • [^] # Re: Oui, c'est possible

                    Posté par  (site web personnel) . Évalué à 1.

                    pour utiliser sudo, il faudrait peut etre l'executer, non ?

                    sudo <the_commande> ( liste parmi sudo -l )

                    Système - Réseau - Sécurité Open Source

                    • [^] # Re: Oui, c'est possible

                      Posté par  . Évalué à 1.

                      de base si je faisais sudo il me disais:
                      sacha is not in the sudoers file. This incident will be reported.

                      je me suis donc rajouter dans visudo:

                      # sudoers file.
                      [...]
                      # User alias specification
                      User_Alias STAFF=sacha
                      [...]
                      #test
                      login ALL=(root) NOPASSWD:/etc/init.d/httpd, /etc/init.d/mysqld
                      [...]
                      # User privilege specification
                      root ALL=(ALL) ALL
                      STAFF ALL=(ALL) ALL


                      Et effectivement si je fais sudo allumageapache.sh il me demande mon mot de passe et c'est bon.
                      d'ailleurs je peut même commenter la ligne login ALL=(root) NOPASSWD:/etc/init.d/httpd, /etc/init.d/mysql
                      et ca fonctionne toujours...

                      Hors le but à l'origine etait de pouvoir lancer le serveur par un click, ou raccourci clavier.?
                      • [^] # Re: Oui, c'est possible

                        Posté par  (site web personnel) . Évalué à 1.

                        C'est *si* difficile de créer une icône qui lance cette commande sur le bureau ?

                        Système - Réseau - Sécurité Open Source

                        • [^] # Re: Oui, c'est possible

                          Posté par  . Évalué à 1.

                          Bah pour mon niveau de débutant qui n'est pas celui d'un "consultant / formateur en solutions et support open source": OUI

                          En tout les cas actuellement, j'ai un bouton qui execute "sudo allumageapache.sh" qui ouvre un terminal qui me demande mon mot de passe.

                          Mais pour faire cela je peut ouvir un console, me logguer en root et lancer les deux services. ca change pas grand chose.
                          Ca dois pas être: "C'est *si* difficile " mais actuellement j'y suis pas...
                          • [^] # Re: Oui, c'est possible

                            Posté par  (site web personnel) . Évalué à 1.

                            Question à 2 centimes:
                            A quoi peut bien servir l'option NOPASSWD du fichiers sudoers ?

                            Système - Réseau - Sécurité Open Source

                            • [^] # Re: Oui, c'est possible

                              Posté par  . Évalué à 1.

                              euh réponse à 2 centime: "A ne pas demander le mot de passe."

                              Question à 3 centime pourquoi avec mon sudoers, il me le demande toujours?
                              • [^] # Re: Oui, c'est possible

                                Posté par  (site web personnel) . Évalué à 1.

                                Il est probablement pas au *bon* endroit...

                                Système - Réseau - Sécurité Open Source

                                • [^] # Re: Oui, c'est possible

                                  Posté par  . Évalué à 1.

                                  Dis moi si tu connais la réponse, sinon abstient toi...
                                  Car là a vrai dire tes commentaire ne me sont d'aucune utilité...

                                  Dis moi tu as pas un travail, un hobby, une occupation qui pourrais t'occuper?
                                  • [^] # Re: Oui, c'est possible

                                    Posté par  (site web personnel) . Évalué à 2.

                                    Parfois, il faut réflechir un minimum, cela ne tombe pas du ciel, je te donne des pistes, c'est pas du tout cuit.

                                    Système - Réseau - Sécurité Open Source

                                    • [^] # Re: Oui, c'est possible

                                      Posté par  . Évalué à 1.

                                      Alors essayons de réflechir un peu...
                                      passage de login ALL=(root) NOPASSWD:/etc/init.d/httpd, /etc/init.d/mysqld
                                      en première ligne:il demande le mdp

                                      passage de login ALL=(root) NOPASSWD:/etc/init.d/httpd, /etc/init.d/mysqld
                                      en dernière ligne:il demande le mdp
                                      mise en place de %STAFF ALL=(root) NOPASSWD:/etc/init.d/httpd, /etc/init.d/mysqld
                                      idem...
                                      • [^] # Re: Oui, c'est possible

                                        Posté par  (site web personnel) . Évalué à 1.

                                        Donne plus d'infos:

                                        Qu'as-tu lancé comme commande ?

                                        Un message d'erreur éventuel, des messages dans les fichiers de log ...

                                        Système - Réseau - Sécurité Open Source

                                        • [^] # Re: Oui, c'est possible

                                          Posté par  . Évalué à 1.

                                          Tu veux plus d'infos:
                                          On repart au début:

                                          Visudo:

                                          # sudoers file.
                                          #
                                          # This file MUST be edited with the 'visudo' command as root.
                                          # Failure to use 'visudo' may result in syntax or file permission errors
                                          # that prevent sudo from running.
                                          #
                                          # See the sudoers man page for the details on how to write a sudoers file.
                                          #
                                          #login ALL=(root) NOPASSWD:/etc/init.d/httpd, /etc/init.d/mysqld

                                          # Host alias specification

                                          # User alias specification
                                          User_Alias STAFF=sacha
                                          # Cmnd alias specification

                                          # Defaults specification

                                          # Runas alias specification

                                          #test
                                          #login ALL=(root) NOPASSWD:/etc/init.d/httpd, /etc/init.d/mysqld
                                          # User privilege specification
                                          root ALL=(ALL) ALL
                                          STAFF ALL=(ALL) ALL
                                          # Uncomment to allow people in group wheel to run all commands
                                          # %wheel ALL=(ALL) ALL

                                          # Same thing without a password
                                          # %wheel ALL=(ALL) NOPASSWD: ALL
                                          #%STAFF ALL=(root) NOPASSWD:/etc/init.d/httpd, /etc/init.d/mysqld

                                          # Samples
                                          # %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
                                          # %users localhost=/sbin/shutdown -h now
                                          login ALL=(root) NOPASSWD:/etc/init.d/httpd, /etc/init.d/mysqld


                                          j'ai ensuite créer un fichier /bin/allumageapache.sh
                                          dans lequel j'ai rajouter:
                                          #!/bin/bash
                                          /etc/init.d/httpd start
                                          /etc/init.d/mysqld start



                                          puis adapter les droits du script
                                          enfin je lance la commande
                                          sudo allumageapache.sh
                                          et il me demande dans tout les cas le mot de passe sans message d'erreur.

                                          P.S.: un trouve plusieurs fois la ligne
                                          #login ALL=(root) NOPASSWD:/etc/init.d/httpd, /etc/init.d/mysqld
                                          ce sont les différents endroit ou j'ai essayé.

                                          j'ai aussi essayé:
                                          %STAFF ALL=(root) NOPASSWD:/etc/init.d/httpd, /etc/init.d/mysqld

                                          enfin si j'esssaye sans sudo:
                                          [sacha@localhost ~]$ allumageapache.sh
                                          Starting httpd: (13)Permission denied: make_sock: could not bind to address 127.0.0.1:80
                                          no listening sockets available, shutting down
                                          Unable to open logs
                                          [�CHEC ]
                                          ls: ne peut ouvrir le r�pertoire /var/lib/mysql/mysql: Permission non accord�e
                                          Initializing MySQL database:
                                          Installing MySQL system tables...
                                          091202 19:20:22 [Warning] Can't create test file /var/lib/mysql/localhost.lower-test
                                          091202 19:20:22 [Warning] Can't create test file /var/lib/mysql/localhost.lower-test
                                          091202 19:20:22 [Warning] One can only use the --user switch if running as root

                                          ERROR: 1347 'mysql.db' is not BASE TABLE
                                          091202 19:20:22 [ERROR] Aborting

                                          091202 19:20:22 [Note] /usr/sbin/mysqld: Shutdown complete

                                          Installation of system tables failed!

                                          Examine the logs in /var/lib/mysql for more information.
                                          You can try to start the mysqld daemon with:
                                          /usr/sbin/mysqld --skip-grant &
                                          and use the command line tool
                                          /usr/bin/mysql to connect to the mysql
                                          database and look at the grant tables:

                                          shell> /usr/bin/mysql -u root mysql
                                          mysql> show tables

                                          Try 'mysqld --help' if you have problems with paths. Using --log
                                          gives you a log in /var/lib/mysql that may be helpful.

                                          The latest information about MySQL is available on the web at
                                          http://www.mysql.com
                                          Please consult the MySQL manual section: 'Problems running mysql_install_db',
                                          and the manual section that describes problems on your OS.
                                          Another information source is the MySQL email archive.
                                          Please check all of the above before mailing us!
                                          And if you do mail us, you MUST use the /usr/bin/mysqlbug script!
                                          chown: ne peut lire le r�pertoire `/var/lib/mysql': Permission non accord�e
                                          chmod: modification des permissions de `/var/lib/mysql': Op�ration non permise
                                          Starting MySQL: /etc/init.d/mysqld: line 165: kill: (17449) - Aucun processus de ce type
                                          [�CHEC ]
                                          • [^] # Re: Oui, c'est possible

                                            Posté par  . Évalué à 1.

                                            Solution apporté par Yvelan72 sur un autre forum:
                                            [quote]Dans l'absolu, si tu veux lancer un script monscript.sh en sudo sans mot de passe, il y a une solution simple :
                                            Tu crées ton script que tu places quelque part, par exemple dans /home/moi/

                                            Puis visudo

                                            - dans la ligne # Cmnd alias specification tu mets :
                                            [CODE]
                                            # Cmnd alias specification
                                            Cmnd_Alias SCRIPT = /home/moi/monscript.sh[/CODE]


                                            - Tu ajoutes le groupe wheel à ton utilisateur (toi ..)
                                            - et tu décommentes la ligne
                                            [CODE]
                                            # %wheel ALL=(ALL) NOPASSWD: ALL[/CODE]

                                            devenant :
                                            [CODE]
                                            %wheel ALL=(ALL) NOPASSWD: ALL[/CODE]


                                            Remarques que tu étais près du but. Sur ton visudo, il te suffirait de transformer la ligne
                                            [CODE]
                                            STAFF ALL=(ALL) ALL[/CODE]

                                            en
                                            [CODE]
                                            STAFF ALL= (ALL) NOPASSWD: ALL[/CODE]


                                            Comme ça, pas de passwd

                                            YL
                                            [/quote]
  • # je répond, mais

    Posté par  . Évalué à 2.

    Sincèrement, tu aurais dis "`Exim4` prend trop de temps au démarrage...", mais apache2...
    c'est vraiment le mauvais alibi !

    Si tu es maître de ta machine, tu dois pouvoir déplacer le démarrage d'apache, en sorte qu'il soit après *DM; un peu le fait Windows.

    Il faudrait gratter un peu plus du côté de `update-rc.d` pour les systèmes Debian-like (pour les RH-like, je ne sais pas).
  • # sudo -l

    Posté par  (site web personnel) . Évalué à 1.

    Tout est dans le titre

    Système - Réseau - Sécurité Open Source

    • [^] # Re: sudo -l

      Posté par  . Évalué à 1.

      je te remercie,
      j'ai essayé de faire un sudo -l mais:

      [root@localhost /]# sudo -l
      User root may run the following commands on this host:
      (ALL) ALL


      ???
      Je sais pas quoi faire?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.