Partage
  • Partager sur Facebook
  • Partager sur Twitter

Apache2 problème avec cgi-bin.

    28 octobre 2014 à 10:50:35

    Bonjour à tous,

    j'ai pour projet de développer un hotspot, qui à chaque démarrage va chercher sa configuration sur un serveur web distant (même fonctionnement que les freebox v6).

    Après avoir fais des recherches il semble que je dois utiliser les cgi-bin d'un serveur web (ici j'utilise apache).

    J'ai donc suivis ce tuto : http://httpd.apache.org/docs/2.4/fr/howto/cgi.html

    J'ai rajouté cette ligne :

    ScriptAlias /cgi-bin/ /usr/local/apache2/cgi-bin/

    dans mon fichier /etc/apache2/apache2.conf

    J'ai ensuite créé le chemin /usr/local/apache2/cgi-bin/ et placé le script suivant à l'intérieur :

    #!/usr/bin/perl 
    print "Content-type: text/html\n\n";
    print "Hello, World.";

    Mais lorsque je tente d'y accéder (ip-serv/cgi-bin/test.pl) j’obtiens un 404 not found. (J'ai aussi testé avec un script bash)

    Le script est pourtant bien exécutable, et mon /usr n'est pas monté en noexec. Une idée de ce que j'ai raté ? svp.

    Merci d'avance. smile

    -
    Edité par d0ctrine 28 octobre 2014 à 10:51:39

    • Partager sur Facebook
    • Partager sur Twitter
      28 octobre 2014 à 11:03:57

      Bonjour.

      Quel est la config complète de ton vhosts ?

      As-tu perl d'installé sur le serveur et accéssible via le PATH ?

      Le mod_perl d'apache est bien configuré ?

      -
      Edité par Hikingyo 28 octobre 2014 à 11:04:15

      • Partager sur Facebook
      • Partager sur Twitter
      Pensez à poster votre code avec les balises et joindre le contenu des variables qui vous causent des soucis ( ex : var_dump() ).Lisez bien les messages d'erreurs !Google it n RTF !!
        28 octobre 2014 à 11:18:26

        Merci de ta réponse.

        Pour perl ce n'est pas sur, j'ai mis ce script car il correspond au tuto, mais j'ai aussi essayer avec un script bash j'ai le même résultat. (bash bien accessible via le PATH.)

        Pour le bash il y a un module apache à activer ?

        Qu'entends tu pas vhosts ? La config du serveur ?

        Si oui j'utilise debian 7.6 avec juste apache2 installé depuis les dépôts et les iptables vides.

        -
        Edité par d0ctrine 28 octobre 2014 à 11:18:51

        • Partager sur Facebook
        • Partager sur Twitter
          28 octobre 2014 à 11:33:42

          Dans ce cas, commence par voir à configurer ton serveur selon tes désirs et l'usage que tu en auras.

          Vois ensuite à te faire deux, trois vhosts pour que tu puisses avoir accès à tes tests rapidement et proprement.

          Ca te permettra par la même d'affiner le comportement d'apache.

          Pour perl, si le serveur ne le connais pas, il ne peut pas le comprendre. Il faut donc l'installer. Tu as de la chance, les dépôts sont la pour çà ^^

          Il en va de même avec apache. Pour qu'il sache que c'est du perle, il faut lui apprendre à le reconnaitre. A la base, apache ne connais pas grand choses, même pas le php ^^ Tout est sous forme de mod_

          Une fois que tu auras fait le tour de tout çà, tu devrais pourvoir lancer n'importe quel type d’exécutable sur ton serveur ^^

          -
          Edité par Hikingyo 28 octobre 2014 à 11:34:50

          • Partager sur Facebook
          • Partager sur Twitter
          Pensez à poster votre code avec les balises et joindre le contenu des variables qui vous causent des soucis ( ex : var_dump() ).Lisez bien les messages d'erreurs !Google it n RTF !!
            30 octobre 2014 à 11:05:29

            Ok donc j'ai suivis tes conseils, j'arrive à exécuter des scripts grâce au dossier cgi-bin maintenant, comme celui la :

            #!/bin/bash
            
            # Header
            echo "Content-type: text/html"
            
            # Header end
            echo ""
            
            # Content to display in the navigator
            echo '<html><body># -*- mode: shell-script; -*-
            #
            #   Coova-Chilli Default Configurations.
            #   To customize, copy this file to /etc/chilli/config
            #   and edit to your liking. This is included in shell scripts
            #   that configure chilli and related programs before file 'config'.
            
            HS_LOC_ID="1"
            HS_LOC_NAME="hotspot1"
            HS_NASID="hotspot1"
            
            #############################################################
            
            HS_WANIF=eth0.2               # WAN Interface toward the Internet
            HS_LANIF=br-lan               # Subscriber Interface for client devices
            HS_UAMPORT=3990            # HotSpot UAM Port (on subscriber network)
            HS_UAMUIPORT=4990          # HotSpot UAM "UI" Port (on subscriber network, for embedded portal)
            
            # LOCAL MAC addresses
            #HS_MACALLOWLOCAL=on
            #HS_MACALLOW="XX-XX-XX-XX-XX-XX,XX-XX-XX-XX-XX-XX"
            
            # Below this line is pretty much standard for HotSpotSystems
            
            HS_DNS1=8.8.8.8
            HS_DNS2=8.8.4.4
            
            
            
            
            
            .....
            
            </body></html>'
            

            Donc quand je fais un wget dessus je récupère bien mon fichier de conf, même si les balises HTML restent (ce n'est pas trop grave un petit coup de sed et on en parle plus).

            Par contre comme j'ai plusieurs fichier à dl j'aimerai les regrouper dans un tar.gz et télécharger le tout. Sauf que je n'ai aucun idée de la marche à suivre pour télécharger un tar.gz, je ne trouve pas de tuto.

            Quelqu'un à une idée ? svp

            -
            Edité par d0ctrine 30 octobre 2014 à 11:06:00

            • Partager sur Facebook
            • Partager sur Twitter
              30 octobre 2014 à 11:26:17

              d0ctrine a écrit:

              Après avoir fais des recherches il semble que je dois utiliser les cgi-bin d'un serveur web (ici j'utilise apache).

              Pourquoi ? cela ne me semble pas être une bonne idée personnellement.
              • Partager sur Facebook
              • Partager sur Twitter
                30 octobre 2014 à 12:28:31

                Ah. Du coup que me conseil tu ?

                Le but étant qu'au démarrage du hotspot il lance un wget vers un serveur, ce serveur devra alors envoyer un fichier .tar.gz vers le hotspot qui décompressera l'archive etc...

                Les cgi-bin ne sont pas conseillés dans ce cas la ?

                • Partager sur Facebook
                • Partager sur Twitter
                  30 octobre 2014 à 15:05:16

                  C'est juste que le cgi-bin c'est pas très courant et il faut module le module apache alors que tu pourrais très le faire un php.

                  Mais bon si tu as script qui marche autant le garder.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    30 octobre 2014 à 15:25:23

                    OK juste par curiosité tu ferais ça comment en php ? (pas le code en entier juste la logique). Après je maîtrise pas trop le php
                    • Partager sur Facebook
                    • Partager sur Twitter
                      30 octobre 2014 à 15:44:08

                      De la même manière que tu le ferais avec cgi-bin.

                      Sinon moi si devais implémenter ton serveur d'envois de config j'utiliserais lighttpd et son X-Sendfile.

                      En gros cela permet de faire quelque chose comme cela :

                      Ton hotspot demande de télécharger le fichier de config.

                      Au lieu de le télécharger directement lighttpd va faire appel un programme en grâce fastcgi qui va construire la config puis dire lighttpd prend se fichier comme réponse pour ta requête.

                      lighttpd va alors envoyer le fichier de config au hotspot.

                      Si tu n'aimes pas lighttpd il doit y avoir un module apache et nginx doit pouvoir le faire aussi.

                      -
                      Edité par millman 30 octobre 2014 à 16:04:16

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Apache2 problème avec cgi-bin.

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown