Forum Linux.général Apache2 + FastCGI + gSOAP

Posté par  .
Étiquettes : aucune
0
19
sept.
2006
Salut tout le monde,

J'ai utilisé gSOAP pour coder un webservice et je voudrais maintenant l'heberger sur mon serveur apache2 (ubuntu).

Voila en gros ce que j'ai fait apres cherche sur le net :

sudo apt-get install libapache2-mod-fastcgi
sudo a2enmod fastcgi
sudo apache2ctl graceful


(apache2 venait detre installe grace au package du meme nom)

Et voici mon fichier http.conf :

[IfModule mod_fastcgi.c]
[Directory "/var/www/fcgi-bin"]
SetHandler fastcgi-script
Options ExecCGI
Allow from all
[/Directory]

AddHandler fastcgi-script .fcgi .fcg
FastCgiServer /var/www/fcgi-bin/index.fcgi -idle-timeout 60 -processes 1
[/IfModule]


(index.fcgi c'est mon binaire compilé)

J'ai ensuite généré un client toujours avec gSOAP pour tester mon webservice et boum : connexion timeout ...
J'ai cherché, geeké et trifouillé mais le mieux que j'ai reussi a obtenir est une erreur 403 :P Bref google m'a decu pour une fois, on trouve tres peu de documentation sur la mise en place du combo apache2/fastcgi/gsoap ... (ne parlons meme pas de la doc de fastcgi qui se contente vraiment du minimum)

Est ce que quelqu'un sait comment mettre en place mon serveur ??

ps: si vous me dites que ca marche sur lighttpd et surtout comment, ca me branche bien aussi ;)
  • # droits

    Posté par  . Évalué à 1.

    tu as vérifié le propriétaire et les droits d'accès de ton binaire ?
    • [^] # Re: droits

      Posté par  . Évalué à 1.

      Oui oui, les droits sont mis pour tout le monde en lecture et en execution.
      Pour le proprietaire j'ai mis root, mais en theorie ca ne devrait rien change non ?
  • # tester fcgi

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

    As-tu testé fcgi avec un hello world simple ? (apt-get install libfcgi-perl puis man fcgi pour l'exemple)
    • [^] # Re: tester fcgi

      Posté par  . Évalué à 1.

      Et bien en fait oui :)
      Pour l'instant mon web service gSOAP se contente de renvoyer l'heure ^^
      C'est tire d'un tuto trouve sur le site de gSOAP, il compile et s'execute. Grace a gSOAP j'ai aussi pu generer le client qui va avec.
      Lorsque je relance apache et que j'execute le client je me prends un timeout ...
      Je pense que ca vient de ma config Apache2 (que je ne maitrise pas vraiment, voir pas du tout).

      Tu aurais un exemple de fichier httpd.conf qui marche avec le hello world de perl s'il te plait ?

      Merci !
      • [^] # Re: tester fcgi

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

        Déja dans apache2, on n'utilise plus httpd.conf mais apache2.conf pour la conf génerique du serveur plus un fichier dans site-available pour chaque sites.
        Pour fcgi pas besoin de modifier apache2.conf

        Par exemple tu rajoute dans /etc/apache2/default

        ScriptAlias /fcgi/ /var/fcgi/
        <Directory /var/fcgi/>
        Options +ExecCGI +FollowSymLinks
        AllowOverride all
        Order allow,deny
        Allow from all
        </Directory>

        dans /var/fcgi tu crée un fichier exemple.fcgi
        #!/usr/bin/perl
        use FCGI;

        my $count = 0;
        my $request = FCGI::Request();
        while($request->Accept() >= 0) {
        print("Content-type: text/html\r\n\r\n", ++$count);
        }

        http://localhost/fcgi/exemple.fcgi

        Et voilou
        • [^] # Re: tester fcgi

          Posté par  . Évalué à 1.

          Merci pour ton aide, malheureusement ca ne marche toujours pas :( J'ai suivi tes consignes et j'ai ouvert http://localhost/fcgi/exemple.fcgi dans firefox voila ce que j'obtiens apres un bon moment : Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. Apache/2.0.55 (Ubuntu) mod_fastcgi/2.4.2 PHP/5.1.2 Server at localhost Port 80 Quand j'execute le script dans un term, pas de soucis, il affiche 'content-type blabla...'. Je ne me suis pas decourage et je suis retourne sur mon gSOAP. J'ai genere le serveur et le client, puis j'ai mis le serveur dans /var/fcgi et execute le client : Error 32 fault: SOAP-ENV:VersionMismatch [no subcode] "SOAP version mismatch or invalid SOAP message" Detail: [no detail] Pourtant le client et le serveur ont ete généré avec le meme binaire. Voila ce qu'il me dit... Il ne faut pas rajouter une ligne dans la config de apache2 ? genre: FastCgiIpcDir /tmp FastCgiServer fcgi/exemple.fcgi -processes 1 Est ce que ca marcherait plus facilement sur Apache1.3 ?
          • [^] # Re: tester fcgi

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

            J'imagine que tu as corrigé et remplcé /etc/apache2/default par /etc/apache2/site-available/default

            Qu'est-ce qu'il y a dans error.log ?

Suivre le flux des commentaires

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