2015-05-11 15 views
6

Mam Slim aplikacji z następującej struktury katalogów:Błąd Opakowania do Phar złożyć całą Slim Zastosowanie

app/ 
vendor/ 
www/ 

config.php 

w APP/Mam odpowiednie pliki projektu, w vendor/Zależności zarządzanego przez kompozytor oraz w www/pliki dostępne przez serwer sieciowy.

Więc myślę, aby utworzyć plik Phar wzdłuż linii:

<?php 

$full_path = '/home/.../forms/'; 
$package_name = 'www/package.phar'; 

try { 
    $phar = new Phar($full_path . $package_name, 
    FilesystemIterator::CURRENT_AS_FILEINFO |  FilesystemIterator::KEY_AS_FILENAME, $full_path . $package_name); 

$phar->startBuffering(); 

$phar->addFile($full_path . 'www/index.php'); 
$phar->addFile($full_path . 'www/bootstrap.php'); 
$phar->addFile($full_path . 'www/session_start.php'); 


// Grab config 
$phar->addFile($full_path . 'config.php'); 


$phar->buildFromIterator(new RecursiveIteratorIterator (new RecursiveDirectoryIterator('../app', FilesystemIterator::SKIP_DOTS)),'../app'); 
$phar->buildFromIterator(new RecursiveIteratorIterator (new RecursiveDirectoryIterator('../vendor', FilesystemIterator::SKIP_DOTS)),'../vendor'); 

$phar->setDefaultStub('bootstrap.php', 'bootstrap.php'); 

$phar->stopBuffering(); 

echo "Phar created."; 

} catch (Exception $e) { 
// handle errors here 
echo $e->getMessage(); 
} 

Więc tworzę W ten sposób Phar a potem mam:

deploy.php

<?php 

require_once 'phar://package.phar/bootstrap.php'; 
$app->run(); 

Ale gdy uzyskuję dostęp do pliku /deploy.php, otrzymuję:

[Fri May 15 20:07:02 2015] [error] [client 10.0.2.2] PHP Warning: require_once(phar://package.phar/bootstrap.php) [function.require-once]: failed to open stream: Cannot open archive "/vagrant/www/package.phar", invalid alias in /vagrant/www/deploy.php on line 3 [Fri May 15 20:07:02 2015] [error] [client 10.0.2.2] PHP Fatal error: require_once() [function.require]: Failed opening required 'phar://package.phar/bootstrap.php' (include_path='.:/usr/share/php:/usr/share/pear') in /vagrant/www/deploy.php on line 3

Czy myślisz, że powinienem zająć się tym w ten sposób?

Dzięki

Odpowiedz

2

EDIT:

„Tworzenie Phar w folderze udostępnionym skrzynki Vagrant spowodowało ten problem Raz zmieniło.«Wyjście»własności do lokalizacji poza folderu udostępnionego błąd odszedł. " source


Należy sprawdzić php.ini: phar.require_hash = Off

Albo podpisać Phar z setSignatureAlgorithm()

Albo z Phing: <pharpackage ... signature="sha512"> ...

+0

Hi Ustaw 'phar.require_hash = Off' ale nadal daje mi ten sam błąd –

+0

Cóż, możesz wyrazić lokalne nazwy w [http://php.net/manual /en/phar.addfile.php] (addFile()) –

+0

Czy przez to rozumiesz? Coś takiego: '$ phar-> addFile ($ full_path. 'www/index.php', 'www/index.php'); '..., zrobił to, przebudował phara i nadal nie mógł go dołączyć, otrzymując błąd" nieważnego aliasu "podczas wykonywania:' include 'phar : //package.phar/www/bootstrap.php '; ' –

Powiązane problemy