Guten Abend,
Ich veröffentliche hier mein CP, an dem ich nun über 8 Monate hinweg gearbeitet habe. DarthXela hatte ursprünglich ein Design dafür designt ( ), dass habe ich jedoch verschlampt ...
Ich denke man, ich werde das CP auch noch erweitern werde, das hier ist nur die (kostenlose) Vorversion
Vorab: Dieses CP hat keinen Installationsmanager & arbeitet über SQLite ( die Basis von MySQL ). Es läuft über SSH & FTP, nichts für Anfänger.
Was kann es ?
Start-Stop-Teil:
Mit dem ControlPanel kannst du deinen Server von jedem Internet-Browser ( der Internetzugang hat* ) starten & stoppen. Dies geschieht über AJAX & SSH, der Browser sendet zuerst einen AJAX-Request an das CP, dass sich dann mit dem Linux-Root verbindet & den Server startet / stoppt. So kann der Server gestartet werden, ohne dass die komplette Seite neu geladen werden muss ...
Servereinstellungs-Teil:
Mit dem Serverconfigurator kann man den Server einstellen, wie man möchte. Aus Zeitgründen habe ich es nicht geschafft, dass man alles einstellen kann ... Außerdem braucht die server.cfg ein Format, was diesem entspricht ( Reihenfolge der Zeilen egal
echo Server.cfg by SAMP-CP wird geladen ...
hostname Streets of San Andreas <Beta>
weburl www.streets-of-sa.de
bind 127.0.0.1
port 7777
announce 1
maxplayers 50
maxnpc 50
lanmode 0
query 0
gamemode0 gamemode 1
filterscripts
plugins mysql sscanf filemanager
rcon_password safetyissafetyandsafetyfirst=)
onfoot_rate 40
incar_rate 40
weapon_rate 40
stream_distance 300.0
stream_rate 1000
logtimeformat [%H:%M:%S]
Alles anzeigen
sonst wirft er eine Exception
Serverview
Der Serverview ist gleich nach dem Login zu sehen & zeigt den Status des Servers an. Mehr gibt es dazu nicht zu sagen =)
Technische Details
Das CP habe ich u.a. gecoded, damit ich mich selber ein bischen lerne
- Sehr Objekt-Programmiert
- Dynamisch gecoded ( die einzelnden Seiten sind in einer Datenbank eingetragen, aus der sie live gelesen werden )
- Großteils AJAX basierend ( ~ 75% der Requests laufen über AJAX )
- leicht ( mit PHP-Kenntnissen ) erweiterbar
- Eigenes Fehlermeldungs-System ( try-catch & errorhandle basierend )
- ( Hier wollte ich noch iwas hinschreiben )
Die Datenbank ist eine SQLite-Datenbank, die Syntax gleicht eigentlich der von MySQL mit Ausnahme davon, dass es kein A_I gibt und das Zeichen ` nicht unterstützt wird. Felder und Tabellen werden also ohne abtrennung geschrieben
class DB
-> openDB()
-> sendQuery(String:$query) returns Result;
-> numRows(Result:$result) returns int;
-> numFields(Result:$result) returns int;
-> fetchAssoc(Result:$result) returns array[]
-> sendQueryfetchAssoc(String:$query) returns array
Einstellen
Das Einstellen ist das komplizierteste an der Sache, denn es gibt kein Installationsmanager. Um es einzustellen, müsst ihr deshalb in den Ordner "core" wechseln und die database.sql öffnen. Dort sehr ihr die SQL-Befehle, mit denen die Datenbank generiert wird. Einfach alles, was in die Tabelle `settings` eingetragen werden würde, anpassen. Jetzt löscht ihr, falls sie vorhanden ist, die "database.db" ( wichtig hierbei ist, dass ihr auf die Endung achtet ) und ruft die index.php auf. Diese knallt euch eine Exception an den Kopf, dass die Datenbank nicht existiert. Einfach die Seite neu laden und alles geht =)
Vorraussetzungen
- PHP:
- PHP 5+
- ssh2 - Lib
- fsockopen
- ftp - Lib
- sqlite - Lib
- vServer / Rootserver:
- Debian 3+ ( "tested" on Debian 3.0 x64, SA:MP scheint aber wegen der 64Bit-Struktur nicht zu laufen
)
- SSH - Server
- FTP-Server
- screen ( normalerweise vorhanden )
- Debian 3+ ( "tested" on Debian 3.0 x64, SA:MP scheint aber wegen der 64Bit-Struktur nicht zu laufen
Screenshots
Schlicht & zweckmäßig Der Fairness halber lasse ich die Links zum Image-Anbieter drinne.
Seitenstruktur
Für die, die ein neues Design haben wollen, habe ich die page.html beigelegt. Dort ist die ( grobe ) Struktur der Seite zu sehen, weiteres müsstet ihr in den "Templates" nachgucken ..
Feedback
Erwünscht =) Beachtet bitte, dass dies über 8 Monate hinweg gecoded wurde, also bitte Bugs reporten. Habe mir zwar nebenbei eine Tech. Dokumentation geschrieben, kam aber an einigen Stellen trotzdem ins Harken und musste vieles deswegen überarbeiten
Changelog
0.2a
SQL-Lücke geschlossen, danke an Trooper
Rechtschreibfehler in den Kommentaren verbessert, wieder danke an Trooper
Download
Pastebin ( index.php 0.2 a
Uploaded.to: 0.2 a
Pastebin ( index.php 0.1 a
Uploaded.to: 0.1 a
Liebe Grüße,
Tion
/E1: Downloads Screens kommen nach
/E2: Spoiler entfernt, Screens kommen noch ...
/E3: Screens, hoffentlich auch neue Version ? ( Nein, leider nicht. Muss mich noch um Troopers Fußnägel kümmern ) ( Ja, doch )
* ist nicht selbstverständlich, ich wurde auch schon von Benutzern angeschieben die mit ihrem Browser nicht auf mein CP kamen. Nach knapp 30 Minuten kam heraus, dass der Rechner, an dem sie das CP aufrufen wollten, gar keinen Internet vorhanden war