Erstellt vor 6 Jahren
Geschlossen vor 6 Jahren
#974 closed Fehler (fixed)
Bug bei 4099 ??
| Erstellt von: | rainer.kohls@… | Verantwortlicher: | p.reetz@… |
|---|---|---|---|
| Priorität: | niedrig | Meilenstein: | |
| Komponente: | kivitendo ERP | Version: | 2.6.2 unstable |
| Schweregrad: | unwesentlich | Stichworte: | Installation |
| Beobachter: | m.bunkus@… |
Beschreibung
hab gerade die Version 4099 ausgecheckt und beim Aufruf der login.pl oder admin.pl erscheint ein "Internal Server Error" mit folgendem Loginhalt:
Can't call method "convert" on an undefined value at SL/Locale.pm line 199.
Compilation failed in require at /usr/lib/lxerp/admin.pl line 89.
Premature end of script headers: admin.pl
Hab mal testhalber die convert-Zeile auskommentiert, dann erscheint zwar schon mal die Hintergrundfarbe, aber die Logeinträge bleiben ähnlich, nur dass dann eine convert-Zeile in der Form.pm Zeile 806 angemeckert wird.
Ist das ein Bug oder etwas Fehlendes bei meiner Installation?
Vielen Dank im voraus
Anhänge (4)
Änderungshistorie (14)
comment:1 Geändert vor 6 Jahren durch m.bunkus@…
- Beobachter m.bunkus@… hinzugefügt
- Status von new nach assigned geändert
comment:2 Geändert vor 6 Jahren durch rainer.kohls@…
Wow, das ging ja schnell.
Die lx-erp.conf, wie auch das config Verzeichnis und alle neu erstellten Verzeichnisse und Dateien sind im Besitz von www-data.
$dbcharset ist auf UTF-8 gesetzt. War sie vor dem Update auch schon.
Die Ausgabe des Befehls lautet: Text::IconvPtr?=SCALAR(0x2384c40)
freundliche Grüße
rainer
comment:3 Geändert vor 6 Jahren durch m.bunkus@…
Was sagt denn folgender Befehl bei Ihnen?
perl -le 'use Text::Iconv; print Text::Iconv->new("ASCII", "UTF-8");'
Zusätzlich bitte mal folgendes machen: Ich hänge gleich an diesen Report eine Datei Locale.pm an. Bitte Ihre bestehende mit meiner Version überschreiben und danach die admin.pl aufrufen.
Anschließend sollte es auf dem Server eine Datei namens /tmp/lx-office-debug.log geben, die Inhalt analog zu folgendem haben sollte:
2009-05-13 16:38:41 15873 : Locale-Debug: self->{charset} ISO-8859-15 db_charset ISO-8859-15 main::dbcharset ISO-8859-15
2009-05-13 16:38:41 15873 : iconv: Text::IconvPtr?=SCALAR(0x25702d8)
2009-05-13 16:38:41 15873 : iconv_reverse: Text::IconvPtr?=SCALAR(0x25cb490)
2009-05-13 16:38:41 15873 : iconv_english: Text::IconvPtr?=SCALAR(0x25c4fd0)
2009-05-13 16:38:41 15873 : iconv_iso8859: Text::IconvPtr?=SCALAR(0x25c4f88)
2009-05-13 16:38:41 15873 : iconv_to_iso8859: Text::IconvPtr?=SCALAR(0x25c4f40)
Diese Zeilen bzw. die ganze Datei bräuchte ich bitte.
comment:4 Geändert vor 6 Jahren durch rainer.kohls@…
Befehl: perl -le 'use Text::Iconv; print Text::Iconv->new("ASCII", "UTF-8");' ergibt:
Text::IconvPtr?=SCALAR(0x2575c40)
lx-office-debug.log kann ich leider nicht schicken, die wird bei mir nicht erzeugt. Hab schon mal testhalber in der conf Debug auf ALL gestellt, ändert aber nicht. Einziger Unterschied, mit dieser Datei ist die Ausgabe in der apache2 - error.log. Geändert hat sich nur die Zeilennummer für die locale.pm
Can't call method "convert" on an undefined value at SL/Locale.pm line 204.
comment:5 Geändert vor 6 Jahren durch m.bunkus@…
Es werden keine Logdateien in /tmp angelegt!? Das würde bedeuten, dass Locale::text() direkt aufgerufen wird und nicht über ein $locale-Objekt, das vorher mit Locale->new() erstellt wurde.
Hier eine neue Version von Locale.pm; bitte erneut ausprobieren und nachschauen, ob in /tmp besagte Debugdatei existiert (sollte... muss eigentlich sogar). Diese dann hier anhängen.
comment:6 Geändert vor 6 Jahren durch rainer.kohls@…
diesmal mit debug log-ausgabe
comment:7 Geändert vor 6 Jahren durch m.bunkus@…
Bitte überprüfen Sie, ob es die Variable $language in der Datei config/lx-erp.conf und, sofern die Datei existiert, config/lx-erp-local.conf gibt und auf was sie gesetzt ist. De facto muss sie existieren und sie muss auf 'de' gesetzt sein, weil das momentan die einzige Sprache ist, die voll unterstützt wird.
comment:8 Geändert vor 6 Jahren durch rainer.kohls@…
Die Variable existiert und ist auf de gesetzt.
Die lx-erp-local.conf existiert nicht. Für den Fall das in der lx-erp.conf noch Einstellungen o.ä. wichtig sind, hänge ich die Datei einfach mal mit an.
Ist eigentlich die unveränderte Variante aus dem SVN.
comment:9 Geändert vor 6 Jahren durch m.bunkus@…
- Priorität von Normal nach Niedrig geändert
- Schweregrad von Kritisch nach Unwichtig geändert
Bitte versuchen Sie, einen kompletten Checkout in ein vorher leeres Verzeichnis zu machen und davon ausgehend Lx-Office neu aufzusetzen. Sie sind momentan der einzige mit diesem Problem, und an der Stelle, wo $country in Locale.pm leer ist, darf es schlicht nicht leer sein. Deshalb vermute ich ein Problem mit Ihrer Installation; entweder Dateirechte (der Benutzer, unter dem der Webserver läuft, darf z.B. das Verzeichnis "config" nicht lesen und/oder die Datei "config/lx-erp.conf") oder aber gegenüber dem Repository modifizierte Dateien.
comment:10 Geändert vor 6 Jahren durch rainer.kohls@…
- Lösung auf fixed gesetzt
- Status von assigned nach closed geändert
Vielen Dank für die Hilfe, ist gelöst.
Beim SVN-Update scheint etwas schief gelaufen zu sein, trotz dem ich gesagt habe, die neue Version der lx-erp.conf soll installiert werden, wurde scheinbar etwas anderes ausgewählt. Was ich auf jeden Fall deshalb nicht beachtet habe ist folgender Teil, der in der lx-erp.conf drinstand:
<<<<<<< .mine
$dbcharset = 'UTF-8'; # F�r UNICODE UTF-8
#$dbcharset = "ISO-8859-15";
=======
$dbcharset = 'UTF-8'; # F�r UNICODE UTF-8
# $dbcharset = "ISO-8859-15";
Mit den Strichen und Pfeilen kann das natürlich nichts werden.
Hab den überflüssigen Mist entfernt, dann startet lxo auch wieder.
Vielen Dank für die Mühe.
rainer

Die Entwicklungsversion verschiebt u.a. die Konfigurationsdatei lx-erp.conf in das Unterverzeichnis "config". Sowohl das Verzeichnis "config" als auch die Datei "config/lx-erp.conf" müssen vom Webserver lesbar sein. Bitte überprüfen Sie zuerst das.
Danach wäre es interessant, auf welchen Wert die Variable "$dbcharset" gesetzt ist; sie befindet sich ebenfalls in besagter "config/lx-erp.conf".
Es könnte ebenfalls eine Datei "lx-erp-local.conf" existieren; auch diese wird ausgewertet. Sie sollte sich ebenfalls im Verzeichnis "config" befinden.
Weiterhin würde mich die Ausgabe von folgendem Befehl interessieren:
perl -le 'use Text::Iconv; print Text::Iconv->new("ISO-8859-15", "UTF-8");'