VGTech is a blog where the developers and devops of Norways most visited website share code and tricks of the trade… Read more

Are you brilliant? We're hiring. Read more

Don’t Hardcode PHP Executable Path In Shebang


Some time ago I saw a tweet from Sean Coates about not using a hardcoded path to the PHP executable. With the volatile nature of Twitter, I decide to write a blog post repeating his advice.

When you are using PHP for CLI scripts you should avoid starting them with a common shebang like “#!/usr/bin/php”. Not every GNU/Linux distribution or installation method will place the PHP executable in the directory you expect from your own system.

/usr/bin/env can be used to execute commands in a configured environment where the path to the PHP executable (most likely) will appear in the $PATH variable. If it’s not there, it most certainly ain’t in /usr/bin/php.

A much better shebang for your PHP script would be: #!/usr/bin/env php

Developer at VG. @androa


  • Nina

    How do you add the -q option when using #!/usr/bin/env php ? It works with #!/usr/bin/php -q but with /env it says No such file or directory.
    Thank you!

Leave your comment