with texto strip_tags remove limpiar from eliminar allow all php imap

texto - Error fatal: llamada a la función no definida imap_open() en PHP



string strip_tags (10)

Estoy intentando acceder a mi cuenta de gmail a través de mi servidor local. Sin embargo, estoy recibiendo la respuesta:

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

¿Puede alguien señalar qué debo hacer para resolver el problema?

$hostname = ''{imap.gmail.com:993/imap/ssl}INBOX''; $username = ''[email protected]''; $password = ''mypassword''; /* try to connect */ $inbox = imap_open($hostname,$username,$password) or die(''Cannot connect to Gmail: '' .imap_last_error());


Con

echo get_cfg_var(''cfg_file_path'');

puede averiguar qué php.ini ha sido utilizado por esta instancia de php.


Durante la migración de Ubuntu 12.04 a 14.04 me tropecé con esto también y quería compartir que a partir de Ubuntu 14.04 LTS la extensión IMAP parece que ya no se carga por defecto.

Verifique para verificar si la extensión está instalada:

dpkg -l | grep php5-imap

debería dar una respuesta como esta:

ii php5-imap 5.4.6-0ubuntu5 amd64 IMAP module for php5

si no, instálalo.

Para habilitar realmente la extensión

cd /etc/php5/apache2/conf.d ln -s ../../mods-available/imap.ini 20-imap.ini service apache2 restart

debería arreglarlo para apache. Para CLI haga lo mismo en /etc/php5/cli/conf.d


El Procedimiento de instalación es siempre el mismo, pero el administrador del paquete 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 del usuario, ya sea obtenida con los comandos su o sudo .

b ) luego uno puede instalar el módulo PHP ausente con un administrador de paquetes.

c ) después de eso, se requiere reiniciar el daemon HTTP apache2 para cargar el módulo.

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

En Ubuntu, el paquete APT php5-imap (o php-imap ) puede instalarse con apt-get :

apt-get install php5-imap service apache2 restart

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

aptitude install php5-imap apache2ctl graceful

En CentOS y Fedora, el paquete RPM php-imap se puede instalar con yum (sugerencia: el nombre del paquete podría ser algo parecido a php56w-imap o php71w-imap , cuando se utiliza el repositorio Webtatic ):

yum install php-imap service httpd restart

En los sistemas systemd , al usar 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 archivo predeterminado php.ini (al menos en Ubuntu 12.04) y un módulo PHP debe, como máximo, hacer referencia una vez . Se sugiere el uso de fragmentos de INI para cargar módulos, mientras que el directorio /etc/php5/conf.d/ (esa ruta también puede variar) se está escaneando para archivos INI :

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

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

php5enmod imap php5dismod imap

Una vez que el módulo IMAP se carga en el servidor, las funciones de PHP IMAP estarán disponibles; la mejor práctica puede ser, verificar si un módulo está incluso cargado , antes de intentar utilizarlo.


En Mac OS X con Homebrew, como obviamente, PHP ya está instalado debido a un error proporcionado que no podemos ejecutar:

Actualización: ¡La última versión de brew instal php --with-imap ya no funcionará!

$ brew install php72 --with-imap Warning: homebrew/php/php72 7.2.xxx is already installed

Además, la instalación del módulo solamente, aquí no funcionará:

$ brew install php72-imap Error: No available formula with the name "php72-imap"

Entonces, debemos reinstalarlo :

$ brew reinstall php72 --with-imap

Llevará un tiempo :-) (incorporado en 8 minutos 17 segundos)


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

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

Por defecto, el soporte IMAP para PHP está desactivado en XAMPP, porque hubo algunos misteriosos errores de inicialización con algunas versiones domésticas como Windows 98. Quien trabaja con sistemas NT, puede abrir el archivo "/xampp/php/php.ini" para activar la extensión de php eliminando el punto y coma inicial en la línea ";extension=php_imap.dll" . Debería 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.


Si su instalación local ejecuta XAMPP en Windows, es suficiente: puede abrir el archivo "/ xampp / php / php.ini" para activar la extensión de php eliminando el punto y coma inicial en la línea "; extension = php_imap.dll". Debería ser:

;extension=php_imap.dll

a

extension=php_imap.dll


Ubuntu con Nginx y PHP-FPM 7 usan esto:

sudo apt-get install php-imap

service php7.0-fpm restart service ngnix restart

compruebe que el módulo se haya instalado php -m | grep imap

La configuración del módulo imap se habilitará automáticamente, tanto en cli php.ini como en fpm php.ini

nano /etc/php/7.0/cli/conf.d/20-imap.ini nano /etc/php/7.0/fpm/conf.d/20-imap.ini


si es centos con php 5.3 instalado.

sudo yum install php53-imap

y reiniciar apache

sudo / sbin / service reinicio de httpd o sudo service apache2 restart


si está en Linux, edite el archivo /etc/php/php.ini (o tendrá que crear un nuevo archivo de importación de extensión en /etc/php5/cli/conf.d) para que pueda agregar el archivo de objeto compartido de imap y luego, reinicie el servidor Apache. Descomentar

;extension=imap.so

para que se vuelva así:

extension=imap.so

Luego, reinicie Apache por

# /etc/rc.d/httpd restart


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

y imap por defecto no habilitado por php, así que use este comando para habilitar la extensión de imap

sudo php5enmod imap

luego reinicia tu apache

sudo service apache2 restart