[4.9.2] Import/Export von Modulen (ZIP)

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Dalamar
Beiträge: 298
Registriert: Di 16. Nov 2004, 15:43
Wohnort: Arnstadt / Thüringen
Kontaktdaten:

[4.9.2] Import/Export von Modulen (ZIP)

Beitrag von Dalamar »

Hallo,

ich wollte gestern ein Modul aus einer Contenido 4.9.2 Instanz exportieren, um es in einer anderen 4.9.2 Instanz zu importieren. Dies hat leider nicht funktioniert, da dass Zip-File leer ist bzw. 0 Byte hat.
Auch der Import eines Moduls (Artikelliste Reloade als ZIP) hier aus dem Forum funktioniert nicht.

Muss ein spezielles Apache Modul auf dem Server installiert werden?

Folgende Erweiterungen sind auf meinem Rootserver installiert:

Code: Alles auswählen

Geladene Erweiterungen:
Core, PDO, Phar, Reflection, SPL, SimpleXML, apache2handler, bcmath, bz2, calendar, ctype, curl, date, dba, dom, ereg, exif, fileinfo, filter, ftp, gd, gettext, hash, iconv, imap, ionCube Loader, json, libxml, mbstring, mhash, mysql, mysqli, openssl, pcre, pdo_mysql, pdo_sqlite, posix, session, shmop, soap, sockets, sqlite3, standard, sysvmsg, sysvsem, sysvshm, tokenizer, wddx, xml, xmlreader, xmlwriter, xsl, zip, zlib
NACHTRAG: Im errorlog taucht folgender Fehler auf:

Code: Alles auswählen

[24-Oct-2013 13:47:23 UTC] PHP Warning:  ZipArchive::extractTo(): Permission denied in /var/www/vhosts/foo.de/httpdocs/cms/contenido/classes/contenido/class.module.php on line 625
Danke für Eure Hilfe,
Christian
Beruflich: eComradeGroup und Media Atoll
Privat: Fantasybuch.net ;)
dominik.ziegler
Beiträge: 437
Registriert: Do 19. Jun 2008, 09:09

Re: [4.9.2] Import/Export von Modulen (ZIP)

Beitrag von dominik.ziegler »

Permission denied bedeutet, dass die ZipArchive Funktion extractTo keine Rechte hat, in den Ordner data/temp/ das Paket zu extrahieren. Kannst du bitte prüfen, ob der Ordner korrekte Berechtigungen hat?
Viele Grüße
Dominik
Dalamar
Beiträge: 298
Registriert: Di 16. Nov 2004, 15:43
Wohnort: Arnstadt / Thüringen
Kontaktdaten:

Re: [4.9.2] Import/Export von Modulen (ZIP)

Beitrag von Dalamar »

0777

drwxrwxrwx 2 foo psacln 4096 Okt 24 14:20 temp
Zuletzt geändert von Dalamar am Fr 25. Okt 2013, 09:48, insgesamt 2-mal geändert.
Beruflich: eComradeGroup und Media Atoll
Privat: Fantasybuch.net ;)
Dalamar
Beiträge: 298
Registriert: Di 16. Nov 2004, 15:43
Wohnort: Arnstadt / Thüringen
Kontaktdaten:

Re: [4.9.2] Import/Export von Modulen (ZIP)

Beitrag von Dalamar »

Beim Export erscheint übrigens folgender Fehler.

Code: Alles auswählen

[25-Oct-2013 08:06:19 UTC] PHP Warning:  filesize(): stat failed for bild.zip in /var/www/vhosts/foo.de/httpdocs/cms/contenido/classes/contenido/class.module.php on line 779
[25-Oct-2013 08:06:19 UTC] PHP Warning:  readfile(bild.zip): failed to open stream: No such file or directory in /var/www/vhosts/foo.de/httpdocs/cms/contenido/classes/contenido/class.module.php on line 781
[25-Oct-2013 08:06:19 UTC] PHP Warning:  unlink(bild.zip): No such file or directory in /var/www/vhosts/foo.de/httpdocs/cms/contenido/classes/contenido/class.module.php on line 784
Beruflich: eComradeGroup und Media Atoll
Privat: Fantasybuch.net ;)
Dalamar
Beiträge: 298
Registriert: Di 16. Nov 2004, 15:43
Wohnort: Arnstadt / Thüringen
Kontaktdaten:

Re: [4.9.2] Import/Export von Modulen (ZIP)

Beitrag von Dalamar »

Systemintegrität
Dateianhänge
contenido.png
(83.07 KiB) Noch nie heruntergeladen
Beruflich: eComradeGroup und Media Atoll
Privat: Fantasybuch.net ;)
Dalamar
Beiträge: 298
Registriert: Di 16. Nov 2004, 15:43
Wohnort: Arnstadt / Thüringen
Kontaktdaten:

Re: [4.9.2] Import/Export von Modulen (ZIP)

Beitrag von Dalamar »

Scheinbar stimmt irgendein Pfad nicht. Folgendes habe ich in der Apache Errorlog-Datei gefunden:

Code: Alles auswählen

[Tue Oct 22 03:19:25 2013] [error] [client 65.55.215.83] File does not exist: /var/www/vhosts/foo.de/httpdocs/temp
[Tue Oct 22 05:48:59 2013] [error] [client 188.154.57.130] File does not exist: /var/www/vhosts/foo.de/httpdocs/temp
[Tue Oct 22 06:36:31 2013] [error] [client 66.249.78.191] File does not exist: /var/www/vhosts/foo.de/httpdocs/images
[Tue Oct 22 08:16:43 2013] [error] [client 199.30.20.144] File does not exist: /var/www/vhosts/foo.de/httpdocs/temp
[Wed Oct 23 07:12:41 2013] [error] [client 65.55.215.92] File does not exist: /var/www/vhosts/foo.de/httpdocs/temp
[Wed Oct 23 08:25:35 2013] [error] [client 65.55.215.34] File does not exist: /var/www/vhosts/foo.de/httpdocs/temp
Richtig müsste aber folgende Pfade sein:

Code: Alles auswählen

/var/www/vhosts/foo.de/httpdocs/cms/data/temp
/var/www/vhosts/foo.de/httpdocs/cms/frontend/images
In der Config taucht folgender Pfad auf, der imho auch richtig ist:

Code: Alles auswählen

$cfg['path']['frontend']                = '/var/www/vhosts/foo.de/httpdocs/cms';
Der Serverpfad für das Frontend wie folgt

Code: Alles auswählen

/var/www/vhosts/foo.de/httpdocs/cms/frontend/
So, jetzt bin ich mit meinem Latein am Ende. Könnte der Fehler vielleicht wirklich von der open_basedir-Direktive herrühren?
Beruflich: eComradeGroup und Media Atoll
Privat: Fantasybuch.net ;)
xmurrix
Beiträge: 3214
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Re: [4.9.2] Import/Export von Modulen (ZIP)

Beitrag von xmurrix »

Hallo Dalamar,

der Modulexport verwendet vermutlich nicht das temporäre Verzeichnis des Mandanten oder des Backends, sondern das temporäre Verzeichnis des Systems.

Prüfe doch mal mit der Funktion sys_get_temp_dir(), wo dein Temp-Verzeichnis liegt und ob PHP Schreibrechte darin hat.

Wenn die Funktion sys_get_temp_dir() nicht geht, kannst du auch in der globalen $_ENV nachsehen.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Dalamar
Beiträge: 298
Registriert: Di 16. Nov 2004, 15:43
Wohnort: Arnstadt / Thüringen
Kontaktdaten:

Re: [4.9.2] Import/Export von Modulen (ZIP)

Beitrag von Dalamar »

xmurrix hat geschrieben:Hallo Dalamar,

der Modulexport verwendet vermutlich nicht das temporäre Verzeichnis des Mandanten oder des Backends, sondern das temporäre Verzeichnis des Systems.

Prüfe doch mal mit der Funktion sys_get_temp_dir(), wo dein Temp-Verzeichnis liegt und ob PHP Schreibrechte darin hat.

Wenn die Funktion sys_get_temp_dir() nicht geht, kannst du auch in der globalen $_ENV nachsehen.

Gruß
xmurrix
/tmp
Beruflich: eComradeGroup und Media Atoll
Privat: Fantasybuch.net ;)
dominik.ziegler
Beiträge: 437
Registriert: Do 19. Jun 2008, 09:09

Re: [4.9.2] Import/Export von Modulen (ZIP)

Beitrag von dominik.ziegler »

Wenn open basedir verwendet wird, liegt der Ordner dann in diesem "Berechtigungsbereich"?
Viele Grüße
Dominik
xmurrix
Beiträge: 3214
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Re: [4.9.2] Import/Export von Modulen (ZIP)

Beitrag von xmurrix »

Das ist der Code im Modulexport:

Code: Alles auswählen

...
$zip = new ZipArchive();
$zipName = $this->get('alias') . '.zip';
...
Es verwendet den Modulalias, um das Zip zu generieren, also foobar.zip. Wenn man da explizit keinen Pfad angibt, was hier der Fall ist, kann es sein, dass es das Temp-Verzeichnis des Sytems verwendet.

Woher kommt der Pfad "/var/www/vhosts/foo.de/httpdocs/temp", das ist meines Wissens nirgends in CONTENIDO so konfiguriert.
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Dalamar
Beiträge: 298
Registriert: Di 16. Nov 2004, 15:43
Wohnort: Arnstadt / Thüringen
Kontaktdaten:

Re: [4.9.2] Import/Export von Modulen (ZIP)

Beitrag von Dalamar »

dominik.ziegler_4fb hat geschrieben:Wenn open basedir verwendet wird, liegt der Ordner dann in diesem "Berechtigungsbereich"?
Nein, der Ordner liegt nicht im Zugriffsbereich.
Beruflich: eComradeGroup und Media Atoll
Privat: Fantasybuch.net ;)
dominik.ziegler
Beiträge: 437
Registriert: Do 19. Jun 2008, 09:09

Re: [4.9.2] Import/Export von Modulen (ZIP)

Beitrag von dominik.ziegler »

Dalamar hat geschrieben:
dominik.ziegler_4fb hat geschrieben:Wenn open basedir verwendet wird, liegt der Ordner dann in diesem "Berechtigungsbereich"?
Nein, der Ordner liegt nicht im Zugriffsbereich.
Dann wird das wohl das Problem sein. Der Webserver darf dort nicht rein, deswegen kann er dorthin auch nicht entpacken.
Viele Grüße
Dominik
Dalamar
Beiträge: 298
Registriert: Di 16. Nov 2004, 15:43
Wohnort: Arnstadt / Thüringen
Kontaktdaten:

Re: [4.9.2] Import/Export von Modulen (ZIP)

Beitrag von Dalamar »

xmurrix hat geschrieben:Das ist der Code im Modulexport:

Code: Alles auswählen

...
$zip = new ZipArchive();
$zipName = $this->get('alias') . '.zip';
...
Es verwendet den Modulalias, um das Zip zu generieren, also foobar.zip. Wenn man da explizit keinen Pfad angibt, was hier der Fall ist, kann es sein, dass es das Temp-Verzeichnis des Sytems verwendet.

Woher kommt der Pfad "/var/www/vhosts/foo.de/httpdocs/temp", das ist meines Wissens nirgends in CONTENIDO so konfiguriert.
Das weiß ich nicht... die Probleme traten, so das Log, auch bereits in Contenido 4.8.x auf. Eventuell haben irgendwelche Bots oder Spiders diesen Ordner aufrufen wollen... ich weiß es nicht. Wahrscheinlich hat das Problem mit dem Apache-Log nicht zwingend etwas mit Contenido zu tun.
Beruflich: eComradeGroup und Media Atoll
Privat: Fantasybuch.net ;)
Dalamar
Beiträge: 298
Registriert: Di 16. Nov 2004, 15:43
Wohnort: Arnstadt / Thüringen
Kontaktdaten:

Re: [4.9.2] Import/Export von Modulen (ZIP)

Beitrag von Dalamar »

dominik.ziegler_4fb hat geschrieben:
Dalamar hat geschrieben:
dominik.ziegler_4fb hat geschrieben:Wenn open basedir verwendet wird, liegt der Ordner dann in diesem "Berechtigungsbereich"?
Nein, der Ordner liegt nicht im Zugriffsbereich.
Dann wird das wohl das Problem sein. Der Webserver darf dort nicht rein, deswegen kann er dorthin auch nicht entpacken.
Ja, wahrscheinlich. Wäre es aber nicht sinnvoll der Export- und Importroutine den expliziten Pfad zum temporären Verzeichnis von Contenido zu geben... also /data/temp ?
Beruflich: eComradeGroup und Media Atoll
Privat: Fantasybuch.net ;)
dominik.ziegler
Beiträge: 437
Registriert: Do 19. Jun 2008, 09:09

Re: [4.9.2] Import/Export von Modulen (ZIP)

Beitrag von dominik.ziegler »

Das wird ja so gemacht.

Code: Alles auswählen

$sTempPath = $cfg['path']['temp'] . 'module_import_' . $modulName;
[..]
if ($zip->open($tempName)) {
  if ($zip->extractTo($sTempPath)) {
Viele Grüße
Dominik
Antworten