Toon posts:

C++ FastCGI Lighttpd "client exited status 13"

Pagina: 1
Acties:

Onderwerpen


  • Gamebuster
  • Registratie: juli 2007
  • Laatst online: 17-09 17:35
Ik heb een testapp die gebruik maakt van FastCGI
C++:
1
2
3
4
5
6
7
8
9
#include <fcgi_stdio.h>

int main (int argc, char * const argv[]) {
    while( FCGI_Accept() >= 0 ) {
        printf( "Content-Type: text/plain\r\n\r\n" );
        printf( "Hello world in C\r\n" );
    }
    return 0;
}


Deze compileert zonder fouten op mijn Macbook Pro en kan worden uitgevoerd in Terminal:
code:
1
2
3
4
Toby-Hinloopens-MacBook-Pro:~ tobyhinloopen$ /Users/tobyhinloopen/Documents/LivJS/build/Debug/LivJS 
Content-Type: text/plain

Hello world in C


Nou wil ik deze draaien in Lighttpd via FastCGI en krijg ik de volgende error in de log:
code:
1
2
3
4
5
6
7
2010-10-02 18:06:32: (log.c.166) server started 
2010-10-02 18:06:32: (mod_fastcgi.c.1104) the fastcgi-backend /Users/tobyhinloopen/Documents/LivJS/build/Debug/LivJS failed to start: 
2010-10-02 18:06:32: (mod_fastcgi.c.1108) child exited with status 13 /Users/tobyhinloopen/Documents/LivJS/build/Debug/LivJS 
2010-10-02 18:06:32: (mod_fastcgi.c.1111) If you're trying to run your app as a FastCGI backend, make sure you're using the FastCGI-enabled version.
If this is PHP on Gentoo, add 'fastcgi' to the USE flags. 
2010-10-02 18:06:32: (mod_fastcgi.c.1399) [ERROR]: spawning fcgi failed. 
2010-10-02 18:06:32: (server.c.931) Configuration of plugins failed. Going down.


Gestart met:
code:
1
Toby-Hinloopens-MacBook-Pro:~ tobyhinloopen$ sudo lighttpd -D -f /opt/local/etc/lighttpd/lighttpd.conf


Configfile: (/opt/local/etc/lighttpd/lighttpd.conf)
http://pastebin.com/Ni9y64KE

Relevante deel configfile:
code:
1
2
3
4
5
6
fastcgi.server             = ( ".jss" =>
                                 ((
                                   "socket" => "/tmp/jss-fastcgi.socket",
                                   "bin-path" => "/Users/tobyhinloopen/Documents/LivJS/build/Debug/LivJS"
                                 ))
                            )


Het bestand "jss-fastcgi.socket-0" is succesvol aangemaakt door lighttpd in de /tmp/ map, dus daar ligt het ook niet aan. Iedere keer als lighttpd gestart wordt zie ik dat het bestand opnieuw gebruikt wordt (last modified datum veranderd). Het bestand is verder leeg. (0 bytes)

Ik heb gegoogle'd, maar vind geen nuttige informatie over deze error.

Vraag van dit topic: waarom krijg ik deze error en hoe zorg ik ervoor dat Lighttpd mijn FastCGI-app gaat gebruiken bij requests die eindigen op .jss?

[Voor 5% gewijzigd door Gamebuster op 02-10-2010 18:18]

Let op: Mijn post bevat meningen, aannames of onwaarheden


  • HuHu
  • Registratie: maart 2005
  • Niet online
Geen idee hoor, maar heb je iets met dit gedaan:
If you're trying to run your app as a FastCGI backend, make sure you're using the FastCGI-enabled version. If this is PHP on Gentoo, add 'fastcgi' to the USE flags.
?

  • Gamebuster
  • Registratie: juli 2007
  • Laatst online: 17-09 17:35
HuHu schreef op zaterdag 02 oktober 2010 @ 18:45:
Geen idee hoor, maar heb je iets met dit gedaan:


[...]


?
"Make sure you've the FastCGI enabled version"

Een "FastCGI enabled version"... ik ga er vanuit dat een app geschreven op de FastCGI libs een "FastCGI enabled version" is. Zo niet, dan heb ik geen flauw idee wat er bedoeld wordt.

Let op: Mijn post bevat meningen, aannames of onwaarheden


  • Soultaker
  • Registratie: september 2000
  • Laatst online: 22-07 23:43
Vermoedelijk gaat er iets fout met de initialisatie van de FastCGI library of bij het accepteren van een nieuwe connectie. Status code 13 suggereert "access denied" (maar geen idee hoe standaard die codes zijn). Testen op de command line zegt niet zoveel omdat FastCGI dan automatisch CGI emuleert, wat een hele andere interface is.

Om te testen, kun je eens "return FCGX_IsCGI();" bovenaan in main() zetten en kijken wat er dan gebeurt. Als je proces exit met status code 0 dan gaat de initialisatie goed en is het dus inderdaad FCGI_Accept() die faalt. Als je proces exit met status code 1 denkt 'ie blijkbaar (onterecht) dat 'ie gestart wordt in CGI modus. Als je exit met status code 13 dan treedt de fout blijkbaar al bij de initialisatie op en kunnen we verder debuggen. Andere resultaten zijn raar. :P

edit:
De C++ in de topic title kan trouwens wel C worden, want je hebt nog geen regel niet-C-code geschreven, en je gebruikt ook de C API van FastCGI. ;)

[Voor 9% gewijzigd door Soultaker op 02-10-2010 19:46]


  • Gamebuster
  • Registratie: juli 2007
  • Laatst online: 17-09 17:35
C++:
1
2
3
4
5
6
7
8
9
int main (int argc, char * const argv[]) {
    cout << FCGX_IsCGI() << "\n";
    return FCGX_IsCGI();
    //while( FCGI_Accept() >= 0 ) {
    //  printf( "Content-Type: text/plain\r\n\r\n" );
    //  printf( "Hello world in C\r\n" );
    //}
    //return 0;
}


Console:
code:
1
2
3
Toby-Hinloopens-MacBook-Pro:~ tobyhinloopen$ /Users/tobyhinloopen/Documents/LivJS/build/Debug/LivJS 
1
Toby-Hinloopens-MacBook-Pro:~ tobyhinloopen$


Error-log:
code:
1
2
3
4
5
2010-10-02 19:35:55: (log.c.166) server started 
2010-10-02 19:35:55: (mod_fastcgi.c.1104) the fastcgi-backend /Users/tobyhinloopen/Documents/LivJS/build/Debug/LivJS failed to start: 
2010-10-02 19:35:55: (mod_fastcgi.c.1108) child exited with status 13 /Users/tobyhinloopen/Documents/LivJS/build/Debug/LivJS 
2010-10-02 19:35:55: (mod_fastcgi.c.1111) If you're trying to run your app as a FastCGI backend, make sure you're using the FastCGI-enabled version.
If this is PHP on Gentoo, add 'fastcgi' to the USE flags.


Nog steeds dezelfde fout.

[Voor 7% gewijzigd door Gamebuster op 02-10-2010 19:44]

Let op: Mijn post bevat meningen, aannames of onwaarheden


  • Soultaker
  • Registratie: september 2000
  • Laatst online: 22-07 23:43
(Ik had in mijn oorspronkelijke post 0 en 1 omgedraaid, maar dat maakt gelukkig niet uit.)

Ik begin me sterk af te vragen of je applicatie überhaupt wel gestart wordt. Kun je dat eens testen, bijvoorbeeld door in je executable niets anders te doen dan iets naar /tmp/test.txt (ofzo) te schrijven?

Als je applicatie niet gestart wordt, dan slaat status 13 blijkbaar op de FastCGI module. Heeft de webserver geen toegang tot je homedirectory misschien? (Of dat 't probleem is kun je weer testen door je applicatie naar /tmp/test te kopiëren ofzo en je lighttpd config ook aan te passen.)

In de Lighttpd source code zie ik dit staan:
C:
1
2
3
4
5
6
7
            /* exec the cgi */
            execve(arg.ptr[0], arg.ptr, env.ptr);

            /* log_error_write(srv, __FILE__, __LINE__, "sbs",
                    "execve failed for:", host->bin_path, strerror(errno)); */

            exit(errno);

Beetje jammer dat die log-message uitgecomment is, want als dat het probleem is, zou het juist fijn zijn om daar een foutmelding van te krijgen. Maar ik denk dat ze dat gedaan hebben omdat ze eerder daarboven juist allerlei file descriptors gesloten hebben, en ze dus vermoedelijk niet meer naar de logfile kunnen schrijven.

[Voor 37% gewijzigd door Soultaker op 02-10-2010 19:55]


  • Super_ik
  • Registratie: maart 2001
  • Laatst online: 24-09 15:43

Super_ik

haklust!

chroot Lighttpd niet naar nobody ofzo? en heeft het dan wel leesrechten in de betreffende directory?

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


  • Gamebuster
  • Registratie: juli 2007
  • Laatst online: 17-09 17:35
lighttpd had inderdaad geen toegang tot de app in de Documents-folder.
Plaatsen in de temporary-folder heeft gewerkt. Omdat ik 'm daar uiteraard niet kan laten moet ik nog een nieuw plekje vinden, maar dat komt wel goed.

Bedankt allen. Ze mogen wel eens een duidelijkere error toevoegen :P

[Voor 44% gewijzigd door Gamebuster op 02-10-2010 20:12]

Let op: Mijn post bevat meningen, aannames of onwaarheden


  • Olaf van der Spek
  • Registratie: september 2000
  • Niet online
Soultaker schreef op zaterdag 02 oktober 2010 @ 19:22:
De C++ in de topic title kan trouwens wel C worden, want je hebt nog geen regel niet-C-code geschreven, en je gebruikt ook de C API van FastCGI. ;)
So?
Gamebuster schreef op zaterdag 02 oktober 2010 @ 20:11:
Bedankt allen. Ze mogen wel eens een duidelijkere error toevoegen :P
Feature request gesubmit?

[Voor 39% gewijzigd door Olaf van der Spek op 04-10-2010 16:52]


  • EddoH
  • Registratie: maart 2009
  • Niet online

EddoH

Backpfeifengesicht

Hoe staat het trouwens met je JAVA Mario kloon? De 2 weken zijn al een tijdje verstreken :+

  • Gamebuster
  • Registratie: juli 2007
  • Laatst online: 17-09 17:35
EddoH schreef op maandag 04 oktober 2010 @ 17:03:
Hoe staat het trouwens met je JAVA Mario kloon? De 2 weken zijn al een tijdje verstreken :+
JavaScript:
1
/* no comment */

:+

Game Development is leuk met een klein hobby project, maar naarmate het groot wordt en je er over langer termijn aan werkt is het hoofdpijnverwekkend.

Ik ga daarom maar weer verder met iets wat ik al wel kan: Web Development.

Game Development plannen zijn er nog steeds, maar ik denk dat ik er maar wat langzamer naar toe stroom vanuit Web Development (embedded games, webgames, etc)

/b/: Nog meer Javascript op je server...
Toch een project dat toch wat meer binnen re:eel bereik ligt, niet? :9

[Voor 10% gewijzigd door Gamebuster op 04-10-2010 18:05]

Let op: Mijn post bevat meningen, aannames of onwaarheden


  • EddoH
  • Registratie: maart 2009
  • Niet online

EddoH

Backpfeifengesicht

Nouja, goed om te horen dat je het nu in ieder geval wel inziet ;)
Succes ermee.
Pagina: 1


Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Bekijk de onderstaande instellingen en maak je keuze. Meer informatie vind je in ons cookiebeleid.

Functionele en analytische cookies

Deze cookies helpen de website zijn functies uit te voeren en zijn verplicht. Meer details

janee

    Cookies van derden

    Deze cookies kunnen geplaatst worden door derde partijen via ingesloten content en om de gebruikerservaring van de website te verbeteren. Meer details

    janee