kostenloser Webspace werbefrei: lima-city


per Pearl CGI-Script eine Anwendung auf dem webserver starten

lima-cityForumProgrammiersprachenSonstige Programmiersprachen

  1. Autor dieses Themas

    fatfox

    Kostenloser Webspace von fatfox

    fatfox hat kostenlosen Webspace.

    ich m?chte mit einem in pearl geschriebenen cgi-script eine lokal auf dem webserver vorhandene anwendung starten

    dazu habe ich folgendes geschrieben:


    #!/usr/bin/perl -w

    #starte xmms
    system("/usr/bin/xmms -m");


    das funzt wunderbar wenn ich das script von der kommandozeile aus starte

    wenn ich es aber im browser bzw. per link aufrufe bekomme ich einen fehler

    Server error!
    The server encountered an internal error and was unable to complete your request.
    Error message:
    Premature end of script headers: xmms.pl
    If you think this is a server error, please contact the webmaster.
    Error 500
    tux
    Wed Mar 8 18:36:46 2006
    Apache/2.0.54 (Linux/SUSE)

    die profis unter euch sehens, ich versuche das script von einer auf einem apachen gehosteten site auszuf?hrem und das betriebsystem unter dem der apache l?uft ist linux, die pearl module sind aktiviert und funktionieren auch.

    f?r hilfe und anregungen zur l?sung des probs danke ich euch im vorraus.

    ps. bevor hier pampflete ?ber sicherheit im web verfasst werden: der webserver ist nicht mit dem internet verbunden, auf ihn wird nur von localhost uber einen user (mich) zugegriffen was solche gef?hrlichen scripte m?glich macht.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Autor dieses Themas

    fatfox

    Kostenloser Webspace von fatfox

    fatfox hat kostenlosen Webspace.

    thx f?r deine antwort...ich werd dir heute abend mal geistig hinterher h?pfen und es mit deiner methode probieren.

    an der auszuf?hrenden datei kann ich nix mehr ?ndern,es handelt sich dabei um xmms die unter /usr/bin/xmms liegt ich will halt das wenn ich auf den link von meiner htmlseite clicke xmms aufgeht.
  4. Autor dieses Themas

    fatfox

    Kostenloser Webspace von fatfox

    fatfox hat kostenlosen Webspace.

    jetzt bin ich verwirrt:

    also mein server ist ja nur lokal verf?gbar deswegen rufe ich das script so auf:

    http://tux/cgi-bin/xmms.pl
    (nich anklicken server is ja nich da)

    das script liegt unter

    /srv/www/cgi-bin/xmms.pl

    und das zu startende programm liegt unter

    /usr/bin/xmms

    ich soll also /srv/www/cgi-bin
    und
    xmms.pl

    mit 755 versehen ja ?

    mal noch ne nebenfrage wenn ich xmms so starten w?rde welcher user hat das denn dann aus systemsicht gestartet ?
  5. Aloha,

    fatfox schrieb:
    mal noch ne nebenfrage wenn ich xmms so starten w?rde welcher user hat das denn dann aus systemsicht gestartet ?


    Der User, unter dem das CGI-Skript ausgef?hrt wurde. Sollte in der Standardkonfiguration der gleiche User sein, dem auch der Webserver "geh?rt" (z.B. www oder so).

    Was ich mir grad' so ?berlegt hab': xmms hat doch eine GUI, zeigt also ein Fenster auf dem Bildschirm an. Ein anderer User (z.B. www) d?rfte theoretisch gar nicht die n?tigen Rechte haben, auf den Bildschirm zu schreiben, oder seh' ich das falsch?
    Die musst du ihm erst mit xhost verleihen.

    MfG,
    thw
  6. Autor dieses Themas

    fatfox

    Kostenloser Webspace von fatfox

    fatfox hat kostenlosen Webspace.

    richtig xmms nutzt eine gui,da liegt vermutlich auch der hund begraben:

    ich habe gestern mal /srv/www/cgi-bin und die darin enthaltenen dateien mit chmod 777 ohne nennenswerte ?nderung an meinem problem bearbeitet, zuvor habe ich aber nochmal in die fehlermeldung des indianers geguckt:

    und ein error 500 Premauture end of script header hei?t ja soviel wie unerwartetes ende des script headers,
    das lag vermutlich daran das kein g?ltiger contenttype definiert war, denn wenn ich ihm den contenttype text/html mit einem g?ltigen html header gebe dann ist die fehlermeldung weg.

    da das script von der konsole aus funktioniert kann es eigentlich nur daran liegen das er keine rechte f?r den bildschirm hat.

    xhost ist die gruppe zu der www geh?ren muss ja ?
    (ich sitze grad nicht vor dem rechner deshalb die dumme frage)

    edit:

    ich habe gerade mal an nem anderen linux-rechner (SuSE 10.0) geschaut, ein normaler benutzer geh?rt den gruppen dialout,video und selbstverst?ndlich users an

    es gibt einen systembenutzer wwwrun, der der gruppe www angeh?rt, wenn ich dem jetzt zus?tzlich noch die gruppen eines normalen users geben sollte der doch eigentlich alles d?rfen was auch ein lokaler benutzer darf oder ?

    Beitrag ge?ndert am 10.03.2006 07:48 von fatfox
  7. fatfox schrieb:
    da das script von der konsole aus funktioniert kann es eigentlich nur daran liegen das er keine rechte f?r den bildschirm hat.


    Denke ich jetzt auch.

    fatfox schrieb:
    xhost ist die gruppe zu der www geh?ren muss ja ?


    Nein, xhost hei?t das Kommando, mit dem du einem andern Benutzer Schreibrechte f?r deinen Bildschirm geben kannst.

    fatfox schrieb:
    es gibt einen systembenutzer wwwrun, der der gruppe www angeh?rt, wenn ich dem jetzt zus?tzlich noch die gruppen eines normalen users geben sollte der doch eigentlich alles d?rfen was auch ein lokaler benutzer darf oder ?


    Stimmt zwar allgemein, aber in deinem speziellen Fall wird's dich nicht weiterbringen. Denn auf den Bildschirm schreiben darf eben nicht "jeder User" sondern nur der, der sich am lokalen Rechner an X angemeldet hat (er k?nnte z.B. auch auf einer Textkonsole eingeloggt sein, dann kann er nicht auf X schreiben. Oder er kann per SSH eingeloggt sein, dann kann er erst Recht nicht auf den Bildschirm schreiben).

    Wenn du dich normal am System anmeldest, darfst nur du auf deine grafische Oberfl?che schreiben. Mit dem Befehl
    xhost +
    deaktivierst du die Sicherheitspr?fungen, so dass jeder Benuzer auf den Bildschirm schreiben darf. Somit also auch der Webserverbenutzer wwwrun. (Das ist ?brigens auch praktisch wenn man GUI-Programme als root starten will).
    Mit
    xhost -
    kannst du deinen X wieder sperren.

    Anmerkung: Es ist nicht ratsam, st?ndig mit der Konfiguration xhost + zu arbeiten, wenn sich andere User per SSH oder sonstwie auf dem System einloggen k?nnen. Denn dann landen s?mtliche GUI-Programme, die diese User starten, automatisch auf deinem Bildschirm, sofern sie nicht absichtlich woanders hin unmgelenkt werden. :-)

    MfG,
    thw
  8. Autor dieses Themas

    fatfox

    Kostenloser Webspace von fatfox

    fatfox hat kostenlosen Webspace.

    thx erstmal soweit, also:

    ich habe mal ein bissel mit dem xhost befehl rumgespielt.

    ich habe als user unter dem der webbrowser zur scriptausf?hrung aufgerufen wird den xhost + gemacht, allerdings funktioniert das script trotzdem nicht selbes spielchen ist es wenn ich es als root oder bei beiden aktiviere, keine einstellung bringt da den gew?nschten erfolg.

    ich habe gesehen das wwwrun in seinen benutzeroptionen keine loginshell bekommen hat, was ja eigentlich richtig so ist k?nnte das vieleicht noch ein grund sein warum es nicht funzt ?

    ich werde heute die rechte der ausf?hrbaren datei von xmms nochmal ?ndern aber ich glaube nicht das es was n?tzt

    wo finde ich denn ev. ne logdatei in der ich schauen k?nnte ob der apache oder der perl-interpreter irgend ne fehlerweldng anbringen die mir vieleicht weiter hilft ?

    tia

    fat_fox
  9. Mh, also ich hab eben mal dein Szenario im "ligth"-Modus nachgebaut, um meine vorangegangenen ?u?erungen zu ?berpr?fen. Hab's allerdings mit PHP gemacht, da ich keine Lust habe meinen Apache jetzt auf CGI umzukonfigurieren :biggrin:

    Also es stimmt schonmal, dass der neue Prozess mit den Rechten des Webserver-Benutzers gestartet wird. Nach einem xhost + startet mein kwrite (aus PHP aufgerufen) immerhin, haut mir aber immer noch jede Menge Fehlermeldungen um die Ohren, weil er auf seine Konfigurationsdateien keinen Zugriff hat (was ja auch richtig ist). Allerdings startet es ?berhaupt und man kann mit arbeiten, an der fehlenden Loginshell scheint's also nicht zu liegen (mein Apache2 hat auch keine Loginshell).

    Ein einfaches xhost + als normaler Benutzer setzt die n?tigen X-Rechte. Die Dateirechte sollten ja noch richtig gesetzt sein (lesbar und ausf?hrbar f?r Welt, o+rx, Modus 755; siehe Post von ttobsen).

    fatfox schrieb:
    wo finde ich denn ev. ne logdatei in der ich schauen k?nnte ob der apache oder der perl-interpreter irgend ne fehlerweldng anbringen die mir vieleicht weiter hilft ?


    Logdateien werden in einem Linux-System f?r gew?hnlich unter /var/log abgelegt. Apache2 schreibt seine Logdatei bei mir (Kubuntu 5.1) nach /var/log/apache2. Die Fehlermeldungen von kwrite stehen bei mir an Ende der Datei /var/log/apache2/error.log.
    M?glicherweise schreibt der Perl-Interpreter aber auch ein eigenes Error-Log oder benutzt den Syslog-Daemon. Die entsprechenden Logfiles findet man eigentlich recht gut anhand des Namens.
    Zur Anzeige empfehle ich ?brigens cat, da muss man nicht so viel scrollen :biggrin:

    HTH,
    thw
  10. Autor dieses Themas

    fatfox

    Kostenloser Webspace von fatfox

    fatfox hat kostenlosen Webspace.

    ich habe das gef?hl ich habe mich selbst verarscht...

    also ich hab den apachen installiert mit den modulen f?r pearl php phyton und ruby und hab ihn in der standardconfig gelassen wie yast ihn im suse linux 10.0 vorkonfiguriert

    dann hab ich ein perl-testscript von selfhtml dr?berlaufen lassen und war der meinung, da dieses script geht sollte das auch alles funzen, was es ja nun nicht tut

    in welcher sprache das am ende geschrieben ist ist mir ganz egal, hauptsache es geht irgendwie k?nntest du ev mal eine kommentierte version deines php scrits posten ?

    ich werde das dann gemeinerweise einfach mal kopieren um rauszufinden ob ich ev. an der apache konfig arbeiten muss weil es ja durchaus m?glich ist das bestimmte dinge durch die modulconfiguration nicht erlaubt sind

    wenn du besondere configeinstellungen gemacht hast damit das script funzt w?re es nat?rlich hilfreich diese auch zu wissen.

    ?berdies kannst du das einstellungsproblem l?sen indem du eine kopie der einstellungen in den home von wwwrun kopierst (liegt irgendwo in /var/waswei?ich das bekommst du raus wenn du bei der benutzerverwaltung die systembenutzer anzeigen l?sst und dort die details zu wwwrun betrachtest)

    ich danke dir f?r deine geduld mit mir

  11. Hallo,

    fatfox schrieb:
    in welcher sprache das am ende geschrieben ist ist mir ganz egal, hauptsache es geht irgendwie k?nntest du ev mal eine kommentierte version deines php scrits posten ?


    Na gut, ausnahmsweise...

    system("/usr/bin/kwrite");


    Der Funktion system() wird eine Kommandozeile ?bergeben. Ein Aufruf von system() startet eine neue Shell, welche daraufhin den angegebenen Befehl ausf?hrt (das ist tats?chlich mein komplettes Testskript).

    Aber f?r weitere Fragen im Zusammenhang mit PHP solltest du dann vielleicht besser einen neuen Thread im PHP-Forum er?ffnen.


    fatfox schrieb:
    wenn du besondere configeinstellungen gemacht hast damit das script funzt w?re es nat?rlich hilfreich diese auch zu wissen.


    Eigentlich nichts ?ber die normalen PHP-Einstellungen hinaus. Hilfe dabei gibt's im Men? unter "Suche" bestimmt schon 'ne ganze Menge, ansonsten im Software- oder PHP-Forum.

    fatfox schrieb:
    ?berdies kannst du das einstellungsproblem l?sen indem du eine kopie der einstellungen in den home von wwwrun kopierst [...]


    Danke f?r den Hinweis. Mein Hauptproblem mit der apache2-Config ist eher, dass ich nicht freiwillig meinen apache2 f?r CGI konfiguriere, solange ich keinen wirklich triftigen Grund f?r habe :biggrin:

    fatfox schrieb:
    ich danke dir f?r deine geduld mit mir


    Klar, keine Ursache, immer wieder gern.

    Liebe Gr??e,
    thw
  12. Autor dieses Themas

    fatfox

    Kostenloser Webspace von fatfox

    fatfox hat kostenlosen Webspace.

    thw, du bist min gott

    also mit php funzt es einwandfrei,nehm ich halt das, alles weitere dann im phpforum.

    danke nochmal, auch an ttobsen
  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!