Pregunta

No hago una enorme cantidad de trabajo php y he bcompiler nunca utilizado antes, pero estoy migración de un sitio de PHP a un nuevo servidor y no puedo conseguir este trabajo.

Parece que hay una clase compilado con 'class.viewimage.php' bcompiler - contiene BZ código comprimido 'BZh91AY y SY; iu ...'

Hay, pues, un archivo PHP regular que está llamando esta clase:

require('class.viewimage.php');
$my_image = NEW ViewImage ($MEDIALIB->Filestore);

Cuando se ejecuta este código sólo escupe los contenidos de texto de la clase compilada en el navegador ( 'BZh91AY y SY; iu ...'). Es la línea requieren que está causando esto. Me parece como php no mágicamente saber que esto se compila el código.

A lo mejor de mi conocimiento que he instalado Bcompiler en el sistema ya que este código ya chocar (y que estaba fallando la primera vez que hice la migración) no es:

if (!extension_loaded('bcompiler')) {
    $prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';
    dl($prefix . 'bcompiler.' . PHP_SHLIB_SUFFIX);
}

Cualquier ayuda apreciada.

¿Fue útil?

Solución

Mientras que he tenido mis propios problemas con PHP bcompiler, utilizando include() o require() el acceso al código compilado (compilado usando bcompiler_write_file()) en una máquina con el módulo instalado y activado bcompiler debería funcionar.

http://us2.php.net/manual/en/ function.bcompiler-read.php :

  

Nota:

     

Por favor, use include o require   declaraciones a los códigos de bytes de análisis sintáctico, es   más portátil y conveniente que   utilizando esta función.

No sólo hay una multitud de insectos, pero las versiones son incompatibles entre sí, que es lo que supongo es su problema.

Por ejemplo, mis dos (incompatibles) máquinas:

CentOS 5.5, PHP 5.2.10, Apache 2.2.3, x86_64
----
bcompiler version   0.9.3-devs
current bytecode version    0.21
can parse bytecode version  0.7, 0.9, 0.11, 0.12, 0.14, 
0.18, 0.21

Mac OS X 10.6, PHP 5.3.3, Apache 2.2.15, i386
----
bcompiler version   0.9.3-devs
current bytecode version    0.22
can parse bytecode version  0.20, 0.22

Me lo presentó como un error al paquete PECL.

Otros consejos

PHP considera todos requieren / archivos de inclusión para ser texto sin formato, y tratarlos como tales hasta que se ve bien el <? (SHORTTAG), <?php (tag regular), o <% (tag ASP) secuencias de caracteres en la corriente, después de que cambia al modo PHP, hasta que se llega al final de la secuencia de comandos o la etiqueta correspondiente de cierre (?>, %>). Como tal, no hay manera de tener PHP tratar a una entrada compilado como código de programa. Incluso un EVAL no ayuda, ya que simplemente invoca el mismo analizador que no desencadenan la entrada binaria en el primer lugar.

propio código bzip no es ejecutable o bien, a no ser que ha sido envuelto por un trozo de auto-extractor.

Ya que parece ser bzip, por qué no intentar un-bzipping el archivo y ver lo que hay? Tal vez el archivo de clase se descargó como una distribución .bz2 y simplemente se cambia el nombre. La copia sin comprimir puede contener las envolturas apropiadas para permitir la ejecución.

he estado luchando desde hace mucho tiempo para trabajar con bcompiler pero es sorprendente que he encontrado una solución muy fácil en el que se puede compilar todo el sitio web con un solo clic. puede seguir los pasos detallados a continuación: -

  1. Descargar e instalar Wampserver (cualquier edición).

  2. Descargar e instalar PHP Wampserver Complementos versión de PHP 5.2.5

  3. haga clic en Wampserver -> PHP -> Versión -.> 5.2.5 de la barra de tareas (que va a cambiar su versión actual de PHP 5.2.5 a)

  4. Seleccione Wampserver -> PHP -> Extensiones -> php_bcompiler (que permitirá bcompiler en su ordenador).
    Por encima de pasos son suficientes si se puede compilador el guión de su propia, sino para hacer más fácil que pueda continuar con los siguientes pasos.

  5. bcompiler GUI .

  6. Seleccione la carpeta en la interfaz gráfica de usuario Bcompiler y esto compilador toda su sitio web con un solo clic.

disfrutar de PHP | Disfrutar de Open Source

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top