PHP Composer mPDF installieren: Class "Mpdf\\Mpdf" not found

Pfandfinder

Lieutenant
Registriert
Nov. 2020
Beiträge
628
ich scheitere gerade an der Installation von mPDF auf einem 2. Server ...

zuvor hatte ich es irgendwie geschafft das mit Composer zu installieren dass er PDFs generieren konnte. Dieses backup mit den ganzen Composer Dateien funktioniert auf einem 2. Server jetzt aber nicht mehr.

Daher wollte ich es neu installieren:

Code:
cd ~

curl -sS https://getcomposer.org/installer -o composer-setup.php

sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

cd /var/customers/webs/website/assets/composer && composer require mpdf/mpdf

Die ganzen Dateien werden angelegt. doch er generiert kein PDF und im Log steht:

Code:
Uncaught Error: Class "Mpdf\\Mpdf" not found in /var/customers/webs/website/test.php

was mache ich denn falsch ?

Test-Script:

PHP:
<?php
// Require composer autoload
require_once __DIR__ . '/assets/composer/vendor/autoload.php';
// Create an instance of the class:
$mpdf = new \Mpdf\Mpdf();

// Write some HTML code:
$mpdf->WriteHTML('Hello World');

// Output a PDF file directly to the browser
$mpdf->Output();

Da ja selbst mein vorher funktionierendes Script nicht funktioniert denke ich mal es fehlt allgemein irgendwas noch ?
 
Ev Berechtigungen/Benutzer in den Ordnern prüfen

Generell scheint mir composer nicht zwingend nötig, die mpdf class muß eigentlich nur am richtigen ort liegen und aufgerufen werden?
 
Berechtigungen habe ich schon überprüft. Auch 0777 geht nicht.
 
dann schau mal in autoload.php rein was da genau geladen wird oder stell mal das require auf die mpdf klassendatei.

der assets ordner ist im gleichen verzeichnis wie die test.php?
 
Ja ist im gleichen Ordner.

autoload.php :

PHP:
if (PHP_VERSION_ID < 50600) {
    echo 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
    exit(1);
}

require_once __DIR__ . '/composer/autoload_real.php';

return ComposerAutoloaderInit1ad8d728dc439dc735d19e9ff49bad14::getLoader();

was ist die Klassen-Datei ? da gibts eine große mpdf.php in composer/vendor/mpdf/mpdf, aber damit klappts auch nicht.
Ergänzung ()

Jetzt hat es doch noch geklappt, indem ich auf den kompletten assets Ordner 0777 gegeben habe... komisch
 
Zuletzt bearbeitet:
Pfandfinder schrieb:
Jetzt hat es doch noch geklappt, indem ich auf den kompletten assets Ordner 0777 gegeben habe... komisch
Wenn ich sowas lese, wird mir immer etwas schwindlig. 777 sollte eigentlich nirgends notwendig sein und ist auch ein potentielles Sicherheitsproblem. Klar. Es funktioniert. Aber ich hoffe, das war jetzt nur ein Ausprobieren um den Fehler einzugrenzen und nicht die Endlösung auf nem Produktiv-Server.
 
habe jetzt mal rumprobiert und es liegt am tmp-Ordner, welcher nur 0777 braucht damit es geht:

Code:
/assets/php/composer/vendor/mpdf/mpdf/tmp
kann ich das bei dem Ordner nicht so lassen? welche Rechte sollte ich vergeben ? selbes gilt ja auch für beispielsweise fopen, da nutze ich derzeit auch 0777. was sollte man da vergeben ?
 
Pfandfinder schrieb:
welche Rechte sollte ich vergeben ?
Naja. Das hängt im wesentlich davon ab welche(r) Prozess(e) darauf zugreifen können müssen und unter welchem Nutzerkontext die laufen. Dann kann man mit Benutzer und/oder Benutzergruppen das sinnvoll eingrenzen.
 
  • Gefällt mir
Reaktionen: netzgestaltung und Phrasendreher
Zurück
Oben