Bash script to run php script
Solution 1:
If you have PHP installed as a command line tool (try issuing php
to the terminal and see if it works), your shebang (#!
) line needs to look like this:
#!/usr/bin/php
Put that at the top of your script, make it executable (chmod +x myscript.php
), and make a Cron job to execute that script (same way you'd execute a bash script).
You can also use php myscript.php
.
Solution 2:
Sometimes PHP is placed in non standard location so it's probably better first locate it and then try to execute.
#!/usr/bin/env bash
PHP=`which php`
$PHP /path/to/php/file.php
Solution 3:
A previous poster said..
If you have PHP installed as a command line tool… your shebang (#!) line needs to look like this:
#!/usr/bin/php
While this could be true… just because you can type in php
does NOT necessarily mean that's where php is going to be... /usr/bin/php
is A common location… but as with any shebang… it needs to be tailored to YOUR env
.
a quick way to find out WHERE YOUR particular executable is located on your $PATH
, try..
➜which -a php
ENTER, which for me looks like..
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
The first one is the default i'd get if I just typed in php at a command prompt… but I can use any of them in a shebang, or directly… You can also combine the executable name with env
, as is often seen, but I don't really know much about / trust that. XOXO.
Solution 4:
You just need to set :
/usr/bin/php path_to_your_php_file
in your crontab.
Solution 5:
I'm pretty sure something like this is what you are looking for:
#!/bin/sh
php /pathToScript/script.php
Save that with your desired script name (such as runPHP.sh) and give it execution rights, then you can use it however you want.
Edit: You might as well not use a bash script at all and just add the "php ..." command to the crontab, if I'm not mistaken.
Good luck!