Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

868
Views
pecl falla al instalar el controlador mongodb en Apple Silicon (M1)

tengo php 7.4 instalado en mi macbook pro m1

 % php -v PHP 7.4.15 (cli) (built: Feb 26 2021 09:28:23) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.15, Copyright (c), by Zend Technologies

Estoy tratando de instalar el controlador mongodb ejecutando:

 sudo pecl install mongodb

Pero falla después de un tiempo:

 mp/pear/temp/mongodb/src/contrib/ -DHAVE_CONFIG_H -g -O2 -c /private/tmp/pear/temp/mongodb/php_phongo.c -fno-common -DPIC -o .libs/php_phongo.o In file included from /private/tmp/pear/temp/mongodb/php_phongo.c:29: In file included from /opt/homebrew/Cellar/php@7.4/7.4.15_1/include/php/ext/spl/spl_iterators.h:24: /opt/homebrew/Cellar/php@7.4/7.4.15_1/include/php/ext/pcre/php_pcre.h:25:10: fatal error: 'pcre2.h' file not found #include "pcre2.h" ^~~~~~~~~ 1 error generated. make: *** [php_phongo.lo] Error 1 ERROR: `make' failed

probé con

 arch -x86_64 sudo pecl install mongodb

pero da como resultado el mismo error.

Alguien sabe como puedo solucionar esto por favor O si puedo instalar el controlador mongodb sin usar pecl. Gracias por adelantado.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Finalmente he resuelto mi problema. Seguí estos pasos desde https://github.com/mongodb/mongo-php-driver/issues/1159

Después de instalar una versión más nueva de PHP donde anteriormente usé 7.3.24 y actualicé a 7.4.16 .

Todavía tenía el mismo problema pero un archivo diferente:

error fatal: archivo 'pcre2.h' no encontrado #incluir "pcre2.h"

A partir de este error, traté de verificar los archivos en el sistema de archivos Big Sur de MacOs y al final encontré dónde se encuentra pcre2.h, y extrañamente estaba siendo llamado en la carpeta pcre, así que copié manualmente de la carpeta pcre2 a pcre

La solución que utilicé:

 $cp /opt/homebrew/Cellar/pcre2/10.36/include/pcre2.h /opt/homebrew/Cellar/php\@7.4/7.4.16/include/php/ext/pcre/pcre2.h

Luego, instalé mongodb usando

 $brew install mongodb

Después de eso, una vez más intenté

 $sudo pecl install mongodb

Finalmente, funcionó. Sin embargo, no estoy seguro de si esta es una buena manera de resolver el problema agregando manualmente un archivo de encabezado al directorio. (Lo siento, todavía soy nuevo en el entorno MacOs, acabo de comprar un mac mini m1 la semana pasada para desarrollar mis habilidades de programación)

Si tuviera que instalar varias versiones de php desde homebrew, asegúrese de estar usando la versión actual como desea. Puede verificar la versión usando which php .

Para cambiar de 7.4 a 5.6

 $brew unlink php@7.4 $brew link php@5.6 --force

créditos: https://www.markhesketh.com/switching-multiple-php-versions-on-macos/

Nuevo errorNuevo error

Instalación exitosa:Instalación exitosa

over 4 years ago · Santiago Trujillo Report

0

Tuve el mismo problema con PHP 7.3, lo resolví simplemente ejecutando los siguientes comandos:

 cp /opt/homebrew/Cellar/pcre2/10.38/include/pcre2.h /opt/homebrew/Cellar/php@7.3/7.3.31/include/php/ext/pcre/pcre2.h

Luego lo instalé con éxito:

 sudo pecl install mongodb
over 4 years ago · Santiago Trujillo Report

0

cp /Applications/MAMP/Library/include/pcre2.h /Applications/MAMP/bin/php/php8.0.8/include/php/ext/pcre/pcre2.h

entonces corre

 sudo pecl install mongodb
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!