2010-01-12 20 views
15

Encontré algunas publicaciones relacionadas pero no recibí mi respuesta. Entonces publicar de nuevo.
¿Cómo instalaría una extensión PECL en Windows? Digamos que quiero la extensión PECL oAuth en Windows XP.
Conozco 2 métodos, pero ninguno funciona para mí.Extensión PECL para Windows

  1. El sitio http://pecl4win.php.net/ está inactivo durante meses. Entonces no puedo descargar la DLL. ¿Hay algún lugar desde donde podamos descargar los archivos DLL?

  2. ejecutar el comando instalación pecl oauth-0.99.9.tgz es tirar el error
    No existe el oauth.dsp DSP.
    He intentado con algunas otras extensiones y obteniendo el mismo error.

¿Qué es lo que falta aquí?

Respuesta

17

lanzamientos se pueden encontrar aquí:
http://windows.php.net/downloads/pecl/releases/

Si necesita una extensión no disponible no puede preguntar sobre la pecl-dev en la lista de correo lists.php.net.

+1

Dado que el origen de las extensiones está fácilmente disponible, en lugar de proporcionar directamente un dll específico, sería mejor si publicara una guía detallada sobre cómo construir un dll de extensión pecl desde el origen. Encontré algunos artículos sobre esto pero todavía no muy claros. – Varun

+2

http://wiki.php.net/internals/windows/stepbystepbuild tiene algunas instrucciones. Como dije en un comentario a otra respuesta aquí: el sistema de compilación en Windows actualmente no permite construir extensiones independientes, pero tiene que compilarse a partir del árbol de fuentes de PHP. Para agregar oauth, debe colocar las fuentes en php-src/ext/oauth antes de ejecutar buildconf.bat o usar la opción --extra-ext-dir (o similar) para buildconf.bat. – johannes

+0

Dos años después, una actualización de mi comentario anterior: Mientras tanto, hay una herramienta "phpize" similar a la de Unix disponible a partir de descargas binarias de "desarrollo". La creación de extensiones PECL a menudo no es trivial ya que muchos desarrolladores no prueban en Windows, que necesita algunas adopciones, especialmente cuando se usan bibliotecas de terceros. – johannes

1

El instalador PECL descarga el código fuente de la extensión e intenta compilarlo con su compilador de C local. El problema es que todo el proceso está diseñado para sistemas Unix, donde un compilador de C está disponible o puede instalarse fácilmente. Establecer un entorno para compilar el código C en Windows es bastante complicado.

La solución ideal es obtener un archivo DLL que alguien ya compiló. Para eso estaba el sitio pcle4win. Sin embargo, actualmente no hay depósito oficial para descargar archivos DLL PECL lo que sólo tiene dos alternativas:

Es Sería genial que hubiera un repositorio de DLL por ahí, pero no conozco ninguno.

1

La fuente de php se envía con un conjunto de scripts de configuración para Windows (usando el host de script de Windows) que imita las herramientas de autoconf en lo que se refiere a php. Si coloca el código para la extensión en un directorio en el directorio/ext (donde se encuentran todas las demás extensiones como bcmath, bzip, ...) puede dejar que el buildconf -script cree un archivo MAKE que incluya las reglas de compilación para ese (nueva) extensión.
Hay un recorrido paso a paso al http://wiki.php.net/internals/windows/stepbystepbuild que parece breve pero factible.

+1

Estamos hablando de Unix no de Windows. construir extensiones independientes sin construir todo PHP en Windows no es posible. – johannes

+0

Sí, fui intencionalmente vago al decir "crear un archivo MAKE que incluya las reglas de compilación". ¿Y qué? Cree el núcleo y solo la extensión que desee como módulo compartido, asegúrese de que los parámetros de configuración coincidan con los del paquete php que está utilizando y luego use el .dll con su instalación de php "normal". Podría ser más fácil, pero no es ciencia espacial, ¿verdad? La extensión mailparse ni siquiera depende de bibliotecas externas. – VolkerK

2

Actualmente PECL para Windows está en un estado extraño de reforma. La razón es que creo que están tratando de proporcionar versiones fuente VS2008. De hecho, sugeriría usar Zend Server por ahora hasta que la mitad de Windows del grupo php lo arregle todo. Zend Server incluye casi todas las extensiones que puede encontrar en PECL, y todo lo demás, si tiene suerte, puede encontrar una compilación usted mismo.

+0

Entonces, ¿podemos decir que Zend está haciendo esto a propósito para algunas posibles ganancias monetarias futuras? – Pacerier

+0

@Pacerier Zend no posee PHP, PHP usa Zend Engine. El grupo de windows php es un grupo de código abierto. Dicho esto, Zend Server es una solución empresarial de Zend, para obtener ganancias monetarias. Probablemente por eso agregaron los módulos más comunes a Zend Server para Windows. –

Cuestiones relacionadas