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 dir mal diesen Ratgeber an. Dort findet man viele Hilfestellungen.
    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.330
    Zustimmungen:
    131
    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.330
    Zustimmungen:
    131
    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. Steam startet nicht mehr

    Steam startet nicht mehr: moin zusammen, da ich ja jetzt die Oculus Rift habe, wollte ich mal einen flugsimulator via steam ausprobieren. das problem bei der sache ist...
  2. Altes PC Spiel startet nicht

    Altes PC Spiel startet nicht: Hallo, ich habe mir das Spiel "Youngstars Fussballmanager" online bestellt. Als das Spiel endlich angekommen ist, wollte ich es natürlich direkt...
  3. Gebrauchte Server empfehlen

    Gebrauchte Server empfehlen: ich habe wegen Server Ersatzteile diesen Händler gefunden: Servershop24 Bei diesem Onlineshop sind viele gute Servers günstig angeboten: HP DL360...
  4. SA:MP Server Werbung

    SA:MP Server Werbung: Herzlich Willkommen unter meinem Thema.. Ich TracerYT Bekannt auch als Sebi auf meinem GTA SAN Andreas Server möchte hier ein Post machen das Mein...
  5. DNS Server!!!

    DNS Server!!!: Hallo ✋ Ich habe einen HP Laptop mit vorinstalliertem Windows 10 und mein Internet bzw WLAN, welches über den TV und das Handy einwandfrei läuft,...