php - para - mamp vs xampp
Cómo usar la versión de PHP de MAMP en lugar de la predeterminada en OSX (6)
Me gustaría utilizar la versión de PHP de MAMP en lugar de la predeterminada instalada en mi mac. Intenté usar
ln -s /Applications/MAMP/bin/php5.3/bin/php php
pero recibo un error "Archivo existe". ¿Cuál es la mejor manera de evitar esto, así que puedo simplemente escribir php en lugar de la ruta completa?
Bueno, el error ''file exists'' es probablemente porque usted intentó crear un sym-link con el nombre de un archivo que ya estaba allí. Supongo que estaba en el directorio que contiene la versión de php que intentaba reemplazar o que era un segundo intento y que no eliminó primero el sym-link existente. Estoy de acuerdo con los demás con respecto a no "reemplazar / modificar" la versión predeterminada de php.
En base a la segunda parte de la pregunta, la mejor forma de evitar la necesidad de escribir la ruta completa, las respuestas que sugieren un alias son correctas con eso. Sin embargo, cuando se trata de múltiples versiones, eso significa tener que llamar a algo que no sea php para ejecutar la versión que desea ejecutar.
Tengo un script que me permite "seleccionar" la versión de php con la que me gustaría trabajar, que luego crea un enlace simbólico a esa versión y me permite simplemente ingresar ''php'' como mi comando cuando quiero usarlo. Escribí un blog sobre esto here donde puedes obtener el guión. Según la respuesta dada por @ioCron, es posible que deba volver a visitar mi script para tener en cuenta las diferentes carpetas de configuración asociadas a cada versión.
Bueno, nada de esto me funcionaba con OSX10.12.5
tengo mac ports php70 instalado en / opt / local / bin
que php mostró:
/usr/bin/php
Configuré los alias y las rutas locales, etc., que en su mayoría funcionaron para mí, pero otros programas fallaban (como el compositor), por lo que la solución para mí fue preceder:
/opt/local/bin
/opt/local/sbin
al archivo / etc / paths
¡entonces todo funcionó con encanto!
He creado un enlace simbólico en la ubicación original de php.
1. Localice su versión de osx php con:
which php
El resultado debería ser:
/opt/local/bin/php
2. Haga una copia de seguridad (mueva) su binario original de php:
sudo mv /opt/local/bin/php /opt/local/bin/php.bak
3. Crea el enlace simbólico:
sudo ln -s /Applications/MAMP/bin/php/php5.4.4/bin/php /opt/local/bin/php
4. Ejecute su nueva versión de php:
php -v
PD:
Para que esto funcione en El-Capitan
- Reinicie su Mac a RecoveryMode (mantenga pulsado Cmd + R al arrancar)
- Abra la Terminal e ingrese:
csrutil disable
- Reiniciar
- ya sea:
sudo ln -s /Applications/MAMP/bin/php/php5.4.4/bin/php /opt/local/bin/php
osudo ln -s /Applications/MAMP/bin/php/php5.4.4/bin/php /usr/bin/php
- Reinicie nuevamente a RecoveryMode y vuelva a habilitar la seguridad:
csrutil enable
No estaba satisfecho con los resultados / soluciones que he encontrado en la red hasta ahora, porque las configuraciones php.ini no se cargaron correctamente en todos los casos y en todos los sistemas, especialmente cuando se necesitan módulos como ioncube y otros (es aún más confuso en MAMP Pro). Es por eso que he creado mis propios alias de versión php (con configs), así que he encontrado la siguiente solución, como ejemplo (basado en MAMP Pro, recuerde ajustar las rutas php.ini a sus necesidades):
Edite su .bash_profile
vim ~/.bash_profile
Y agrega las siguientes entradas:
alias php55="/Applications/MAMP/bin/php/php5.5.26/bin/php -c ''/Library/Application Support/appsolute/MAMP PRO/conf/php5.5.26.ini''"
alias php56="/Applications/MAMP/bin/php/php5.6.10/bin/php -c ''/Library/Application Support/appsolute/MAMP PRO/conf/php5.6.10.ini''"
alias php56cgi="/Applications/MAMP/bin/php/php5.6.10/bin/php-cgi -c ''/Library/Application Support/appsolute/MAMP PRO/conf/php5.6.10.ini''"
Vuelva a inicializar .bash_profile en la sesión actual de la terminal (de lo contrario, no verá ningún cambio, a menos que reinicie la terminal):
source ~/.bash_profile
Si tiene algunos módulos adicionales instalados, puede probarlos con php56 -v y obtendrá una salida de los módulos de ioncube, etc. De lo contrario, pruébelo con php56 -i | grep "yourModuleNameOrSomethingElse"
Ahora puede usar fácilmente una de las versiones de php como "php56" en su terminal con todas las configuraciones cargadas. Por lo tanto, es perfecto para probar y crear sus aplicaciones a través de todas las iteraciones de versiones, incluidas las configuraciones de php.ini correctas a través de la terminal.
Para usuarios normales de MAMP, las configuraciones deberían estar ubicadas en / Applications / MAMP / conf / I think. Feliz programacion
No recomendaría tratar de modificar la versión predeterminada de PHP que se llama en la línea de comandos. Si lo hace, puede romper otras partes de su sistema y también le puede ocasionar problemas en el futuro, en caso de que decida actualizar su sistema operativo.
Hay una alternativa que puede satisfacer sus necesidades. Puede crear un alias para su copia de php 5.3 de MAMP. En mi caso, nombré el alias phpmamp. Abra su terminal y escriba:
alias phpmamp=''/Applications/MAMP/bin/php5.3/bin/php''
Ahora, al escribir phpmamp en la línea de comando se ejecutará el intérprete php de MAMP. Verifique esto escribiendo:
phpmamp --help
Lo más probable es que desee almacenar esto y cualquier otro alias en ~/.bash_profile
Esto permitirá que los alias persistan durante el reinicio. De lo contrario, el alias solo debería durar para la sesión de terminal particular en la que se encuentre. Puede encontrar más información sobre cómo crear un archivo .bash_profile
aquí:
http://www.redfinsolutions.com/redfin-blog/creating-bashprofile-your-mac
Prefiero no alterar los archivos actuales, por lo que antepongo la carpeta MAMP PHP bin a la $PATH
env $PATH
.
Puede editar ~/.bash_profile
y agregar la siguiente línea a la parte superior
export PATH="/Applications/MAMP/bin/php/php5.6.1/bin:$PATH"
Simplemente cambie la versión de PHP a la versión actual que está utilizando.
No olvides hacer source ~/.bash_profile
después de editar el archivo.