2010-06-28 15 views
13

Después de actualizar PHP desde 5.1 a 5.2.10, que tiene las siguientes advertencias cuando php -v:PHP Warning: PHP inicio: ????????: No se puede inicializar el módulo

# php -v 
    PHP Warning: PHP Startup: fileinfo: Unable to initialize module 
    Module compiled with module API=20050922, debug=0, thread-safety=0 
    PHP compiled with module API=20060613, debug=0, thread-safety=0 
    These options need to match 
    in Unknown on line 0 
    PHP Warning: PHP Startup: mcrypt: Unable to initialize module 
    Module compiled with module API=20050922, debug=0, thread-safety=0 
    PHP compiled with module API=20060613, debug=0, thread-safety=0 
    These options need to match 
    in Unknown on line 0 
    PHP Warning: PHP Startup: memcache: Unable to initialize module 
    Module compiled with module API=20050922, debug=0, thread-safety=0 
    PHP compiled with module API=20060613, debug=0, thread-safety=0 
    These options need to match 
    in Unknown on line 0 
    PHP Warning: PHP Startup: mhash: Unable to initialize module 
    Module compiled with module API=20050922, debug=0, thread-safety=0 
    PHP compiled with module API=20060613, debug=0, thread-safety=0 
    These options need to match 
    in Unknown on line 0 
    PHP Warning: PHP Startup: mssql: Unable to initialize module 
    Module compiled with module API=20050922, debug=0, thread-safety=0 
    PHP compiled with module API=20060613, debug=0, thread-safety=0 
    These options need to match 
    in Unknown on line 0 
    PHP Warning: PHP Startup: readline: Unable to initialize module 
    Module compiled with module API=20050922, debug=0, thread-safety=0 
    PHP compiled with module API=20060613, debug=0, thread-safety=0 
    These options need to match 
    in Unknown on line 0 
    PHP Warning: PHP Startup: tidy: Unable to initialize module 
    Module compiled with module API=20050922, debug=0, thread-safety=0 
    PHP compiled with module API=20060613, debug=0, thread-safety=0 
    These options need to match 
    in Unknown on line 0 
    PHP 5.2.10 (cli) (built: Nov 13 2009 11:24:03) 
    Copyright (c) 1997-2009 The PHP Group 
    Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies 

¿Cómo puedo ¿arreglalo? ¡Gracias!

Respuesta

15

Parece que no ha actualizado los módulos de PHP, no son compatibles.

Compruebe la directiva extension_dir en php.ini. Debería apuntar a la carpeta con 5.2 módulos.

Puesto que usted hizo una actualización, no es una posibilidad que está utilizando php.ini de edad que apunta a 5,1 módulos

+0

'extension_dir' apunta a'/user/lib/php/modules' en el que hay muchos archivos '.so'. ¿Cómo puedo saber la versión de esos archivos '.so'? THX – ohho

+0

Cuando se ejecuta PHP como lo hizo en cuestión, para cada módulo incompatibles recibirá mensaje de advertencia: No se puede inicializar el módulo módulo compilado con la API de módulo = 20050922 En su caso módulos incompatibles son: fileinfo, mcrypt, Memcache, mhash, mssql, readline y tidy, intente deshabilitarlos y ver si hace una diferencia. – bas

+0

@Horace: si está en un host tipo Unix, intente esto en la extensión dir: 'cadenas -f * .so | grep API'. Puede haber varias cadenas 'API' en cada .so, pero solo deberían estar con el número de versión de la API –

10

intenta actualizar cada uno de los módulos usando el comando pecl

# pecl upgrade fileinfo 
# pecl upgrade memcache 
# pecl upgrade mhash 
# pecl upgrade readline 

etc. ..

+0

2017 y sigo trabajando! Gracias – funilrys

1

Borre el módulo que no se puede inicializar y vuelva a instalarlo.

10

brew reinstall php56-mcrypt --build-from-source

hacer esto de paso del --build-from-source bandera para cada módulo que debe ser compilado con la misma versión.

También puede requerir opciones de PHP en función de sus complementos. Si es así, brew reinstall php56 --with-thread-safety

Para ver todas las opciones para php run [versión] brew options php56 (sustituyendo 56 con su versión)

0

Esto se acaba de describir por qué tuve este problema en caso de que alguien le resulta útil.

Mi problema era que había actualizado php con homebrew y había forzado en algún momento la variable PHP_INI_SCAN_DIR en mi perfil o archivo bashrc por lo que estaba apuntando a la versión anterior de php. Se eliminó esa línea y se corrigió.

0

Esto me sucedió cuando intenté instalar una versión más nueva de PHP. Después de encontrar que también necesitaría reconfigurar Apache, cambié a la versión anterior de PHP. Aquí la solución que funcionó para mí:

cambio el httpd.conf para las versiones correctas:

PHPIniDir ... 
LoadModule php5_module ... 

cambió el

PATH - Environment Variable 

Cuando eso no tiene ningún efecto

rename or delete the new PHP(-Version)-Folder 

Por alguna razón, el último paso fue el truco para mí. Incluso después de un reinicio no tuvo ningún efecto antes de hacer esto.

0

Si instaló php con homebrew, entonces verifique si su archivo apache2.conf usa la versión homebrew del archivo php5.so.

0

En mi caso, con Windows Server 2008, tuve que cambiar la variable PATH. La versión anterior de PHP (VC9) estaba dentro de ella.

Lo he cambiado con la versión más nueva de PHP (VC11).

Después de reiniciar Apache, estaba bien.

0

Este es un hilo viejo, pero lo encontré cuando intentaba resolver un problema similar.

Para mí, obtuve este error particular relacionado con el php_wincache.dll. Estaba en el proceso de actualizar PHP de 5.5.38 a 5.6.31 en un servidor de Windows. Por algún motivo, no todos los archivos DLL se actualizaron con las versiones más recientes. La mayoría lo hizo, pero otros no.

Por lo tanto, si obtiene un error similar a este, asegúrese de que todas las extensiones estén en su lugar y actualizadas.

Cuestiones relacionadas