contao / contao-manager

Contao Manager
GNU Lesser General Public License v3.0
86 stars 33 forks source link

Contao Manager v1.2.5 (Contao V4.4) - Libsodium is not available #573

Closed Krami85 closed 4 years ago

Krami85 commented 4 years ago

Hallo Zusammen, mein Name ist Stefan und ich bin neu im Contao Umfeld und konnte es erfolgreich auf meiner Synology NAS installieren (ich verwende die Contao LTS 4.4). Das Back- und Frontend ist erreich- und bedienbar, aber der Contao Manager bringt mir nach der Eingabe der Credentials die Fehlermeldung:

ERROR 500 Libsodium is not available. You should either install the sodium extension, upgrade to PHP 7.2+ or use a different encoder.

Nach der Installation konnte ich mich noch im Contao Manager bewegen, doch als ich den Browser geschlossen und mich wieder einloggen wollte, kommt nach der Eingabe eben folgende Fehlermeldung:

ERROR 500 Libsodium is not available. You should either install the sodium extension, upgrade to PHP 7.2+ or use a different encoder.

Dem virtuellen Host auf der Synology DS218+ ist PHP7.3 mit Apache v2.2 zugewiesen. Die php -v liefert folgende Ausgabe:

PHP 7.3.16 (cli) (built: Jun 2 2020 11:39:19) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.16, Copyright (c) 1998-2018 Zend Technologies

Kann mir hier jemand weiterhelfen?

Danke und Gruss Stefan

aschempp commented 4 years ago

Hast du möglicherweise die PHP-Version gewechselt zwischen dem initialen Anlegen des Benutzers im Contao Manager und dem jetzigen Fehler?

Misios commented 4 years ago

Hab das gleiche Problem auf der Synology. CM 1.2.6 / PHP 7.3 und Appache HTTP Server 2.4. Frisch angelegt und die PHP-Version nicht geändert zwischendurch. Den Admin-Benutzer konnte ich noch anlegen. Danach kam dann die oben erwähnte Fehlermeldung.

do-while commented 4 years ago

Ich habe das auch auf meiner Synology. Nach Recherchen im Internet liegt das wohl an der Compilierung des PHP für die Synology, wo das betreffende Modul nicht mitgelinkt wurde. Abhilfe bei mir: Ich verwendet PHP 7.2 (da geht es nämlich). PHP 7.4 ist von Synology längst angekündigt aber bisher noch nicht erschienen.

Misios commented 4 years ago

Danke für den Tipp. Mit PHP 7.2 funktioniert es. Allerdings bekomme beim Installationsversuch über den CM die Meldung:

Auf Ihrem Server wurden Dateien gefunden, die keiner bekannten Contao-Version zugeordnet werden konnten. Um Contao zu installieren, müssen Sie entweder Ihre Installation manuell reparieren oder folgende Dateien und Ordner entfernen: - @eaDir

Diese @eaDir sehe ich im Finder bzw. FileManager nicht. Wenn ich über SSH und find . -type d -name "@eaDir" suche bekomme ich ein paar angezeigt, aber keines in meinem Installationsverzeichnis. Löschen der @eaDir funktioniert auch nicht.

Wie hast du C49 installiert?

Misios commented 4 years ago

Hab es jetzt doch hinbekommen:

Über SSH bei der DS eingeloggt. Dann über sudo -i mit admin-Passwort als root anmelden. Dann diese @eaDir Verzeichnisse löschen. Dann CM starten und installieren.

do-while commented 4 years ago

Grundsätzlich habe ich die Installation immer erstmal in einem Unterverzeichnis. Das hat den Grund, weil ich sonst ja nur eine Anwendung installieren kann oder es gerät alles durcheinander. So habe ich ein Unterverzeichnis für contao44lts, eines für contao49lts und eines für contao410. Da drin jeweils das Verzeichnis web, in das der Contao-Manager kopiert wird. Durch die Virtuellen Hosts ist es gar kein Problem, wenn die Installation noch ein Verzeichnis tiefer liegt.

Durch die eigenen Unterverzeichnisse hast Du auch nie ein Problem mit vermeintlichen Systemverzeichnissen die man nicht löschen kann oder die dann durch das System wieder neu entstehen. Das stört dann einfach niemanden.

Das gleiche Konzept verfolge ich übrigens auch bei den Hosting-Providern im Internet, das hat sich einfach bewährt.

Misios commented 4 years ago

So mache ich das auch. Nur bekomme ich das auf der DS mit den virtuellen Hosts nicht hin. Bzw. mit den Host "Namensbasiert". Hab hier schon alles mögliche versucht. Aber irgendwo steckt der Wurm.

Was funktioniert ist die Variante "Portbasiert". Das geht sowohl lokal über die IP mit angehängtem Port als auch über DynDNS und eine Domain mit angehängtem Port.

Aber wie bekomme ich das in der Variante "Namensbasiert" hin? Wie machst du das hier bei mehreren virtuellen Hosts? Wie sind deine Einstellungen? Benutzt du hier die Ports 80/443? Oder vergibst du hier auch eigene Ports? Was muss ich hier beachten?

Mein Ziel wäre einen Virtuellen Host auf der DS einfach über z.b. https://www.meineDomain.de anzusprechen. Derzeit funktioniert es nur in der portbasierten Variante über z.b. https://www.meineDomain.de:7500

Danke für ein Feedback.

do-while commented 4 years ago

Ich verwende immer "Namensbasiert"! Wenn Du einen Hostnamen vergibst, musst Du ihn natürlich dann auch deinem DNS-Server oder über die hosts-Datei Deinem PC bekannt geben, sonst klappt natürlich die Namensauflösung zum NAS nicht. grafik Der komplette Pfad ist bei mir übrigens: /web/webseiten/contao410/web

do-while commented 4 years ago

In der hosts Datei (C:\Windows\System32\drivers\etc\hosts) steht dann folgende Zeile: 192.168.0.12 contao410.nas

Diese setzt die Domain contao410.nas in die IP 192.168.0.12 um.

Misios commented 4 years ago

Damit komme ich leider nicht klar. Ich benutze die DS an einer FritzBox und der Virtuelle Host soll von außen über eine externe Domain aufgerufen werden können. Da nutzen mir doch die Einstellungen auf meinem Rechner eigentlich nichts, oder? Es liegt doch dann irgendwie an der Konfiguration der DS und/oder der FritzBox.

Alles, was ich bisher versucht habe geht einfach nicht. Nur die Portbasierte Variante, weil ich hier dann explizit auf die einen PORT 7500/7501 verweisen kann und in der DS diese Ports als "Virtual Host" in der "Externer Zugriff/Routerkonfiguration" und in der "Sicherheit/Firewall" freigeben kann.

Die Ports 80/443 sind einfach nicht erreichbar, wenn ich Namensbasiert versuche. Komisch.

do-while commented 4 years ago

"Von außen" habe ich nicht gewußt, das sind dann andere Bedingungen, da ist das verbinden per Port sicherlich besser geeignet. Die Domain hast Du ja dann irgendwo gehostet, bzw. als DynDNS. Da kenne ich mich nicht aus, ich nutze die DS nur intern zum Entwickeln und Testen.