PhP Script startet Server nicht.

Diskutiere PhP Script startet Server nicht. im Webmaster Hilfe / Programmierer Forum Forum im Bereich Computerprobleme; Hallo, Ich habe folgendes PHP Script(testweiße) erstellt: <?php $output= shell_exec("/home/mta/mta/start.sh start"); echo $output; ?> Der...

  1. #1 toadakadomi, 25.05.2013
    toadakadomi

    toadakadomi Benutzer

    Dabei seit:
    13.06.2012
    Beiträge:
    50
    Zustimmungen:
    0
    Hallo,

    Ich habe folgendes PHP Script(testweiße) erstellt:

    PHP:
    <?php
    $output
    shell_exec("/home/mta/mta/start.sh start");
    echo 
    $output;
    ?>
    Der Output ist auch normal..


    Mein .sh Script(Vom teamspeak3 server geklaut):
    Code:
    #!/bin/sh
    # Copyright (c) 2010 TeamSpeak Systems GmbH
    # All rights reserved
    
    COMMANDLINE_PARAMETERS="${2}" #add any command line parameters you want to pass here
    D1=$(readlink -f "$0")
    BINARYPATH="$(dirname "${D1}")"
    cd "${BINARYPATH}"
    LIBRARYPATH="$(pwd)"
    BINARYNAME="mta-server"
    
    
    case "$1" in
        start)
            if [ -e mta-server.pid ]; then
                if ( kill -0 $(cat mta-server.pid) 2> /dev/null ); then
                    echo "The server is already running, try restart or stop"
                    exit 1
                else
                    echo "mta-server.pid found, but no server running. Possibly your previously started server crashed"
                    echo "Please view the logfile for details."
                    rm mta-server.pid
                fi
            fi
            if [ "${UID}" = "0" ]; then
                echo WARNING ! For security reasons we advise: DO NOT RUN THE SERVER AS ROOT
                c=1
                while [ "$c" -le 10 ]; do
                    echo -n "!"
                    sleep 1
                    c=$((++c))
                done
                echo "!"
            fi
            echo "Starting the TeamSpeak 3 server"
            if [ -e "$BINARYNAME" ]; then
                if [ ! -x "$BINARYNAME" ]; then
                    echo "${BINARYNAME} is not executable, trying to set it"
                    chmod u+x "${BINARYNAME}"
                fi
                if [ -x "$BINARYNAME" ]; then
                    export LD_LIBRARY_PATH="${LIBRARYPATH}:${LD_LIBRARY_PATH}"                    
                    "./${BINARYNAME}" ${COMMANDLINE_PARAMETERS} > /dev/null & 
                    echo $! > mta-server.pid
                    echo "TeamSpeak 3 server started, for details please view the log file"
                else
                    echo "${BINARNAME} is not exectuable, cannot start TeamSpeak 3 server"
                fi
            else
                echo "Could not find binary, aborting"
                exit 5
            fi
        ;;
        stop)
            if [ -e mta-server.pid ]; then
                echo -n "Stopping the TeamSpeak 3 server"
                if ( kill -TERM $(cat mta-server.pid) 2> /dev/null ); then
                    c=1
                    while [ "$c" -le 300 ]; do
                        if ( kill -0 $(cat mta-server.pid) 2> /dev/null ); then
                            echo -n "."
                            sleep 1
                        else
                            break
                        fi
                        c=$((++c)) 
                    done
                fi
                if ( kill -0 $(cat mta-server.pid) 2> /dev/null ); then
                    echo "Server is not shutting down cleanly - killing"
                    kill -KILL $(cat mta-server.pid)
                else
                    echo "done"
                fi
                rm mta-server.pid
            else
                echo "No server running (mta-server.pid is missing)"
                exit 7
            fi
        ;;
        restart)
            $0 stop && $0 start || exit 1
        ;;
        status)
            if [ -e mta-server.pid ]; then
                if ( kill -0 $(cat mta-server.pid) 2> /dev/null ); then
                    echo "Server is running"
                else
                    echo "Server seems to have died"
                fi
            else
                echo "No server running (mta-server.pid is missing)"
            fi
        ;;
        *)
            echo "Usage: ${0} {start|stop|restart|status}"
            exit 2
    esac
    exit 0
    
    Mein problem ist es, dass ich über putty ganz normal den Server starten kann über dieses Script.

    Über PhP hingegen nicht.

    Die .pid Datei wird erstellt usw.., der Server bleibt aber aus.

    Der ganze Ordner hat von mir testweiße die Rechte (777) bekommen.

    Ich weiß echt nicht weiter..
     
  2. Anzeige

    schau mal hier: Windows-Wartungs-Tool. Viele Probleme lassen sich damit einfach beheben. Oftmals ist der PC dann auch schneller!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  3. #2 xandros, 25.05.2013
    xandros

    xandros IT Consultant, Cisco Registered Partner
    Moderator

    Dabei seit:
    05.07.2007
    Beiträge:
    26.065
    Zustimmungen:
    108
    Ort:
    Umkreis Duisburg, neben Mannheim, hinter Hamburg
    Welche Rechte du auf den Ordner setzt spielt wenig Rolle.

    Viel wichtiger ist, welche Rechte du dem User zugewiesen hast, unter dessen Namen die Shell ausgefuehrt wird, in der das PHP-Script laeuft. Wird also z.B. der Shell-Execute-Befehl als PHP-Modul von einem Apache aus aufgerufen, dann laeuft die Shell auch unter der Benutzerkennung Apache....
     
  4. #3 toadakadomi, 25.05.2013
    toadakadomi

    toadakadomi Benutzer

    Dabei seit:
    13.06.2012
    Beiträge:
    50
    Zustimmungen:
    0
    Wie meinste das jetzt?

    Das PHP Script wird als www-data ausgeführt, der ist auch Besitzer des Ordners
     
  5. #4 xandros, 25.05.2013
    Zuletzt bearbeitet: 25.05.2013
    xandros

    xandros IT Consultant, Cisco Registered Partner
    Moderator

    Dabei seit:
    05.07.2007
    Beiträge:
    26.065
    Zustimmungen:
    108
    Ort:
    Umkreis Duisburg, neben Mannheim, hinter Hamburg
    www-data ist der Besitzer des Ordners, in dem das Script sich befindet.
    Ist www-data aber auch berechtigt, den Server neu zu starten und somit auf ein Systemordner zuzugreifen? (In der Regel besitzt www-data dafuer KEINE Berechtigung - und das aus gutem Grund, da sonst ueber Injections von aussen theoretisch ein Zugriff ueber www-data auf Systemanwendungen moeglich waeren!)

    Vielleicht ist es zweckmaessiger, wenn solche Dinge via CGI mit anderen Usercredentials ausgefuehrt werden. Unter Windows gibt es dafuer Impersonate-Richtlinien, die man einhalten sollte. (Unter Linux-Systemen ist das aehnlich.)
     
  6. #5 toadakadomi, 25.05.2013
    toadakadomi

    toadakadomi Benutzer

    Dabei seit:
    13.06.2012
    Beiträge:
    50
    Zustimmungen:
    0
    Währe es denn mögich und sicherer über einen normalen Linux user laufen zu lassen?(Also das Script usw..) Ich meinte nicht root sondern ein eigener extra für dieses Script.
    Wenn ja, wie lässt sich das realißieren?(Hatte mit Shells/PHP-Shells bis jetzt nichts am Hut.)
     
Thema: PhP Script startet Server nicht.
Besucher kamen mit folgenden Suchen
  1. mta server status script

Die Seite wird geladen...

PhP Script startet Server nicht. - Ähnliche Themen

  1. Laptop startet nicht mehr

    Laptop startet nicht mehr: Hallo, Ich habe seit geraumer Zeit Probleme mit meinem Laptop und zwar ist es ein Dell Inspiron 15r 5520. Seit einiger Zeit arbeitet mein Laptop...
  2. Wie kann ich das Python-Script "Pyglossary" öffnen?

    Wie kann ich das Python-Script "Pyglossary" öffnen?: Hallo, ich habe ein paar Wörterbücher im .bgl-Format, die ich gerne in ein anderes Format bringen möchte. Nach ein wenig Recherche habe ich...
  3. Server 2012 R2

    Server 2012 R2: Moin, habe ein Problem mit einem unsrerer Server. Der ist ausschließlich nur für die Türschließanlage da. Dennoch ist das Problem, das der Server...
  4. Excel-Tabelle teilen mit Script?!

    Excel-Tabelle teilen mit Script?!: Moin Leute, ich hoffe ich bin hier richtig und jemand hat eine Idee für mich: Das Problem ist, ich habe eine Excel-Liste, worin sich ca. 60...
  5. GTA V startet nicht ?!

    GTA V startet nicht ?!: hallo zusammen, ich habe die steam version von GTA V, aber sie lässt sich nicht starten. nach einigen google suchaktionen, habe ich rausgefunden...