Как запретить повторный запуск скрипта?
Я кстати не понял зачем нужен первый иф, если код в обоих ветках совпадает :)
Вообще flock не самое правильное решение, советую ознакомиться с вариантами 
www.slideshare.net/fuenteovehuna/web-20-c?related=1
слайды 34-35PS Вообще на 5.6 никаких изменений в этой функции вроде бы нет, php.net/manual/ru/function.flock.php попробуйте посмотреть на параметр wouldblock
Зачем вам вообще открывать этот файл?
Используйте locker как флаг, что если файл вообще есть - значит экземпляр скрипта запущен.
Логика такая:
1. Проверить есть ли файл.
1.1  Прочитать его (получить PID), проверить есть ли процесс с этим PID. 
1.2 Если есть - значит один экземпляр скрипта запущен, и мы завершаемся.
2. Если нет - создаем файл,
2.1  пишем в него PID Текущего процесса
1.2 выполняем скрипт.
3. Удаляем файл.
А эти flock - вообще лишняя хрень.