Estoy tratando de hacer que PHP7.2 funcione en localhost, pero phpinfo() sigue diciendo que 7.1.19 está en su lugar mientras que ~php -v me dice que PHP7.2.18 está en su lugar.
Ejecuto ~php -v dice:
PHP 7.2.18 (cli) (construido: 2 de mayo de 2019 13:03:01) (NTS) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies con Zend OPcache v7.2.18, Copyright (c) 1999-2018, por Zend Technologies
~echo $RUTA
/usr/local/opt/php@7.2/sbin:/usr/local/opt/php@7.2/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/ Aplicaciones/VMware Fusion.app/Contents/Public:/opt/X11/bin
Instalé PHP7.2 a través de brew en
➜ php@7.2 pwd
/usr/local/opt/php@7.2
Espero que esté en localhost PHP 7.2.18 en su lugar.
ACTUALIZAR
Seguí estas instrucciones del enlace mencionado por @miken32 ( ¿Cómo usar el php que instaló brew? )
Editado httpd.conf en la carpeta /etc/apache2
#LoadModule php7_module libexec/apache2/libphp7.so
LoadModule php7_module /usr/local/opt/php@7.2/lib/httpd/modules/libphp7.so
Si elimino el comentario de la primera línea y comento la segunda línea, puedo ejecutar phpinfo() desde localhost, sin embargo, dice que es PHP 7.1.19 y php -v
dice 7.2.18
En caso de que comente la primera línea y descomente la segunda línea, localhost no se iniciará y php -v
dice 7.2.18
También seguí estos pasos, pero tampoco tuve suerte.
$ brew update php // get the latest homebrew php packages
$ brew install php@7.2
$ brew link php@7.2 // create an alias to this keg-only version; see comments output during installation
$ echo 'export PATH="/usr/local/opt/php@7.2/bin:$PATH"' >> ~/.bash_profile // add the alias to your path; see comments output during installation
$ source ~/.bash_profile // reload .bash_profile to use the new settings immediately
$ sudo apachectl restart
También probé la cerveza, link php71 --force
pero eso tampoco ayudó.
Entonces parece que el servidor web no se inicia cuando cambio de línea httpd.conf
¿Algún paso que pueda tomar para obtener 7.2.18?
ACTUALIZAR 2
➜ apache2 sudo apachectl -t
httpd: error de sintaxis en la línea 178 de /private/etc/apache2/httpd.conf: no se puede cargar /usr/local/opt/php@7.2/lib/httpd/modules/libphp7.so en el servidor: dlopen(/usr/local /opt/php@7.2/lib/httpd/modules/libphp7.so, 10): no se encontró ninguna imagen adecuada. Encontré:\n\t/usr/local/opt/php@7.2/lib/httpd/modules/libphp7.so: firma de código en (/usr/local/opt/php@7.2/lib/httpd/modules/libphp7 .so) no es válido para su uso en el proceso mediante la validación de la biblioteca: el archivo asignado no tiene cdhash, ¿completamente sin firmar? El código debe estar firmado al menos ad-hoc.\n\t/usr/local/opt/php@7.2/lib/httpd/modules/libphp7.so: stat() falló con errno=22
La línea 178 dice:
LoadModule php7_module /usr/local/opt/php@7.2/lib/httpd/modules/libphp7.so
Tengo que investigarlo. En algún lugar de SO en una publicación anterior, se hizo la sugerencia si hay caracteres 'extraños' que podrían causar el error. Verificado y el único extraño es '@'. Sin embargo, esa es la instalación lista para usar de Brew.
Está intentando utilizar el módulo PHP de HomeBrew con el servidor web Apache proporcionado por Apple. Esa es una configuración no admitida en Mojave.
No funciona porque macOS intenta validar que su software esté correctamente firmado (es decir, no manipulado), y falla esta verificación después de que haya cambiado los archivos binarios que se van a cargar. Puede solucionar esto desactivando SIP (Sistema Protección de integridad), pero esa es una muy mala idea, ya que esto también deshabilitaría la protección en sus otros programas.
La forma correcta de proceder es dejar de usar el servidor web Apache incorporado y, en su lugar, usar un servidor web diferente. La transición más fácil es usar Apache proporcionado por HomeBrew en su lugar.
Puede hacerlo instalando primero Apache desde HomeBrew:
brew install httpd
Luego, evita que macOS inicie Apache proporcionado por Apple en el arranque:
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
Asegúrese de que la nueva línea del módulo php que ha insertado ahora no esté comentada, y la anterior sí, es decir, que se vea así:
#LoadModule php7_module libexec/apache2/libphp7.so
LoadModule php7_module /usr/local/opt/php@7.2/lib/httpd/modules/libphp7.so
Luego inicie la nueva instalación del servidor web Apache:
brew services restart httpd
Dependiendo de su configuración, podrá conectarse con su navegador a localhost:80 o localhost:8080 para ver su sitio.
sin ladera