[php] 명령 줄 우분투 16.04에서 PHP 버전 전환

Ubuntu 16.04에 PHP 5.6 및 PHP 7.1을 설치했습니다.

Apache를 내 웹 서버로 사용하면 할 수 있습니다.

a2enmod php5.6 #to enable php5
a2enmod php7.1 #to enable php7

Apache 모듈에서 php7.1을 비활성화하고 php 5.6을 활성화하면 Apache가 변경 사항을 인식하고 예상대로 php 5.6 인터프리터를 사용합니다.

하지만 명령 줄에서 내부 PHP 웹 서버를 실행할 때 :

php -S localhost:8888

php는 php 7을 사용하여 요청을 처리합니다. 그러면 명령 줄에서 php 5.6과 php 7.1 사이를 어떻게 전환합니까?



답변

대화 형 전환 모드

sudo update-alternatives --config php

수동 전환

PHP 5.6부터 => PHP 7.1

기본 PHP 5.6이 시스템에 설정되어 있으며 PHP 7.1로 전환해야합니다.

Apache :

$ sudo a2dismod php5.6
$ sudo a2enmod php7.1
$ sudo service apache2 restart

명령 줄 :

$ sudo update-alternatives --set php /usr/bin/php7.1

PHP 7.1부터 => PHP 5.6

기본 PHP 7.1이 시스템에 설정되어 있으며 PHP 5.6으로 전환해야합니다.

Apache :

$ sudo a2dismod php7.1
$ sudo a2enmod php5.6
$ sudo service apache2 restart

명령 줄 :

$ sudo update-alternatives --set php /usr/bin/php5.6

출처


답변

명령 줄에 이것을 입력하면 16.04, 18.04 및 20.04 사이의 모든 우분투에서 작동합니다.

$ sudo update-alternatives --config php

그리고 이것은 당신이 얻을 것입니다

There are 4 choices for the alternative php (providing /usr/bin/php).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/php7.2   72        auto mode
  1            /usr/bin/php5.6   56        manual mode
  2            /usr/bin/php7.0   70        manual mode
  3            /usr/bin/php7.1   71        manual mode
  4            /usr/bin/php7.2   72        manual mode
Press <enter> to keep the current choice[*], or type selection number:

적절한 버전 선택


답변

이거 먹어 봐야 할 것 같아

php5.6에서 php7.1로

sudo a2dismod php5.6
sudo a2enmod php7.1
sudo service apache2 restart

sudo update-alternatives --set php /usr/bin/php7.1
sudo update-alternatives --set phar /usr/bin/phar7.1
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.1

php7.1에서 php5.6으로

sudo a2dismod php7.1
sudo a2enmod php5.6
sudo service apache2 restart

sudo update-alternatives --set php /usr/bin/php5.6
sudo update-alternatives --set phar /usr/bin/phar5.6
sudo update-alternatives --set phar.phar /usr/bin/phar.phar5.6


답변

나는 실제로 a2enmodphp 5 또는 7에 사용 하는 것을 권장하지 않습니다 update-alternatives. sudo update-alternatives --config php사용하려는 PHP의 시스템 전체 버전을 설정할 수 있습니다 . 이렇게하면 명령 줄과 아파치 버전이 동일하게 작동합니다. 자세한 내용 update-alternativesman 페이지 에서 읽을 수 있습니다 .


답변

사용 가능한 모든 버전을 나열하고 선택하려면 다음을 수행하십시오.

sudo update-alternatives --config php

또는 수동으로 수행

sudo a2dismod php7.1 // disable
sudo a2enmod php5.6  // enable


답변

버전에서 전환 할 스크립트를 생성 한 sudo nano switch_php
다음 다음을 입력하십시오.

#!/bin/sh
#!/bin/bash
echo "Switching to PHP$1..."
case $1 in
    "7")
        sudo a2dismod php5.6
        sudo a2enmod php7.0
        sudo service apache2 restart
        sudo ln -sfn /usr/bin/php7.0 /etc/alternatives/php;;
    "5.6")
        sudo a2dismod php7.0
        sudo a2enmod php5.6
        sudo service apache2 restart
        sudo ln -sfn /usr/bin/php5.6 /etc/alternatives/php;;
esac
echo "Current version: $( php -v | head -n 1 | cut -c-7 )"

종료하고 저장하여 실행 가능하게 만듭니다. sudo chmod +x switch_php

스크립트를 실행하려면 다음을 입력하십시오. ./switch_php [VERSION_NUMBER] 매개 변수가 7 또는 5.6 인 곳에 .

이제 PHP7에서 PHP 5.6으로 쉽게 전환 할 수 있습니다!


답변

아래 명령 줄을 사용하여 두 PHP 버전간에 전환 할 수 있습니다.

나는 전환 할 PHP Version에서 7.17.2우리가 명령 아래에 사용할 수 있습니다

sudo a2dismod php7.1 &&  sudo update-alternatives --set php /usr/bin/php7.2 && sudo a2enmod php7.2 && sudo service apache2 restart

a2dismod현재 PHP 버전을 비활성화하는 a2enmod데 사용되며 버전을 활성화하는 데 사용됩니다.