php fehlermeldung

hallo support group,

nachdem ich das izap_videos-plugin für die elgg-version 2.3.3. installiert habe erscheint folgende fehlermeldung:



NOTICE: PHP (errno 8192): 2017-09-12 18:51:36 (CEST): "Methods with the same name as their class will not be constructors in a future version of PHP; izapConvert has a deprecated constructor" in file /home/www/elgg-2.3.3/mod/izap_videos/lib/convert.php (line 17)
NOTICE: PHP (errno 8192): 2017-09-12 18:51:36 (CEST): "Methods with the same name as their class will not be constructors in a future version of PHP; curl has a deprecated constructor" in file /home/www/elgg-2.3.3/mod/izap_videos/lib/curl.php (line 17)
NOTICE: PHP (errno 8192): 2017-09-12 18:51:36 (CEST): "Methods with the same name as their class will not be constructors in a future version of PHP; xml2array has a deprecated constructor" in file /home/www/elgg-2.3.3/mod/izap_videos/lib/curl.php (line 199)

bevor ich jetzt an den klassennamen und methoden rumwerkel möchte ich mich lieber hier informieren, was ich falsch gemacht haben könnte oder was ich vielleicht übersehen oder vergessen haben könnte. vielen dank schonmal im vorraus. die post hier im forum haben mir schon sehr geholfen.

  • btw. ich habe php7.0 auf dem apache konfiguriert

  • Unter php 7 ist es keine Fehlermeldung sondern nur ein Hinweis, dass es in einer zukünftigen Version (php 8?) wahrscheinlich nicht mehr funktionieren wird. Momentan sollte alles noch ohne Probleme funktionieren.

    Falls die Notifications im Log stören, kann man natürlich trotzdem auch jetzt schon den Code so ändern, dass keine Notifications mehr kommen. Ich selbst hab leider noch keine php 7-Umgebung zum coden/testen, aber https://cweiske.de/tagebuch/php4-constructors-php7.htm erklärt glaube ich relativ gut, wie es zu fixen ist.

  • danke für den hinweis. habe den log-level einfach auf fatal errors und warnungen beschränkt. An einen "pre-fix" traue ich mir noch nicht ran. bin gerade dabei einen media-player zu installieren. ausser das vorschaubild mit den drei roten, nach links zeigenden dreiecken wird aber noch nichts angezeigt. benutze dabei das izap-revised-edition plugin. upload_max_filesize habe ich auf 150M und post_max_size=180M gesetzt. steht alles auf grün...aber kein video. das geht jetzt in ein anderes thema weiter, soll ich ein neuen post öffnen oder geht das hier weiter?

  • ...auf welches php-script muss der cronjob im serververzeichnis gesetzt werden, damit der wartenschlangen-trigger funktioniert?

  • Die Cronjobs, die auf dem Server einzurichten sind, führen keine Skripte aus sondern besuchen nur mit lwp-request oder wget bestimmte "Trigger"-Urls auf der Elgg-Seite. Wenn Elgg erkennt, dass diese Urls besucht werden, führt es dann die Jobs aus, die in Elgg oder in Plugins für das entsprechende Zeitintervall registriert sind. Für dir Einrichtung der Cronjobs bitte http://learn.elgg.org/en/stable/admin/cron.html lesen. Dort ist beschrieben, wie die Cronjobs eingerichtet werden müssen. Da es je nach Serverkonfiguration unterschiedlich sein kann, wie dir Einrichtung der Cronjobs im Detail abläuft, will ich da jetzt nicht ausführlich drauf eingehen. Falls es nicht funktioniert, kannst Du nochmal fragen.

    Der 1-Minuten-Cronjob wird von Elgg auch für das Versenden von Benachrichtigungen verwendet. Dieser Job ist also wichtig. Wenn er eingerichtet ist, kannst Du in den Izap Videos-Plugineinstellungen das 1-Minuten-Intervall auswählen und dann wird jede Minute geprüft, ob neue Videos zum Konvertieren anstehen und die Konvertiertung dann gestartet.

    Für das Vorschaubild der Videos wird bei 10s des Videos ein Snapshot gemacht. Wenn das Video kürzer ist, wird stattdessen das Platzhalter-Bild verwendet (oder wenn aus irgeneinem Grund das Erstellen des Vorschaubildes fehltschlägt.

    Ich würde vorschlagen, es zuerst mit einem kleinen Video zu probieren, um zu sehen, ob die Konvertierung und dann auch das Abspielen funktioniert. Onserver-Videos werden ins Flashformat konvertiert. Zum Anschauen dieser Videos muss auf dem Client-Computer das Flash-Plugin im Browser installiert sein. HTML5-Onserver-Videos sind noch auf meiner ToDo-Liste (für die Videos von Youtube, Vimeo und Dailymotion wird schon die HTML5-Version der Videos eingebettet).

    Bei größeren Videodateien kann es auch noch notwendig sein, max_input_time, max_execution_time und memory_limit zu vergrößern. Aber das müßtest Du selber mal testen (da es je nach Größenlimits, Serverperformance usw. anders sein kann).

  • danke für das feedback.

    das testvideo liegt in der warteschlange und wartet jetzt darauf abgeholt zu werden.

    "Damit der Warteschlangen-Trigger funktioniert, muss der entsprechende Elgg-Cronjob auf dem Server konfiguriert sein."

    ok, mein provider will es mir einfach machen und hat mir ein nettes cron-gui auf dem linux zurechtgelegt wo ich in die kommandozeile etwas eintragen muss:

    zitat faq:

    Kommando
    Hier muss das Kommando und der Pfad zu dem auszuführenden Script angegeben werden. Folgende Eintragungen müssen vorgenommen werden:

    • Perl Script: perl /home/www/script.pl
    • PHP Script: php /home/www/script.php

    in etwa so:

    * * * * * $GET ${https://www.meineELGGseite.de/}cron/minute/

    was muss ich noch hinzufügen?

    haben die Elgg cron pages noch andere verzeichnisse?

    .../usr/bin/ffmpeg -y -i [inputVideoPath] [outputVideoPath]???

     

  • Das Kommando, das der Cronjob ausführen muss, sieht für den 1-Minuten-Cronjob wie folgt aus:

    /usr/bin/lwp-request -m GET -d https://www.meineELGGseite.de/cron/minute/ >/dev/null 2>&1

    falls lwp-request auf dem Server verfügbar ist oder

    /usr/bin/wget --spider --output-document=/dev/null https://www.meineELGGseite.de/cron/minute/ >/dev/null 2>&1

    falls nur wget verfügbar ist. Entweder lwp-request oder wget muss verfügbar sein. In dem entsprechenden Kommando muss eventuell der Pfad zum entsprechenden wget oder lwp-request executable angepasst werden und natürlich die Domain der Elgg-Seite. Die in der Dokumentation verwendeten Variablen (z.B. $GET) kannst Du in der Cron-GUI nicht verwenden, da jeder Cronjob, den Du da konfiguriert, ein vollständiges, eigenständiges Kommando enthalten muss.

    Die Parameter, die ich in den Beispielkommandos eingefügt habe, dienen hauptsächlich dazu, dass keine Logeinträge anfallen (die nicht viel erhellendes bringen würden und im Laufe der Zeit nur unnötig Platz verschwenden würden).

    Die Sterne in dem Beispiel in der Dokumentation gehören nicht zum eigentlichen Kommando, das der Cronjob ausführen soll. Sie sind die Parameter, die der Cron-Daemon braucht, um zu wissen, in welchem Interval der Job/ die Jobs auszuführen sind. In einer Crontab-Konfigurationsdatei sind die eben direkt bei der Definition des Jobs (einer pro Zeile) mit drin. Wenn Du eine GUI hast, um die Cronjobs zu konfigurieren, gibt es wahrscheinlich dafür extra Auswahlfelder, um das Zeitintervall eines Cronjobs festzulegen.

    Für unterschiedliche Intervalle solltest Du jeweils einen Cronjob anlegen. Die Kommandos unterscheiden sich nur im letzten Segment der enthaltenen URL (also minute, fiveminute, fifteenmin, halfhour, hourly, daily, weekly, monthly, yearly je nach gewünschtem Interval). In der GUI mußt Du halt für jeden der Jobs das entsprechende Ausführungsinterval konfigurieren.

    Du brauchst nicht unbedingt alle Cronjobs einzurichten. Das 1-Minuten-Intervall wird für die Versendung von Benachrichtigungen verwendet. Standardmäßig wird das 1-Monats-Interval von den Logrotate- und Garbagecollector-Plugins zum Bereinigen der Datenbank verwendet. Andere Intervalle können je nach installierten Plugins notwendig sein. Mit den Croncheck-Plugin (https://elgg.org/plugins/1864611) kannst Du einfach prüfen, für welche Intervalle Jobs zur Ausführung registriert sind.

    Solltest Du es nicht auf die Schnelle hinkriegen, die Cronjobs auf dem Server einzurichten, kannst Du auch ersatzweise das Crontrigger-Plugin (https://elgg.org/plugins/2512029) verwenden. Das hilft in den Fällen, in denen auf dem Server keine Cron-Daemon zur Verfügung steht. Es ist allerdings nur ein behelfsmäßiger Ersatz, da die Ausführung der Cronjobs indirekt durch Useraktivität getriggert werden (in Zeiten, in denen kein User auf der Seite ist oder aktiv ist, werden die Jobs nicht ausgeführt sondern erst dann wieder wenn jemand aktiv wird - dann werden aber alle übergangenen Intervalle auch einmalig nachgeholt).

  • danke iionly für deinen support.

    das testvideo landete nun zweimal im papierkorb, nachdem eine fehlermeldung bei der konvertierung ausgegeben wurde. nach rücksprache mit dem provider-support ist ffmpeg hier ausschlaggebend: zitat provider-support: "Der Techniker teilte mir soeben mit, dass ffmpeg auf Shared Webhosting bei uns gar nicht aktiviert ist, das könnte die Fehlermeldung erklären. ffmpeg ist erst ab vServer verfügbar."

    also werde ich weiter an einer lösungsfindung arbeiten um die upgeloadeten videos anzeigen zu lassen.

  • Ohne ffmpeg-Verefügbarkeit auf dem Server gehen Onserver-Videos nicht. Du kannst dann nur Offserver-Videos, die auf Youtube, Vimeo und Dailymotion gehostet sind, einbinden.

    Langfristig gesehen ist ein Shared-Server wahrscheinlich auch nicht befriedigend. Da sind die Resources doch immer in der ein oder anderen Weise limitiert, was im ungünstigesten Fall dazu führen kann, dass Dein Hoster die Seite offline nimmt, da mehr Resourcen belegt werden als erlaubt. Ein VPS-Server ist da sicherer bzgl. dem Resourcenverbrauch (hat meist sowieso mehr Performance), erlaubt die Installation benötiger Serverprogramme und eine bessere Konfiguration.

  • Bei Version 2.3.3 von iZAP Videos (https://elgg.org/plugins/1913474/releases/2.3.3) hab ich die Class constructors so gefixt, dass die Warnmeldung unter PHP 7.X nicht mehr kommt. Version 2.3.3 funktioniert auch weiterhin noch unter PHP 5.

German Support Group

German Support Group

The German support group within the Elgg community.