You have to use a lockfile or check if it is already running before starting the new one.
See How to prevent PHP script running more than once?
I have taken the solution there and modified it somewhat:
#!/bin/bash
#change to the name of php-file
SCRIPT='my-php-script.php'
#get running processes containing php-file
PIDS=$(ps aux | grep "$SCRIPT" | grep -v grep)
if [ -z "$PIDS" ]; then
echo "Starting $SCRIPT ..."
#change path to script to its real path
/usr/bin/env php "/path/to/script/$SCRIPT" >> "/var/log/$SCRIPT.log" &
else
echo "$SCRIPT already running."
fi
You should try to run this on the command line first to see that it works, then add it to cron. Depending on the system it might have some paths that are different and not find parts necessary to run correctly.