php.de

Zurück   php.de > Webentwicklung > Server, Hosting und Workstations

Server, Hosting und Workstations Server-Konfigurationsdateien (.htaccess/httpd.conf) und Arbeiten auf Serverebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.03.2007, 20:24  
Neuer Benutzer
 
Registriert seit: 15.03.2007
Beiträge: 2
Martek
Martek eine Nachricht über ICQ schicken Martek eine Nachricht über MSN schicken
Standard Server für shell_exec() / exec() vorbereiten

Hallo! Ich habe ein kleines Problem. Ich bin mir nicht sicher ob es jetzt eine PHP Frage ist oder eine Apache Frage, aber ich denke das ist auch etwas unwichtiger..

Mein Problem:

Ich habe auf meinem Suse-Linux Server einen CS:Source Server installiert und ein Shellscript erstellt, welches den Server starten und stoppen kann.

Wenn ich dieses per root oder anderem Benutzer aufrufe, dann wird zwar alles richtig ausgeführt, aber ohne Effekt.
Wenn ich die Ausgabe auf dem Bildschirm anzeigen lassen kommt wie es soll
Zitat:
CS:Source Server 1 started!..
Also die selbe Meldung die ich per Shell bekomme. Trotzdem bleibt der Server offline!

Die safe_mode Einstellung habe ich im Vhost bearbeitet, sodass ich überhaupt Zugriff habe auf shell_exec.

Auch das PHP script zum starten ist definitiv richtig, da ich das selbe bereits auf einem anderen Server früher verwendet hatte. Ich vermutete erst, dass es aufgrund unterschiedlicher Benutzerlogins nicht möglich war und habe die Rechte der Files an den wwwrun benutzer angepasst und alles vorsichtshalber auf chmod 0777 gesetzt. Dennoch kein Unterschied.

Ich hoffe ihr wisst was es sein könnte was das Script daran hindert zu laufen, bzw hindert das zu tun was es soll.

Fehlermeldung bekomme ich nicht obwohl ich alles inkl hinweise ausgeben lasse.

EDIT: Ach was mir auch auffällt ist, dass das Aufrufen des Scripts ca 6 Sekunden dauert. Auf dem alten Server ging das deutlich schneller..

Danke für eure Hilfe
Martek
Martek ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.03.2007, 10:29  
Erfahrener Benutzer
 
Benutzerbild von dsmcg
 
Registriert seit: 11.10.2005
Beiträge: 2.405
dsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäre
Standard

zeig mal den wichtigen Teil des Scripts, dann verstehen wir das Problem ein wenig besser.
so wie ich verstanden habe, hast du nen vServer ?!

hast du schon versucht den chown (Besitzer) der Datei anzupassen?
__________________
Wie man Fragen richtig stellt
dsmcg ist offline   Mit Zitat antworten
Alt 16.03.2007, 15:03  
Neuer Benutzer
 
Registriert seit: 15.03.2007
Beiträge: 2
Martek
Martek eine Nachricht über ICQ schicken Martek eine Nachricht über MSN schicken
Standard

Ne es ist ein Rootserver mit Plesk Oberfläche in welchem ich einen Vserver für meine Domain erstellt habe, also safe_mode habe ich so gesehen nicht global verändert sondern nur für den vhost.


Hier der interessante Teil der PHP Datei:
PHP-Code:
<?php
   
if ($_GET['act']=="start")
   {
      
$output shell_exec("srcds start");
      
sleep (3);
      echo 
$output;
    }
?>
Ich habe das ganze auch mit der kompletten Pfadangabe probiert, wobei ich trotzdem keinen Unterschied sehen konnte.

Die Shelldatei srcds sieht so aus:

Code:
#! /bin/bash
#
# Start the Counter-Strike dedicated server.
#
# AUTHORS :
#
# Julien Escario ( pandemik@azilog.net )
# &
# Cedric Rochat ( crochat@younics.org )
#
# ===========================================
#
# What you need:
#
# Linux :)
# awk
# screen
# the srcds_l & cstrike-files (obtainable via steam)
#
# How to use:
#
# Edit the CS_USER-Var to the user running your css-servers
# Edit the DIR-Var to fit your system (just contains the path to the dir that contains srcds_run)
# Edit the PARAMS-Var to fit your needs
# - standard is startup as LAN-server
# if you use multiple scripts on a system you should change the NAME-var (otherwise  
#   all will be stopped if you run the script with "stop"
#
# When this is done, copy the file to /etc/rc.d/init.d (or whereever your system stores the
# scripts for starting the services
# Now you can link the script to your runlevel-dir, here's an example for runlevel 3:
# ln -s /etc/rc.d/init.d/srcds /etc/rc.d/rc3.d/S90srcds
# ln -s /etc/rc.d/init.d/srcds /etc/rc.d/rc3.d/K50srcds
#
# Or use it manualy like:
# /etc/rc.d/init.d/srcds start
# /etc/rc.d/init.d/srcds stop
#
# How to see the server-console:
#
# Just type in: screen -r cssserver1
# More info about screen can be found by typing "man screen" or using this nice link
# http://server.counter-strike.net/help/linuxscreen.html
#
#
# DOC by jwm (jwm@counter-strike.de)

# !!!!!!!!!!!!!! CHANGE THIS TO THE USER YOU USE FOR YOUR SERVER !!!!!!!!!!!!!!!
CS_USER=wwwrun
# You must be logged in as this user (not by su!) to re-attach the screen!

PATH=/bin:/usr/bin:/sbin:/usr/sbin

# # DON'T FORGET TO CHANGE THE PATH TO YOUR NEEDS!
DIR=/srv/www/vhosts/mymartek.de/subdomains/server1/httpdocs

DAEMON=srcds_run

# LAN-server:
#PARAMS="-game cstrike -nomaster -insecure +sv_lan 1 +maxplayers 16 +map de_dust"
# Internet-server:
PARAMS="-game cstrike +map de_dust2 -maxplayers 16 -port 27010 -tickrate 100"

NAME=cssserver1
DESC="CS:S dedicated server"

start() {
   echo "Starting $DESC: $NAME"
   if [ -e $DIR ];
   then
    su $CS_USER -l -c "cd $DIR ; screen -d -m -S $NAME ./$DAEMON $PARAMS"
    echo " ... done."
   else echo "No such directory: $DIR!"
   fi
}

stop () {
   if [[ `su $CS_USER -l -c "screen -ls" | grep $NAME` ]]
   then
       echo -n "Stopping $DESC: $NAME"
       kill $(su $CS_USER -l -c "screen -ls" | awk -F . "\$2 ~ /$NAME.*/ {print \$1}" | awk '{print $1}')
       echo " ... done."
   else
       echo "$DESC $NAME could not be found. Probably not running."
   fi
}



case "$1" in
 start)
   start
   ;;

 stop)
   stop
   ;;

 restart)
   stop
   start
   ;;

 status)
   su $CS_USER -l -c "screen -ls" | grep $NAME > /dev/null
   CHECK=$?
   [ $CHECK -eq 0 ] && echo "$DESC: $NAME is UP" || echo "$DESC: $NAME is DOWN"
   ;;

 *)
   echo "Usage: $0 {start|stop|status|restart}"
   exit 1
   ;;

esac


exit 0
Ich habe mitlerweile herausgefunden, dass ein anderes Startscript funktioniert, welches aber auch ohne dem PHP script nicht richtig mit dem CS:Source Server agiert. Aber wenigstens lässt sich dann der Server starten.

Hier der Quelltext dieses Scripts:
Code:
#!/bin/sh
#Autor : Zyrusthc

#Blos der Name der auf dem Bildschirm für das script ausgeben wird
NAME="MOHA_TDM"
#Arbeitsverzeichnis
BASEDIR="/srv/www/vhosts/mymartek.de/subdomains/server1/httpdocs"
#Das Startcommando
COMMAND="srcds_run -game cstrike +map de_dust2 -maxplayers 16 -port 27010 -tickrate 100"

#Hier werden alle ausgaben rein geschrieben !
LOGFILE=/srv/www/vhosts/mymartek.de/subdomains/server1/httpdocs/restart.log
#Hier bewahrt das Script den PID auf um später den
#Server wieder stoppen zu können
PIDFILE=/srv/www/vhosts/mymartek.de/subdomains/server1/httpdocs/css.pid

case "$1" in

start)
echo "Starte : $NAME"
cd $BASEDIR
if test -f $LOGFILE; then
echo "Vorhandenes Logfile wird fortgesetzt..."
elif test $LOGFILE; then
echo "Logfile nicht vorhanden , erstelle $LOGFILE"
fi

if test -f $PIDFILE; then
echo "PID Datei vorhanden "[OK]""
elif test $PIDFILE; then
echo "PID Datei nicht vorhanden , erstelle $PIDFILE"
touch $PIDFILE
fi

$BASEDIR/$COMMAND 2>> $LOGFILE &
echo $! > $PIDFILE
;;


stop)
PID="`cat $PIDFILE`"
kill -9 $PID
echo "Commando wurde beendet"
rm $PIDFILE
echo "$PIDFILE wurde entfernt"
;;

restart)
PID="`cat $PIDFILE`"
echo " ... Server gestoppt ... Kommando Start wird jetzt ausgefuehrt"
kill -9 $PID
echo "Starte : $NAME"
cd $BASEDIR
if test -f $LOGFILE; then
echo "Vorhandenes Logfile wird fortgesetzt..."
elif test $LOGFILE; then
echo "Logfile nicht vorhanden , erstelle $LOGFILE"
fi

if test -f $PIDFILE; then
echo "PID Datei vorhanden "[OK]""
elif test $PIDFILE; then
echo "PID Datei nicht vorhanden , erstelle $PIDFILE"
touch $PIDFILE
fi

$BASEDIR/$COMMAND 2>> $LOGFILE &
echo $! > $PIDFILE
;;


*)
echo "Usage: $0 Parameter eingeben {start|stop|restart}"
exit 1
;;
esac
Das erste Startscript funktioniert seltsamerweise aber wenn ich mich als wwwrun einlogge per shell.. nur wenn ich per PHP das ausführe passiert nichts..
Martek ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Exec() im IIS funktioniert nicht Superfunk2000 PHP Tipps 2008 24 04.07.2008 15:12
[Erledigt] WAMP unter Windows 2000 Server oder Windows 2003 Server Mecronomecon Server, Hosting und Workstations 3 18.06.2008 09:15
[Erledigt] Server durchsuchen mit php PHP Tipps 2008 7 18.08.2007 12:24
streaming von videos, server lahmt bereits nach einem abruf snowflow Server, Hosting und Workstations 6 30.11.2006 18:04
2ten mysql server installieren Jinonidi Datenbanken 6 08.04.2006 10:06
Frage zu Windows Server 2003 b++ Off-Topic Diskussionen 1 03.03.2006 09:41
Lokales MySQL mit Microsoft SQL Server benpicco Datenbanken 4 06.02.2006 16:20
[Erledigt] verschiedene Versionen auf einem W2K3 Server betreiben PHP Tipps 2006 2 13.01.2006 17:39
[Erledigt] kurze frage zu screen in einem shell script Server, Hosting und Workstations 4 16.12.2005 21:22
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
[Erledigt] mail() versucht die Mails als wwwrun an den SMTP Server zu l Server, Hosting und Workstations 3 15.06.2005 11:25
[Erledigt] Funktionssammlung auf externen Server auslagern PHP Tipps 2005 20 29.05.2005 14:04
Neuer Strato Server apache 2 Mod Rewrite & htaccess Prob Stemmi Server, Hosting und Workstations 4 02.05.2005 00:29
[Erledigt] Mit PHP Script auf einem Root Server per SSH einlogen PHP Tipps 2005 5 27.03.2005 19:24
Brauch MySQL Zugriffsrechte auf einem STRATO Server??? PHP Tipps 2004 12 21.09.2004 15:04

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
shell_exec, php shell_exec, shell_exec php, shell_exec(), shell_exec user, php exec shell_exec, http://www.php.de/server-hosting-und-workstations/43697-server-fuer-shell_exec-exec-vorbereiten.html, php shell_exec screen, apache shell_exec, php shell exec, wwwrun exec, php shell_exec user, linux php shell_exec, php exec css server, exec shell_exec, shell_exec ssh, php exec shell, benutzerrechte wwwrun shell_exec, shell_exec exec unterschied, shell_exec awk

Alle Zeitangaben in WEZ +1. Es ist jetzt 22:07 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.