2011-03-31 35 views
29

Tengo un script php que quiero ejecutar usando un script bash, por lo que puedo usar Cron para ejecutar el script php cada minuto más o menos.Script Bash para ejecutar el script php

Por lo que sé, necesito crear el script bash para manejar el script php, que me permitirá usar la herramienta Cron/timer.

Hasta el momento me dijeron que necesito para poner:

#!/pathtoscript/testphp.php 

al comienzo de mi script php. No estoy seguro de qué hacer desde aquí ...

¿Algún consejo? Gracias.

Respuesta

58

Si ha PHP instalado como una herramienta de línea de comandos (trate emitiendo php a la terminal y ver si funciona), su tinglado (#!) línea tiene que tener este aspecto:

#!/usr/bin/php 

Pon eso en la parte superior de la secuencia de comandos, hágalo ejecutable (chmod +x myscript.php), y cree un trabajo de cron para ejecutar esa secuencia de comandos (de la misma manera que ejecutaría una secuencia de comandos bash).

También puede usar php myscript.php.

+20

Si va a utilizar un tinglado para el uso de la línea de comandos, que realmente debería usar "** #!/Usr/bin/env php **", ya que permite que la secuencia de comandos para ser más portátil, ya que PHP no siempre se puede instalar en "/ usr/bin/php". ¿Tener sentido? – Rican7

0

Si no hace nada en su script bash que ejecutar php, simplemente podría ejecutar el script php desde cron con un comando como/usr/bin/php /path/to/your/file.php .

7

sólo tiene que establecer:

/usr/bin/php path_to_your_php_file 

en su crontab.

+0

Tuve que agregar un php antes de la ruta, pero el concepto funcionó. –

4

La escritura del golpe debe ser algo como esto:

#!/bin/bash 
/usr/bin/php /path/to/php/file.php 

Es necesario el ejecutable PHP (normalmente se encuentra en/usr/bin) y la ruta del script php que se corrió. ¡Ahora solo tienes que poner este script bash en crontab y listo!

5

Estoy bastante seguro de algo como esto es lo que busca:

#!/bin/sh 

php /pathToScript/script.php 

Guardar que con su nombre de script que desee (como runPHP.sh) y darle permisos de ejecución, a continuación, puede utilizar como quieras

Editar: También podría no utilizar un script bash en absoluto y simplemente agregar el comando "php ..." al crontab, si no me equivoco.

¡Buena suerte!

+0

En la mayoría de los entornos, no puede simplemente llamar a 'php youscript.php', sino que debe encontrar la ruta correcta. P.ej. usando la ruta completa '/ usr/bin/php myscript.php' o descifrándolo dinámicamente llamando' which php' y escribiendo el resultado en una variable que use más adelante. – Hafenkranich

10

Un usuario anterior dijo ..

Si ha instalado PHP como una línea de comando herramienta ... su tinglado línea tiene que tener este aspecto (#!): #!/usr/bin/php

Mientras esto podría ser cierto ... solo porque puede escribir php NO significa necesariamente que es donde va a ser php .../usr/bin/php es una ubicación común ... pero como con cualquier shebang ... debe adaptarse a TU env.

una forma rápida de averiguar cuál es su ejecutable en particular se encuentra en su $PATH, tratan .. ➜ which -a phpENTER, que para mí se parece ..

php is /usr/local/php5/bin/php
php is /usr/bin/php
php is /usr/local/bin/php
php is /Library/WebServer/CGI-Executables/php

El primero es el predeterminado que obtendría si acabo de escribir php a t un símbolo del sistema ... pero puedo usar cualquiera de ellos en un shebang, o directamente ... También puede combinar el nombre del ejecutable con env, como se ve a menudo, pero realmente no sé mucho sobre/trust que. XOXO.

1

una manera rápida de averiguar DONDE SU particular ejecutable se encuentra en su $ PATH, intente.

manera aún más rápida para averiguar dónde php es ...

whereis php 

estoy corriendo debian y por encima de comandos mostrándome

php: /usr/bin/php /usr/share/php /usr/share/man/man1/php.1.gz 

Espero que ayude.

10
#!/usr/bin/env bash 
PHP=`which php` 
$PHP /path/to/php/file.php 
Cuestiones relacionadas