Fatal error, Mumble Viewer und Webinterface streiken

Muven

New Member
Moin Moin

Wie ich schon herausgefunden habe, gibt es hier Personen, die sehr viel tiefer in der Materie drin stecken, als ich :)
Somit hoffe ich, dass man mir hier helfen kann. Ich habe es schon wo anders versucht, aber leider keine Antwort erhalten.
Ich habe einen Mumble-Server auf einem Ubuntu-V-Server am Laufen. Das funktioniert auch soweit ganz. Allerdings gibt es Probleme mit dem MAP-Webinterface:

Fatal error: ice_exeption() [function.ice-exeption]: unknown operation getUsers invoked on proxy of type ::Murmur::Server in /var/www/map/inc/resources/php/slice.php on line 82

und dem Mumble-Viewer:

Ice_UnknownLocalException Object ( [unknown] => ../../include/Ice/BasicStream.h:469: Ice::UnmarshalOutOfBoundsException: protocol error: out of bounds during unmarshaling [message:protected] => [string:private] => [code:protected] => 0 [file:protected] => /usr/share/mumble-server-web/www/weblist.php [line:protected] => 24 [trace:private] => Array ( [0] => Array ( [file] => /usr/share/mumble-server-web/www/weblist.php [line] => 24 [function] => getchannels [class] => Ice_ObjectPrx [type] => -> [args] => Array ( ) ) ) )
Name Channel

Aber in der phpinfo steht:
ice
Ice support enabled
Ice version 3.3.0

Gebe ich ein: netstat -apn | grep 6502
spuckt er aus: tcp 0 0 127.0.0.1:6502 0.0.0.0:* LISTEN 12055/murmurd

Murmur läuft also mit ice.
Ich bin dem Tutorial auf http://mumble.sourceforge.net/ICE gefolgt.
Ich glaube trotzdem, dass es irgendwie an ice liegt. Wenn ich in putty eingebe: apt-get install icecpp libzeroc-ice32 php-zeroc-ice lzma

Sagt er mir für jedes dieser Programme, dass es bereits auf dem neustem Stand ist.
Vielleicht wird ja wer von den Profis hier aus den Meldungen schlau ;)

Falls noch mehr Informationen nötig sind, stelle ich diese gerne bereit.

Ich habe also Schwierigkeiten, aus der Fehlermeldung schlau zu werden.

Somit bedanke mich für jede Antwort, mit freundlichen Grüßen, Muven
 
Last edited by a moderator:
Vielen danke für die schnelle Antwort.
Mal sehn, wann ich die Zeit finde, mich intensiver damit zu beschäftigen, momentan kennt er den Befehl make nicht, obwohl python installiert ist.

Ich melde mich, wenn ich ein Ergebnis habe,
gruß, Muven
 
momentan kennt er den Befehl make nicht, obwohl python installiert ist
Ich weiss ja nicht wie das bei dir ist, aber bei mir ist `make` eine Binary und kein Python-Skript...
Die build-essential koennte Abhilfe schaffe ;)
 
Ahh, achso. Ich bin das erste mal darauf gestoßen in verbindung mit python. Daher habe ich das so reininterpretiert ^^
http://packages.ubuntu.com/de/dapper/make
apt-get install libc6
apt-get install make
Nun habe ich das benötigte Paket zusammen mit dem Paket make.
make kennt er nun.
Danke erstmal.

Allerdings habe ich nun Probleme mit der Anpassung der Make.rules.php
Hier steht nun: prefix ?= /opt/Ice-$(VERSION)

Wenn ich die Datei unverändert lasse, sagt er nach dem Befehl make:
../config/Make.common.rules:109: *** Unable to find slice2php in /opt/bin, please verify ICE_HOME is properly configured and Ice is correctly installed.. Stop.

OK, nen bissel gestöbert, die icecpp liegt unter /urs/bin.
Das Tutorial sagt:
export ICE_HOME=/usr
Gesagt, getan, make, er spuckt aus:
../config/Make.common.rules:109: *** Unable to find slice2php in /usr/bin, please verify ICE_HOME is properly configured and Ice is correctly installed.. Stop.

Ok, denk ich mir. apt-get install slice2php.
Das Paket findet er nicht. Naja, war nen Versuch wert.
Du merkst, ich bin ein Hobbybaster, der nichts diesbezüglich gelernt oder studiert hat. Ich miete nun seit zwei Jahren einen kleinen V-Server. Bisher hat mich das strikte entlanghangeln am Tutorial immer zum Ziel gebracht. Bisher wollten meine Clan-Mitglieder aber auch nicht mehr als TS³, eine kleine Website und nen CoD4-Server ^^. Murmur ist schon etwas schwieriger.

Danke nochmals für die Antworten.
Gruß, Muven
 
Last edited by a moderator:
Was versuchst du grade zu kompilieren?

Du brauchst bei Debian nichts ausser "apt-get install mumble-server icecpp libzeroc-ice32 php-zeroc-ice lzma" wobei mumble-server nur drin steht um seine Abhaengigkeiten zu loesen; ich wuerde immer die aktuelle statische stable vom Hersteller beziehen.
Die entsprechenden Pakete hast du ja bereits installiert.

Du merkst, ich bin ein Hobbybaster, der nichts diesbezüglich gelernt oder studiert hat. Ich miete nun seit zwei Jahren einen kleinen V-Server.
Viele hier - ich inklusive- haben kaum oder kein schulisches "Training" in BEzug auf Netzwerk, Server und Administration sondern dieses ebenfalls aus diversen Quellen zusammengetragen. Dein Fehler ist wahrscheinlich das "an den Tutorials entlang hageln" durch welches meist das gewuenschte Ergebnis kommt.
Nur wenn man was kaputt macht und es reparieren muss (und will) lernt man wirklich wie das System aufgebaut ist ;)
Allerdings sind dann Backups Pflicht...
 
Also, wenn ich das richtig verstanden habe, ist mein ICE nicht aktuell genug. Ich gebe also ein:
apt-get install icecpp libzeroc-ice32 php-zeroc-ice lzma
Er spuckt aus:
icecpp ist schon die neueste Version.
libzeroc-ice32 ist schon die neueste Version.
php-zeroc-ice ist schon die neueste Version.
lzma ist schon die neueste Version.

In der php-info steht aber ICE-Version ist 3.3.0
Auf der ICE-Downloadsite steht als neuste Version aber 3.4.1
Also muss ich mir diese runterladen und manuell installieren, da die stable nicht aktuell genug ist. Runtergeladen, entpackt, und bei der Installation gibts jetzt die Probleme. ^^

Das ist das, was ich gerade versuche: (Zitat von
http://mumble.sourceforge.net/ICE )
" Download Ice-3.3.0.tar.gz (mitlerweile ist es die Ice-3.4.1.tar.gz) from ZeroCs downloads page, untar, cd, cd into php, as written in the INSTALL file export ICE_HOME environment variable pointing to your ice install dir. If you installed it with an rpm, type

export ICE_HOME=/usr

then make, and in the lib folder, there'll be your IcePHP.so file. "


Ich sitzte jetzt im Verzeichnis Ice-3.4.1/php und tippe make ein. Dabei komme die oben beschriebenen Fehlermeldungen.

Natürlich will ich was lernen, sonst würde ich meinen Anbieter 20€ überweisen und hätte Murmur druff ;)

Nur am Rande, momentan benutze ich Ubunto, sollte ich wieder zu Debian wechseln, macht das einen Unterschied ?

Danke für Antworten, mfg Muven
 
Die in Debian enthaltene ICE-Version ist aktuell genug zum Betrieb mit Murmur, minus dem oben verlinkten Problem mit der UserInfoMap in der Murmur-Slice.
Sobald du die Slice entsprechend korrigiert hast (und die aktuelle, dem Murmur-Server beiligende Slice benutzt was dein Problem loest) sollte es funktionieren.\

Ubuntu und Debian ligen nah genug aneinander, kannst also Debian gegen Ubuntu ersetzten.
 
Hehe, wunderbar, ich danke dir. Ich sehe Licht am Ende des Tunnels.
Nur komme ich mir etwas blöd bei der Frage vor:
Wie korrigiere ich die Slice und was ist das ?:D
 
Die slice ist die Datei welche du in der PHP-Extension mit "ice.slice = [PFAD]/Murmur.ice" konfigurierst. In dieser stehen alle Funktionen sowie die erwarteten Typen und Parameter dokumentiert, sind also quasi die Definition der API.

Korrigieren tust du sie mit einem Editor deiner Wahl, es ist eine reine Textdatei. Was du korrigieren musst steht im Link in meinem ersten Post.
 
ok, gehn wir mal das der Reihe nach durch.
In der php.ini steht:
extension_dir = "/usr/lib/php5/20060613+lfs"
Also wandere ich da mal rein.
Da gibt es unter anderem die Datei IcePHP.so. Ich denke mal, das stimmt so.

Also wandere ich nochmal ins Verzeichnis /etc/php5/cond.d
Ich öffne die IcePHP.ini. In ihr steht nur:
extension = IcePHP.so
ice.slice = /var/lib/mumble-server/Murmur.ice
Diese Murmur.ice existiert auch.

Aus Interesse öffne ich noch zusätzlich die MurmurPHP.ini. In ihr steht:
ice.slice=/usr/share/slice/Murmur.ice
Und diese Murmur.ice existiert ebenso.

Er gibt also die Murmur.ice unter zwei verschiedenen Pfaden an, die beide aber korregt sind. Liegt hier der Fehler?

Vielen Danke nochmal für die Hilfsbereitschaft, mfg Muven
 
Last edited by a moderator:
Welchen Murmur benutzt du? Ich wuerde, wie bereits oben erwaehnt, immer die statisch gelinkte aktuelle Version von der Herstellerseite nehmen, nicht die veraltete Debian-/Ubuntu-interne.

Welche ini ausgewertet wurde kannst du ueber phpinfo() einfach rausfinden, dort findet sich der ganze Pfad.

Solltest du Murmur wie empfohlen (fertig kompiliert) herunterladen, so musst du den Pfad anpassen damit er der mitgelieferten Slice entspricht.
 
Die Murmur-Version ist 1.2.3 . Das ist die aktuellste.

Mir scheint, als sei ice.slice=/usr/share/slice/Murmur.ice die alte Datei von der Murmur-stable.
ice.slice = /var/lib/mumble-server/Murmur.ice gehört somit zum aktuellen Murmur, da ich auf diese neue im Tutorial verlinkt habe.

Lösche ich nun die MurmurPHP.ini, startet Apache nicht mehr.
Tausche ich den Pfad ice.slice=/usr/share/slice/Murmur.ice in der Murmur.PHP.ini gegen /var/lib/mumble-server/Murmur.ice aus, startet Apache nicht mehr. Tausche ich die Datei unter /usr/share/slice/Murmur.ice gegen die Aktuelle aus, startet Apache nicht mehr.

Ich interpretiere: Sobald PHP die aktuelle Murmur.ice läd, kommt es zum Problem. Als Alternative greift er auf die alte zu. Gibt es diese nicht, wird der Startvorgang, allerdings ohne Fehlermeldung unterbrochen.
Somit ist es also wahrscheinlich, dass, wie du zu Anfang gesagt hast, diese ICE-Version mit der neuen Murmur.ice nicht klarkommt. Also müsste ich mal versuchen, das neue ICE zu installieren.
Gibt es eine Möglichkeit durch Änderung der sources.list an das aktuellste ICE, also nicht als stable, zu kommen ?

Danke für deine Zeit, mfg Muven :D

Nachtrag: Wenn ich ice mit der aktuellen Murmur.ice lade, und Apache nicht mehr startet, erscheint folgendes in der error.log:
PHP Fatal error: Unable to start ice module in Unknown on line 0
/usr/share/slice/Murmur.ice:9: error: Can't open include file "Ice/SliceChecksumDict.ice"
#include <Ice/SliceChecksumDict.ice>
1 error in preprocessor.

Die SliceChecksumDict.ice liegt in /usr/share/slice/Ice
 
Last edited by a moderator:
Somit ist es also wahrscheinlich, dass, wie du zu Anfang gesagt hast, diese ICE-Version mit der neuen Murmur.ice nicht klarkommt. Also müsste ich mal versuchen, das neue ICE zu installieren.
Nein, ICE sollte kompatibel sein. Ich habe aktuell nicht die Zeit eine Testmachine zum Verifizieren auf zu setzen, aber vor paar Wochen hatte ich das noch ohne Probleme im Regelbetrieb.

Lies mal mittels phpinfo() aus welchen der ICE-Pfade er denn nun ausfuehrt,
dann brauchst du dich nur auf eine Datei zu konzentrieren ;)

Der Fix zum Problem ist hier beschrieben:
http://www.zeroc.com/forums/help-center/5314-fatal-error-php-slicechecksumdict-ice-murmur-ice.html

Genauer gesagt:
Code:
ice.slice= -I/opt/Ice-3.3.1/slice /murmur/server-1/Murmur.ice
(Pfad ggf anpassen)
Der erste Teil ist der Ordner zu den Default Slices (welcher also auch "Ice/SliceChecksumDict.ice" enthaelt), der zweite zu deiner MUrmur.ice
 
Wunderbar, MAP läuft !!!!
Vielen Dank, das wars.

Ich habe die MurmurPHP.ini gelöscht. Die IcePHP.ini sieht nun wie folgt aus:
extension = IcePHP.so
ice.slice= -I/usr/share/slice /var/lib/mumble-server/Murmur.ice

in der info.php stand als Pfad:
/usr/share/slice/Murmur.ice

jetzt steht dort:
-I/usr/share/slice /var/lib/mumble-server/Murmur.ice

Soweit so gut. Jetzt kann der Server vernünftig administriert werden.Vielen Dank nochmal.
Nun bekomme ich im Mumble-Viewer allerdings eine andere Fehlermeldung:
Fatal error: main() [<a href='function.main'>function.main</a>]: unknown operation getPlayers invoked on proxy of type ::Murmur::Server in /usr/share/mumble-server-web/www/weblist.php on line 25
Name Channel

Das wäre doch zu schön gewesen, wenn jetzt alles ohne Probleme laufen würde.:D
Nochmals, danke für deine Zeit, mfg Muven

Ahh, egal, MAP enthält einen Mumble-Viewer. Nochmal, vielen vielen Dank, entlich ist das gelößt ^^
 
Last edited by a moderator:
Back
Top