2011-10-14 16 views

Respuesta

9

Si ambos están instalados, todo lo que necesita hacer es ejecutar la secuencia de comandos utilizando el binario PHP correspondiente.

Así, por ejemplo:

// Runs using the PHP binary located at /usr/bin/php 
* * * * * root /usr/bin/php -n "/path/to/script.php" 

o

// Runs using the PHP binary located at /var/php5 
* * * * * root /var/php5 -n "/path/to/script.php" 

Todo lo que necesita saber es la ruta del sistema de archivo completo de los binarios de PHP CLI, y llamar a la relevante para ejecutar el código.

1

debe haber dos directorios PHP y uno de ellos debe ser el predeterminado. intente descubrir la ruta de php5 desde la raíz de su servidor y use la ruta completa en su trabajo de cron.

+2

'whereis php' puede ayudarlo a encontrar sus php-locations – Zombaya

+0

'which php' o' which php5.5-cli' como línea de comando 1and1 no tiene 'whereis' – Abinadi

3

Si puede ejecutar scripts PHP directamente en la cáscara como:

$ script.php 

puede especificar el binario que ejecutará la secuencia de comandos en su primera línea:

#!/usr/bin/php 
<?php 

Esa línea se llama shebang . La línea puede diferir en su sistema, necesita conocer la ruta completa del sistema de archivos del binario CLI de PHP que desea usar para esa secuencia de comandos.

Si ejecuta ese archivo en el shell, se usará el binario especificado. Lo mismo para cron.

Si ejecuta ese archivo a través de su servidor web, PHP soltará esa línea en silencio.

Ver también:Features: Using PHP from the command line

0

finalmente conseguí este trabajo. El problema fue un poco

Primero, el PHP que se usaba estaba en/etc/bin en lugar de la versión MAMP. Pude cambiar esto y usar la versión de MAMP.

En segundo lugar, para utilizar php a través de la CLI debe asegurarse de utilizar la ruta COMPLETA a php y no solo a php. Es decir. usa /MAMP/bin/php/php5.3.x/php en tu llamada a exec(). Esto ahora está funcionando para mí.

Se puede extraer de mi GIST aquí ... https: //gist.github.com/1861487

+0

No necesita usar la ruta completa para que php se ejecute en CLI (habiendo ejecutado php desde la terminal en mi Mac usando MAMP, XAMPP, y la instalación de stock de OSX, estoy su de esto.) La razón por la que lo hiciste fue (dependiendo del error que recibiste): a) No tienes el directorio bin en tu variable de entorno PATH (que me da cada vez), o b) tienes múltiples versiones de php instalado y el primero en la ruta no era el que querías. Para el primero, puede confirmar ejecutando lo siguiente antes de la llamada a php: 'PATH = $ PATH:/MAMP/bin' – Anthony

+0

Esto no responde la pregunta en absoluto. OP preguntaba por el entorno de 1 y 1, que no tiene nada que ver con MAMP. – Abinadi

1

Este es otro enfoque para forzar PHP desde la línea de comandos en 1and1.

Conectarse con ssh en su servidor y crear un nuevo archivo llamado .profile ahí que va a escribir la siguiente línea alias php='/usr/local/bin/php5' Entrar de nuevo con ssh y comprobar la versión de PHP con php -v debería ver la versión ahora es 5.

10

de acuerdo a https://community.1and1.com/using-php-composer-at-1and1/, crear .profile en su Projet raíz y añadir la línea:

alias php='/usr/bin/php5.5-cli' 

funciona para mí. Iniciar sesión SSH y hacer:

php -v 

Resultado:

PHP 5.5.32 (CLI) (construido el 15 febrero 2016 16:13:44)

+0

Esto! Buen trabajo, dicotout. Obtienes una estrella de oro por el día. – Abinadi

Cuestiones relacionadas