8

I've some PHP scripts which are starting with #!/usr/bin/env php. The default interpreter is PHP 4.4, but the scripts need PHP 5.3, so I created an alias in ~/.bashrc:

alias php="/usr/local/bin/php5-53LATEST-CLI"

Thus calling php -v shows me 5.3 but #!/usr/bin/env php uses still 4.4. I wont change the scripts. So how can I get PHP 5.3 with #!/usr/bin/env php?

witrin
  • 183
  • 1
  • 7

1 Answers1

13

/usr/bin/env php looks for an executable named php in the current $PATH; it pays no attention to aliases, shell functions, etc. If you want it to execute php v5.3, you have to put that version in a directory under the name php, and put that directory in your PATH somewhere before the directory that contains version 4.4. Maybe something like this:

mkdir /usr/local/bin/php-overrides
ln -s /usr/local/bin/php5-53LATEST-CLI /usr/local/bin/php-overrides/php

...then add

PATH="/usr/local/bin/php-overrides:$PATH"

to your ~/.bash_profile (or other appropriate startup script).

kasperd
  • 29,894
  • 16
  • 72
  • 122
Gordon Davisson
  • 11,036
  • 3
  • 27
  • 33