2015-05-28 20 views
11

Ich muss Config-Datei aus Phar meiner Webanwendung platzieren. Ich muss es montieren. In meiner Stub-Datei habe ich versucht:Zugriff auf externe Dateien von Phar-Archiven?

<?php 
try { 
    Phar::mount('sites/site.php', __DIR__.'/../sites/site.php'); 
} catch (PharException $e) { 
    print_r($e); 
}; 
Phar::mapPhar(); 
include '../app.phar'; 

aber ich habe "Mounting of sites/site.php to D:\(...)\public/../sites/site.php failed" Fehlermeldung. Ich habe verschiedene Dateipfadstile ohne Erfolg ausprobiert. Was ist daran falsch?

Ich benutze Box2, um Phar-Dateien zu ubild. Es dauert lange, die phar-Datei zu erstellen. Gibt es eine Möglichkeit, es schneller zu machen?

Die Fehlermeldung ist auch vage. Irgendeine Möglichkeit, bessere Nachrichten zu bekommen?

+0

haben Sie versucht, Schrägstriche '/' mit Anti-Schrägstrichen '\' zu ändern? Da bist du auf Windows? Und noch weiter: Haben Sie darüber nachgedacht, die Konstante ['DIRECTORY_SEPARATOR'] (http://php.net/manual/en/dir.constants.php) zu verwenden, um sicherzugehen, dass Sie unabhängig vom Betriebssystem sind? –

+0

@ b.enoit.be Windows akzeptiert sowohl '/' als auch '\\' als Verzeichnistrennzeichen. – PHPst

+0

Unter Linux funktioniert das nicht so gut. Das Problem ist "__DIR__", was in "phar: /// var/www/...." übersetzt wird. Wenn ich nur einen vollständigen Pfad ('/ var/www/...') verwende, funktioniert die Montage einwandfrei. – VolenD

Antwort

2

Haben Sie einen internen phar uri als Befestigungspunkt zu verwenden versuchten, wie:

Phar::mount('phar://sites/site.php', __DIR__.'/../sites/site.php'); 

Auch ich weiß nicht, ob das Problem aufgrund der sites subdir sein könnte, haben Sie versucht:

Phar::mount('site.php', __DIR__.'/../sites/site.php'); 
+0

Ja, es hat nicht geholfen. – PHPst

+0

Der gleiche Fehler? Könnten Sie das komplette PHP-Fehlerprotokoll hier einfügen? – fjcero