Error 404 bei Aufruf von PHP-Skript (PDF-Erstellung)

morphoys

New Member
Hi Leute,

ich habe ein kleines Problem auf meinem 1und1 vServer. Ich nutze ein PHP-Skript zum dynamischen Erstellen von PDF-Dokumenten aus einer HTML-Datei (HTML2PDF). Ich habe es offline mit XAMPP komplett konfiguriert und es klappt alles wunderbar. Auf dem vServer kommt es jedoch zu einem Problem. Ich rufe die Demo-Seite des Skriptes auf und dann erscheint ein Error 404.

Im Endeffekt dürfte es nichts Großes sein, denn ich habe mir die error.log angesehen. Das PHP-Skript befindet sich auf dem vServer in etwa folgendem Verzeichnis (kompletter Pfad):

/srv/www/vhosts/meinedomain.com/httpdocs/pdfskript.php

Was komischerweise funktioniert: Das Generieren der PDF-Datei aus folgender HTML-Seite:

/srv/www/vhosts/meinedomain.com/httpdocs/index.html

Sobald ich aber ein andere Datei aufrufen will, kommt es zum 404. Also das geht schon nicht mehr:

/srv/www/vhosts/meinedomain.com/httpdocs/test.html

Hier erhalte ich im Error-Log folgenden Fehler:

File does not exist: /srv/www/vhosts/default/htdocs/test.html

Das ist das Problem. Der Server-Pfad stimmt hier nicht mehr und muss irgendwie durch eine Direktive angepasst werden.
Es liegt also an der vServer-Konfiguration. Das DocumentRoot scheint nicht zu stimmen oder irgendetwas mit der "httpd.include" bzw. "vhost.conf", die man bei dem 1und1-Server als zusätzliche Konfiguration anlegen kann (das habe ich schon gemacht). Die Frage ist nun: Welche Direktive muss ich in diese Datei schreiben?
Die normalen Seiten funktionieren ja auf dem Server. Mit .htaccess hat es auch nichts zu tun, da ich diese zur Zeit entfernt habe. Das PDF-Skript nutzt zum Aufruf von URLs das Modul "cURL" und alternativ "allow_url_fopen". Es muss also etwas damit zu tun haben — sobald der Server die Anfrage von diesem Skript erhält, benutzt er obiges "default"-Verzeichnis als Root-Verzeichnis und das führt natürlich zum Fehler, da die Dateien ja nicht in diesem Verzeichnis exitieren.


Ich hoffe, ihr könnt mir helfen! Es sollte wirklich nichts Komplexes sein, aber ich weiß nicht, wie die Konfiguration aussehen muss :(
 
Last edited by a moderator:
Bist du sicher dass
/srv/www/vhosts/meinedomain.com/httpdocs/index.html
und nicht
/srv/www/vhosts/default/httpdocs/index.html
in dem funktionierenden PDF landet?

Ich hatte mal ein aehnliches Problem dass der Server lokale Webseitenaufrufe an die IP 127.0.0.1 reichte und somit die Domain nie griff.
 
Bist du sicher dass
/srv/www/vhosts/meinedomain.com/httpdocs/index.html
und nicht
/srv/www/vhosts/default/httpdocs/index.html
in dem funktionierenden PDF landet?

Aaaah! Genau das ist der Fall, ja! Das ist genau wie du sagtest, auch mit der 127.0.0.1! Ich dachte, das stimmt so? Das hier ist nämlich die komplette Zeile aus der "error.log":

[Sat Apr 17 20:33:02 2010] [error] [client 127.0.0.1] File does not exist: /srv/www/vhosts/default/htdocs/test.html

Also ist es wohl das Problem, das du auch hattest, kann das sein? Der Zugriff des PHP-PDF-Skripts wird auf die 127.0.0.1 weitergeleitet. Aber wie stelle ich das ein, dass es richtig geroutet wird:confused:? Wie gesagt, alles Andere (CMS, Skripte, etc.) läuft ja
 
Ich weiss nicht mehr wie ich es damals behoben hatte, kann mich aber auch nicht erinnern es zwischenzeitlich nochmal bemerkt zu haben.

Was gibt dir folgender Code als Antwort?
PHP:
<?php
$DOMAIN = "DEINE-DOMAIN-HIER.tld";
echo "Host-IP: ".gethostbyname($DOMAIN);
?>
Er sollte deine oeffentliche IP ausgeben, nicht localhost oder 127.0.0.1
Sofern er es nicht tut, bearbeite die /etc/hosts/ und fueg deine Domain mit der IP hinzu.
Code:
DEINE-IP  DEINE-DOMAIN.tld

Ich muss hier leider raten, aber irgendwann treffen wir das Problem :)

Kontrollier aber auch den Domain-Namen im PDF-Skript. Fehlerhafte Aufloesungen werden oft auf localhost umgeleitet :)
Um das zu vermeiden haeng einen Schlusspunkt an die Domain, also bsp:
"http://deine.domain.tld./index.php"
 
Last edited by a moderator:
Absolut genial! d4f, meinen Respekt! Darauf wäre ich in 100 Jahren nicht gekommen.

Wie du vermutet hast, gab mir das PHP-Skript 127.0.0.1 aus. Ich habe den bestehenden Eintrag der "hosts"-Datei dann angepasst und nun klappt alles super!

Perfekt. Danke für die schnelle und gute Hilfe. Und das auch noch an so einem sonnigen Sonntag ;-)
 
Gern geschehen :)

Und das auch noch an so einem sonnigen Sonntag ;-)
<KLISCHEE>
Das ist eher ein Argument _nicht_ raus zu gehen :)
Ich will mir doch nicht binnen 5min nen Sonnenbrand holen ^^
</KLISCHEE>
 
Back
Top