AW: Shoutcast-Webinterface
hallo ihr zwei beiden, und all die anderen.
hier mal nen denkanstoss und hilfeanleitung für ein shoutcastinterface
@Mr.BSE
ich hoffe du haust das nicht einfach so raus, so wie es sich anhört wird er auch damit geld verdienen, ich mag solche leute net, die irgendwohin kommen, nach ner Fertigen lösung fragen und dann nen knappes danke udn das wars wenn überhaupt noch, man selbst haut sich tage und nächte um die ohren und dann kommt immer noch was nach, kannst das noch kannst das noch und das noch und das wär auch gut, achja und das soll es auch noch können...
Laß dich nicht ausnutzen, deine zeit ist auch nicht umsonst.
Wieso fangen die leute nich mal an selber was zu machen, nee es gibt immer dumme die das Fertige liefern, ist der weg des Geringsten wiederstandes oder?
für alle andren die lern fähig und willig sind..
im übrigen schon ein paar hundertmal in dieser oder ähnlicher form in diversen suchmaschinen gefunden... Mister Goggle und Co es gibt sogar fertige patentlösungen, gut oder nicht möchte ich nicht beurteilen.
finger gespitzt und mal selbst was gemacht, statt immer nur andere...
professionelle hilfe gibt es in diversen selfs und so...
Radiomachen ist euer hobby, dann kümmert euch auch drum das ihr den rest den ihr braucht auch einfliesst in euer hobby. es soll ja alle bequem sein, STARTEN, STOPPEN RESTARTEN, AUTO-DJ vielleicht noch ein script was euren PC allein ans BETT fährt???
Oder braucht jemand der gern Auto fährt als Hobby, kein Sprit, keine Wagenpflege usw.???
Schritt 1.
Erstelle auf deinem Server im documentenroot einen Ordner der möglichst lang und unsinnig ist
z.Bsp.
aks34234dkja4h7sdkjakjhakjskjdfdaszutr2364uhuhkjadha
also in dieser form in etwa
er ist recht schwer zu erraten anschließend schütze ihn noch mit Passwort und lege eine
leere Index.html, index.php Datei dort ab.
ggf. kannst du auch in der Index Datei einen Reload zur Stammseite einbauen. sollte also doch jemand dorthin gelangen, kommt er automatisch auf die Hauptseite
das kann man ggf. so machen
zur Index.html von der Hauptseite.
sähe die index.html Seite in unserem Verzeichnis dann etwa so aus
<HTML>
<HEAD>
<SCRIPT LANGUAGE=JAVASCRIPT>window.location.href='../index.html';</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
wenn die Hauptseite keine INDEX.HTML hat sondern eine INDEX.PHP dann einfach das HTML in PHP ändern.
sollte soweit aber eigentlich klar sein.
schritt 2.
wir wollen 2 Streamserver haben und einen tester
wir erstellen in unseren aks34234dkja4h7sdkjakjhakjskjdfdaszutr2364uhuhkjadha Ordner 3 weitere Ordner
zum Beispiel
dsl_stream DSL-Stream
isdn_stream ISDN-Stream
test_stream TEST-Stream
in diese Ordner kopieren wir jeweils den Shoutcast, somit haben wir dann 3-mal den Shoutcast auf den Server.
wir ändern in jedem Verzeichnis die sc_serv Datei in einen anderen Namen, muss sein damit wir später den SC am Namen unterscheiden und Stoppen können.
in unserem Beispiel könnten es dann so sein
dsl -stream -> aus sc_serv wird dsl_serv
isdn-stream -> aus sc_serv wird isdn_serv
test-stream -> aus sc_serv wird tester_serv
nun passen wir noch die configs jeweils an
die wichtigsten Parameter die geändert werden sollten sind folgende
MaxUser=30 <tragt dort eure MAXIMAL zugelassenen Hörer ein, Übertreibt es aber net, denkt realistisch Serverleistung, Anbindung etc.
AdminPassword=xyzabcd123 <unbedingt ändern sollte vor AdminPasswort noch ; sein bitte das ; wegmachen
Password=radiobse4711 <auch unbedingt ein eigenes Setzen
PortBase=8020 <bitte freie Ports nutzen die sonst nicht genutzt werden, denkt an verschiene Server Protokolle: 8443, 4663, 10000 80, 21, 25 usw. sind meistens schon anders benutzt
LogFile=sc_serv.log <dieses logfile bitte anpassen an den Stremnamen DSL_serv.log,isdn_serv.log, tester_serv.log oder ähnlich
den Rest solltet ihr so lassen wie vorgegeben
somit haben wir jetzt folgende verzeichnissstrucktur + dateien
Hauptverzeichnis
aks34234dkja4h7sdkjakjhakjskjdfdaszutr2364uhuhkjadha/
dsl_stream/
dsl_serv
sc_serv.conf
isdn_stream/
isdn_serv
sc_serv.conf
test_stream/
tester_serv
sc_serv.conf
das war es soweit schon, denkt noch an die Rechtevergabe
chmod 755 sollte genügen
nun kommen wir zu unseren eigentlichen inter-(net)-face
um es für lern und Studienzwecken einfach zu halten, erstellen wir uns für jeden befehl eine eigene PHP Datei
1. erstelle in deinem ADMIN Ordner dort wo du später den SC starten stoppen oder Restarten möchtest eine Datei namens
sc_stop.php
in dieser kopierst du folgende Zeilen
<?
$servername = $_REQUEST['name'];
$pass = $_REQUEST['pass'];
$pruefung = @file("aks34234dkja4h7sdkjakjhakjskjdfdaszutr2364uhuhkjadha/".$servername."_stream/sc_serv.conf");
while (list ($line_num, $line) = @each ($pruefung))
{
$ident = explode("=",$line);
if($ident[0] == "AdminPassword")
{
$ident[1]=md5(trim($ident[1]));
if ($pass==$ident[1])
{
system("killall -9 '$servername'_serv");
echo "gestoppt";
}
}
}
?>
Um später einen Shoutcast zu stoppen müssen wir die STOP.PHP Datei aufrufen
übergeben wird der NAME (im Beispiel also stop.php?name=dsl oder stop.php?name=isdn oder stop.php?name=test)
das allein wäre aber sehr unsicher, darum übertragen wir noch das ADMINPASSWORT
allerdings muss das Passwort schon md5(kodiert)
im Beispiel oben das Adminpasswort xyzabcd123 wäre also folgendes zu übergeben.
stop.php?name=test&pass=bb138e2830c139f2757f442cc9423016
wenn alles richtig war, sollte der Shoutcastserver TEST gestoppt werden. wenn wir ihn zuvor doch gestartet hätten.
dazu kommen wir jetzt
im Grunde fast das gleiche wie oben
start.php
<?
$servername = $_REQUEST['name'];
$pass = $_REQUEST['pass'];
$pruefung = @file("aks34234dkja4h7sdkjakjhakjskjdfdaszutr2364uhuhkjadha/".$servername."_stream/sc_serv.conf");
while (list ($line_num, $line) = @each ($pruefung))
{
$ident = explode("=",$line);
if($ident[0] == "AdminPassword")
{
$ident[1]=md5(trim($ident[1]));
if ($pass==$ident[1])
{
system("aks34234dkja4h7sdkjakjhakjskjdfdaszutr2364uhuhkjadha/".$servername."_stream/".$servername.".sh");
echo "gestartet";
}
}
}
?>
Halt Moment mal, wird der eine oder andere sagen, der aufgepasst hat, da stimmt was nicht mit den Pfaden bzw. Dateinamen.
Stimmt, da stimmt was nicht und was???
Genau, das Starten des Shoutcast weißt auf eine $servername.sh Datei, aber die gibt es doch gar nicht in den Verzeichnissen.
ich sage nur... RUHE ist des MENSCHen heilig, nur verrückte haben es eilig.
diese Datei erstellen wir noch in ruhe.....
der Aufruf zum starten würde dann wie folgt sein.
start.php?name=test&bb138e2830c139f2757f442cc9423016
geht aber auch noch nicht... solange wir die .sh Dateien nicht erstellt haben.
und dazu kommen wir jetzt
in jedem Ordner wo wir unsere Shoutcast's drin haben müssen wir eine Datei erstellen
also eine dsl.sh
eine isdn.sh
und eine test.sh
in allen steht fast das gleiche drin
ganz zum Anfang muss folgendes stehen
#!/bin/bash
bzw. der Pfad zu euren bash Interpreten, sollte aber meistens so gehen. hängt aber von eurem System ab.
darunter kommt eine einzige Zeile die unter umständen recht lang wird
ausgehend von eurem ROOT Verzeichnis auf dem Server bis zum Verzeichnis des/der Shoutcastserver der PFAD
bei mir wäre das zum Beispiel für den DSL stream
/srv/www/vhost/Domainname.de/httpdocs/aks34234dkja4h7sdkjakjhakjskjdfdaszutr2364uhuhkjadha/dsl_stream/
wie man erkennen kann ist dort wieder unser chaotisches Verzeichnis und das DSL_STREAM Verzeichnis
und direkt dazu noch der Dateiname unseres DSL_SHOUTCAST_Servers den wir oben in dsl_serv umbenannt hatten
somit sieht der erste teil wie folgt aus
/srv/www/vhost/Domainname.de/httpdocs/aks34234dkja4h7sdkjakjhakjskjdfdaszutr2364uhuhkjadha/dsl_stream/dsl_serv
getrennt von einem Leerzeichen folgt der Pfad nochmals und hinten dran der Dateiname für die Configdatei des DSL_servers
die wir getrost sc_serv.conf belassen hatten
somit haben wir folgende Zeile
/srv/www/vhost/Domainname.de/httpdocs/aks34234dkja4h7sdkjakjhakjskjdfdaszutr2364uhuhkjadha/dsl_stream/dsl_serv /srv/www/vhost/Domainname.de/httpdocs/aks34234dkja4h7sdkjakjhakjskjdfdaszutr2364uhuhkjadha/dsl_stream/sc_serv.conf
und zu guter letzt noch mal ein Leerzeichen und folgendes hinten dran "> /dev/null &" ohne die Gänsefüße
also sieht die .sh Datei für den dsl_stream wie folgt aus
#!/bin/bash
/srv/www/vhost/Domainname.de/httpdocs/aks34234dkja4h7sdkjakjhakjskjdfdaszutr2364uhuhkjadha/dsl_stream/dsl_serv /srv/www/vhost/Domainname.de/httpdocs/aks34234dkja4h7sdkjakjhakjskjdfdaszutr2364uhuhkjadha/dsl_stream/sc_serv.conf > /dev/null &
wenn das alles richtig gemacht wurde, dann lässt sich der erste Server schon mal starten und stoppen und das per Web.
nun erstellen wir noch im isdn_stream Ordner und test_stream Ordner die Datei passenden .sh Datei
also isdn.sh und test.sh... kopieren den pfad der einfachheit halber aus der dsl.sh Datei und ändern nur noch den Namen
dsl in isdn bzw in test.
alle .sh Dateien müssen nun noch das recht bekommen ausgeführt zu werden, (755)
und das war es dann eigentlich schon.
struktur abschließend
aks34234dkja4h7sdkjakjhakjskjdfdaszutr2364uhuhkjadha/
dsl_stream/
dsl_serv
sc_serv.conf
dsl.sh
isdn_stream/
isdn_serv
sc_serv.conf
isdn.sh
test_stream/
tester_serv
sc_serv.conf
test.sh
jetzt sollten sich alle 3 Server starten und stoppen lassen
start.php?name=dsl&pass=bb138e2830c139f2757f442cc9423016
stop.php?name=dsl&pass=bb138e2830c139f2757f442cc9423016
start.php?name=isdn&pass=bb138e2830c139f2757f442cc9423016
stop.php?name=isdn&pass=bb138e2830c139f2757f442cc9423016
start.php?name=test&pass=bb138e2830c139f2757f442cc9423016
stop.php?name=test&pass=bb138e2830c139f2757f442cc9423016
ich hoffe, dass es vielen von euch weitergeholfen hat.
bitt denkt dran das diese Lösung nicht das Non Plus ultra ist, allein aus dem Sicherheitsaspekt heraus, da alles letztlich direkt im Webordner liegt.
es soll auch einfach nur bissel zum basteln anregen, und keine Komplettlösung darstellen.
und nun viel Erfolg
beim selber basteln