Как изменить версию php в консоли

Thank you for reading this post, don't forget to subscribe!

Если у вас уста­нов­ле­но несколь­ко вер­сий php в систе­ме, то при вызо­ве коман­ды php в кон­со­ли, будет исполь­зо­вать­ся одна из них. Ино­гда необ­хо­ди­мо для каких-то скрип­тов или сер­ви­сов управ­лять вер­си­ей php в консоли

Име­ет­ся 2 вер­сии php — 5.6 и 7.0. Для нача­ла про­ве­рим, какая вер­сия исполь­зу­ет­ся в дан­ный момент:

Посмот­рим, где рас­по­ла­га­ет­ся сам бинар­ник php:

Ока­зы­ва­ет­ся, что /usr/bin/php явля­ет­ся сим­воль­ной ссыл­кой. Посмот­рим, куда она ведет:

Это еще одна сим­воль­ная ссыл­ка. Смот­рим, куда ведет она:

На седь­мую вер­сию php. Заме­ним ее на 5.6, кото­рая у меня уста­нов­ле­на по адре­су /usr/local/bin/php. Редак­ти­ру­ем сим­воль­ную ссылку:

Про­ве­ря­ем теку­щую вер­сию php в консоли:

Все полу­чи­лось. Теперь в кон­со­ли по-умол­ча­нию будет исполь­зо­вать­ся нуж­ная вер­сия php. Мож­но про­ве­рять скрип­ты, не ука­зы­вая пол­ный путь к нуж­ной версии.

Мож­но было посту­пить и по-дру­го­му. При вызо­ве php в кон­со­ли, имя про­ве­ря­ет­ся в пере­мен­ной $PATH. Посмот­реть ее зна­че­ния мож­но командой:

Дирек­то­рии про­ве­ря­ют­ся в том поряд­ке, как они пере­чис­ле­ны. Где будет най­де­но пер­вое сов­па­де­ние, тот файл и будет исполь­зо­вать­ся. В моем слу­чае дирек­то­рия /usr/bin, где жила сим­воль­ная ссыл­ка на php7.0 сто­ит рань­ше, чем /usr/local/bin, где рас­по­ло­же­на php5.6. Мож­но было про­сто поме­нять места­ми эти дирек­то­рии в PATH и вер­сия по-умол­ча­нию ста­нет 5.6, так как ее бинар­ник php будет най­ден раньше.

Более гиб­ко управ­лять вер­си­я­ми php в систе­ме мож­но с помо­щью про­грам­мы update-alternatives. Она может делать в том чис­ле и то, что мы сей­час про­де­ла­ли, толь­ко авто­ма­ти­че­ски, в зави­си­мо­сти от сво­их настро­ек. С ее помо­щью мож­но более гиб­ко управ­лять вер­си­я­ми, зада­вать при­о­ри­те­ты исполь­зо­ва­ния той или иной вер­сии, быст­ро их пере­клю­чать в полу­ав­то­ма­ти­че­ском режиме.