2009-11-27 17 views
7

Esto se está convirtiendo en un problema muy frustrante. Estoy tratando de hacer una instalación limpia de Apache 2.2 y PHP 5.2.11. Todo parece estar configurado correctamente, pero los módulos de PHP no están empezando ...Inicio de PHP: no se puede cargar la biblioteca dinámica, Windows, Apache 2.2, php 5.2.11

PHP Warning: PHP Startup: Unable to load dynamic library '.;C:/Program Files (x86)/Apache Software Foundation/Apache2.2/php/ext/php_mcrypt.dll' - The specified module could not be found.\r\n in Unknown on line 0 
PHP Warning: PHP Startup: Unable to load dynamic library '.;C:/Program Files (x86)/Apache Software Foundation/Apache2.2/php/ext/php_mysql.dll' - The specified module could not be found.\r\n in Unknown on line 0 
PHP Warning: PHP Startup: Unable to load dynamic library '.;C:/Program Files (x86)/Apache Software Foundation/Apache2.2/php/ext/php_openssl.dll' - The specified module could not be found.\r\n in Unknown on line 0

en el php.ini

include_path = ".;C:\Program Files (x86)\Apache Software Foundation\Apache2.2\php" 
extension_dir = ".;C:/Program Files (x86)/Apache Software Foundation/Apache2.2/php/ext/" 

Todos los archivos están ahí ... Los archivos .dll como ssleay32.dll, libmcrypt.dll, libmysql.dll, libeay32.dll están todos instalados en ...

C:/archivos de programa (x86)/Fundación de Software Apache/Apache2.2/php/

I también los incluyó en el C: \ Windows \ System32

e incluso se agregaron C:/Archivos de programa (x86)/Apache Software Foundation/Apache2.2/php/a la ruta de Windows.

No tengo idea de por qué esto no funciona y se siente como una situación sin beneficios. Alguien tiene alguna idea sobre cómo hacer que todo funcione bien?

Respuesta

10

Prueba esto:

extension_dir = "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/php/ext/" 

sin comenzar con el .;

+0

Eso lo consiguió todo funcionando de nuevo. ahora solo tengo que descubrir por qué OpenSSL y paypalewp no funcionan bien incluso después de una instalación limpia ... Gracias por la respuesta –

+0

¡Feliz de ayudar! Publique otra pregunta sobre sus problemas con OpenSSL si no puede resolverlo. Quizás alguien por aquí pueda ayudar. :) –

+0

¡Muchas gracias, funciona como un encanto! –

1

Sólo por mi yo futuro si nadie más. Esto es con PHP 5.2.13 corriendo en Windows en IIS 8.

Tengo el siguiente error:

PHP Warning: PHP Startup: Unable to load dynamic library 'C:\Program Files (x86)\PHP\ext\php_openssl.dll' - The specified module could not be found.

De phpinfo() el archivo php.ini carga no C:\Program Files (x86)\PHP\php.ini.

El directorio de la extensión:

extension_dir ="C:\Program Files (x86)\PHP\ext" 

Estas fueron las dos últimas líneas del archivo: php.ini

[PHP_SQLSRV] 
extension=php_sqlsrv_52_nts_vc6.dll 
[PHP_OPENSSL] 
extension=php_openssl.dll 

Los archivos php_openssl.dll y php_sqlsrv_52_nts_vc6.dll están en el directorio ext. El php_openssl.dll no está dañado (es el mismo tamaño de archivo que uno en otra máquina que está funcionando).

PHP encontrará el dll sqlsrv pero no el dll openssl. No tengo idea por qué. Ninguna cantidad de reinicio de IIS hizo nada.

La solución hasta que sé mejor fue instalar la extensión openssl.dll utilizando el instalador PHP de Windows. Puede volver a ejecutar el instalador y seleccionar 'Cambiar' y le permite agregar o eliminar bibliotecas. No veo ninguna diferencia en el archivo o el archivo php.ini ahora, pero ahora el archivo se carga.

sospecho hecho de que mi problema era similar a este comment about OpenSSL installation on Windows:

At this point, when you start Apache it will attempt to load php_openssl.dll, but if your setup is anything like mine you will see an error. I prefer to start Apache manually, and the error appears in a dialog box: "The ordinal 4114 could not be located in the dynamic link library LIBEAY32.dll". (I'm not sure whether you would get this message if you started Apache as a service). The Apache log also contains an error message saying that php_openssl.dll cannot be loaded, though that message doesn't name libeay32.dll. Welcome to DLL Hell.

Libeay32.dll enters the picture because php_openssl.dll depends on it (and also on ssleay32.dll). What I think happens is that Apache first tries to load php_openssl.dll programmatically from the path specified by the extension_dir key. But then, the loading of the so-called dependent DLLs is left to Windows' default mechanism. If Windows finds an incompatible version of a dependent DLL, you get the error.

me di cuenta de errores sobre ssleay32.dll al intentar ejecutar php -i desde la línea de comandos. Solo asumí que no lo tenía en el entorno.IIS no mencionó ningún error ssleay32.dll en sus registros.

+0

¡Sí! funcionó. He ejecutado Apache desde cmd con el comando 'x: \ xampp \ apache \ bin \ httpd.exe -d x:/xampp/apache' copiado del Administrador de tareas, columna' línea de comando'). Arrojó errores para ambas DLL. Tuve que copiar 'ssleay32.dll' y' libeay32.dll' de php dir a apache \ bin. ¡Gracias! –

1

Sólo elimine el comentario extension_dir en php.ini

enter image description here

0

mismos errores teníamos, pero en lugar de copiar los archivos agregados a la carpeta php ruta del sistema y se actualizan el servidor.

Cuestiones relacionadas