Saltar al contenido

Error fatal: llamada a la función indefinida imap_open () en PHP

Luego de mucho batallar pudimos encontrar la contestación de esta contratiempo que tantos lectores de este sitio web han tenido. Si quieres aportar algo no dejes de compartir tu información.

Solución:

Bastante simple, la extensión IMAP no está activada en su instalación de PHP. No está habilitado por defecto. Si su instalación local está ejecutando XAMPP en Windows, debe habilitarlo como se describe en las preguntas frecuentes de XAMPP:

¿Dónde está el soporte IMAP para PHP?

Por defecto, el soporte de IMAP para PHP está desactivado en XAMPP, porque hubo algunos misteriosos errores de inicialización con algunas versiones caseras como Windows 98. Quien trabaja con sistemas NT, puede abrir el archivo.
"xamppphpphp.ini" para activar la extensión php eliminando el punto y coma inicial en la línea ";extension=php_imap.dll". Debiera ser:
extension=php_imap.dll

Ahora reinicie Apache e IMAP debería funcionar. Puede usar los mismos pasos para cada extensión, que no está habilitada en la configuración predeterminada.

los Procedimiento de instalación es siempre el mismo, pero el administrador de paquetes y el nombre del paquete varían, dependiendo de la distribución, versión y/o repositorio que se use. En general, los pasos son:

a) al principio, se requiere una escalada de privilegios de usuario, ya sea obtenida con los comandos su o sudo.

B), entonces uno puede instalar el módulo PHP ausente con un administrador de paquetes.

C) después de eso, reiniciar el apache2 Se requiere un demonio HTTP para cargar el módulo.

D) por fin, uno puede correr php -m | grep imap para ver si el módulo PHP ya está disponible.

En ubuntu los APT paquete php5-imap (o php-imap) se puede instalar con apt-get:

apt-get install php5-imap
service apache2 restart

En Debianlos APT paquete php5-imap se puede instalar aptitude (o apt-get):

aptitude install php5-imap
apache2ctl graceful

En CentOS y Fedora los RPM paquete php-imap se puede instalar con yum (pista: el nombre del paquete podría ser algo parecido php56w-imap o php71w-imapal usar el repositorio de Webtatic):

yum install php-imap
service httpd restart

En systemd sistemas, mientras usa unidades systemd, el comando para reiniciar la unidad httpd.service es:

systemctl restart httpd.service

La solución indicada anteriormente tiene el problema de que cuando el módulo ya estaba referenciado en:

/etc/php5/apache2/php.ini

Podría arrojar un:

PHP Warning:  Module 'imap' already loaded in Unknown on line 0

Eso sucede, porque se hace referencia en el valor predeterminado. php.ini archivo (al menos en Ubuntu 12.04) y un módulo PHP debe ser referenciado una vez como máximo. Utilizando INI se sugieren fragmentos para cargar módulos, mientras que el directorio /etc/php5/conf.d/ (esa ruta también puede variar) se está escaneando para INI archivos:

/etc/php5/conf.d/imap.ini

Ubuntu también presenta comandos propietarios para administrar módulos PHP, que se ejecutarán antes de reiniciar el servidor web:

php5enmod imap
php5dismod imap

Una vez el IMAP el módulo está cargado en el servidor, las funciones PHP IMAP deberían estar disponibles; la mejor práctica puede ser, para comprobar si un módulo incluso está cargadoantes de intentar utilizarlo.

En Ubuntu para instalar imap use

sudo apt-get install php-imap

Uso de Ubuntu 14.04 y superior

sudo apt-get install php5-imap

E imap por defecto no está habilitado por PHP, así que use este comando para habilitar la extensión imap

sudo php5enmod imap

Luego reinicie su Apache

sudo service apache2 restart

Recuerda algo, que tienes la capacidad de glosar si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *