Domanda

Utilizziamo una combinazione di Ubuntu + Nginx + PHP5-FPM sui nostri server con versione PHP 5.5.Stiamo cercando di eseguire Index.php che include un gruppo di file Phar.Qualcosa come:

<?php
include "a.phar";
include "b.phar";
//...
?>
.

Quando questo script viene eseguito dalla riga di comando PHP, funziona bene.Quando viene eseguito da PHP Development Server (PHP -S) o da NGINX, otteniamo il seguente errore:

2013/11/18 17:56:06 [error] 14384#0: *597 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Cannot redeclare class Extract_Phar in b.phar on line 103
.

Non ho una classe chiamata Estract_phar - quindi presumo che il mio processo di costruzione lo stia aggiungendo da qualche parte lungo la strada.Ho usato il Phing per costruire lo stesso, nel caso in cui aiuta.L'obiettivo di Phing è:

<target name="phar" depends="prepare">
  <pharpackage destfile="./build/phar/LogUtils.phar" 
  basedir="./build/intophar"
  compression="bzip2">
  <fileset dir="./build/intophar/">
    <include name="*.*" />
    <include name="**/**" />
  </fileset>
  <metadata>
    <element name="version" value="1.0" />
    <element name="authors">
       <element name="Shreeni">
         <element name="e-mail" value="test@test.com" />
       </element>
    </element>
  </metadata>
  </pharpackage>
</target>
.

E l'index.php nella mia cartella Intofar è qualcosa come:

include("api/LogUtils.inc.php");
// Other relative include statements
.

Ho giocato con le bandiere APC in base ad altre risposte e hanno impostato quanto segue:

apc.include_once_override = 0 
apc.canonicalize = 0 
apc.stat = 0
apc.enabled=0 
apc.enabled_cli=0
apc.cache_by_default = 0
.

Nessuno di questo aiuta e non siamo in grado di eseguire il nostro codice.Eventuali suggerimenti?

È stato utile?

Soluzione

Il problema potrebbe accadere a causa di stub in conflitto nei vari file Phar.Prova:

<?php
include "phar://a.phar/index.php"; // Assuming that the stub is index.php
include "phar://b.phar/index.php"; // Assuming that the stub is index.php
//...
?>
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top