명령줄 ubuntu 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과 ph 7.1을 어떻게 바꾸면 될까요?
인터랙티브 스위칭모드
sudo update-alternatives --config php
sudo update-alternatives --config phar
sudo update-alternatives --config phar.phar
수동 전환
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
$ sudo update-alternatives --set phar /usr/bin/phar7.1
$ sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.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
$ sudo update-alternatives --config php
16.04(18.04 및 20.04) 이후의 모든 ubuntu 버전에서 동작합니다.
이것은 응답으로 볼 수 있는 것입니다.
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:
적절한 버전을 선택합니다.
사용 가능한 모든 버전을 나열하고 그 중에서 선택하려면:
sudo update-alternatives --config php
또는 수동으로 실행한다.
sudo a2dismod php7.1 // disable
sudo a2enmod php5.6 // enable
에ubuntu 20.04
전환PHP 8.0
그리고.PHP 7.4
버전:
다운그레이드 PHP 8.0
로.PHP 7.4
sudo a2dismod php8.0
sudo a2enmod php7.4
sudo service apache2 restart
sudo update-alternatives --config php
sudo update-alternatives --config phar
sudo update-alternatives --config phar.phar
sudo service apache2 restart
개선하다 PHP 7.4
로.PHP 8.0
sudo a2dismod php7.4
sudo a2enmod php8.0
sudo service apache2 restart
sudo update-alternatives --config php
sudo update-alternatives --config phar
sudo update-alternatives --config phar.phar
sudo service apache2 restart
변경을 확인합니다.
- 달려.
php -v
다음과 같이 표시됩니다.
PHP 8.0.3 (cli) (빌드: 2021년 3월 5일 07:54:13) (NTS) 저작권 (c) PHP Group Zend Engine v4.0.3, Copyright (c) Zend Technologies by Zend OPCache v8.0.3, Copyright (c)
또는
PHP 7.4.16 (cli) (빌드: 2021년 3월 5일 07:54:38) (NTS) 저작권 (c) PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPCache v7.4.16, Copyright (c)
- 실행 가능한 로컬 환경에 PHP 파일을 추가합니다.
/var/www/html/
추가에 의한 경로phpinfo();
브라우저에서 PHP 정보를 가져옵니다(페이지 상단에 PHP 버전이 있습니다).
이거 드셔보세요
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
저는 사실 이 제품을 사용하는 것을 추천하지 않습니다.a2enmod
php 5 또는 7의 경우.나는 사용할 것이다.update-alternatives
.할수있습니다sudo update-alternatives --config php
사용할 PHP의 시스템 전체 버전을 설정합니다.그러면 명령줄 및 Apache 버전이 동일하게 작동합니다.에 대한 자세한 내용을 참조해 주세요.update-alternatives
맨 페이지에 있습니다.
버전으로부터 전환하는 스크립트를 작성할 수 있습니다.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
To execute the script just type 스크립트를 실행하려면 다음과 같이 입력합니다../switch_php [VERSION_NUMBER]
매개 변수는 7 또는 5.6 μ μ μ μ μ μ μm이다.
이것으로 PHP7에서 PHP 5.6으로 쉽게 전환할 수 있습니다!
시스템에 PHP 5.6과 같은 오래된 버전의 PHP가 있고, PHP 7.2도 설치했으므로 여러 PHP가 시스템에 있을 수 있습니다.오래된 PHP 5.6이 최신 버전일 때 개발된 어플리케이션도 있고, 아직 가동 중이고, 그 어플리케이션에서 작업하고 있는 어플리케이션도 있습니다.동시에 Laravel에서 작업을 하고 있을지도 모르지만, Laravel을 시작하려면 PHP 7+가 필요합니다.무슨 말인지 알겠어요?
이 경우 요구에 맞게 PHP 버전을 전환할 수 있습니다.
PHP 5.6 => PHP 7.2에서 전환
Apache:-
sudo a2dismod php5.6
sudo a2enmod php7.2
sudo service apache2 restart
명령줄:-
sudo update-alternatives --set php /usr/bin/php7.2
sudo update-alternatives --set phar /usr/bin/phar7.2
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.2
sudo update-alternatives --set phpize /usr/bin/phpize7.2
sudo update-alternatives --set php-config /usr/bin/php-config7.2
또한 PHP 7.2에서 전환 => PHP 5.6
Apache:-
sudo a2dismod php7.2
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
sudo update-alternatives --set phpize /usr/bin/phpize5.6
sudo update-alternatives --set php-config /usr/bin/php-config5.6
다음 명령줄을 사용하여 두 PHP 버전 간에 전환할 수 있습니다.
예.
꾸 다 고 i to want switch?PHP Version
부에서7.1
to 로.7.2
we can use below command아래 명령어를 사용할 수 있습니다.
sudo a2dismod php7.1 && sudo update-alternatives --set php /usr/bin/php7.2 && sudo a2enmod php7.2 && sudo service apache2 restart
a2dismod
is use to disable the current php version and 현재 php 버전을 비활성화하기 위해 사용합니다.a2enmod
는, 버전 「」을 하게 하기 합니다.
이건 내게 효과가 있었어:-
sudo update-alternatives --set php /usr/bin/php7.4
PHP 버전을 필요한 버전으로 변경해 주세요.ph7.4로 변경했습니다.
단말기에 지정된 명령을 입력합니다.
선택한 PHP 버전을 비활성화하려면...
-
- sudo a2dismod php5
- sudo 서비스 apache2 재시작
다른 PHP 버전을 활성화하려면...
- sudo a2enmod php5.6
- sudo 서비스 apache2 재시작
PHP 버전을 업그레이드합니다.버전을 다운그레이드 하려면 PHP_INFO()로 확인할 수 있습니다.
다음을 사용하여 PHP 5.6에서 PHP 7.2로 전환:
sudo a2dismod php5.6 && sudo a2enmod php7.2 && sudo service apache2 restart
다음을 사용하여 PHP 7.2에서 PHP 5.6으로 전환:
sudo a2dismod php7.2 && sudo a2enmod php5.6 && sudo service apache2 restart
Ubuntu 16.04 LTS에서 사용하도록 특별히 설계된 이러한 오픈 소스 PHP 스위치 스크립트를 사용할 수 있습니다.
https://github.com/rapidwebltd/php-switch-scripts
게 요.setup.sh
스크립트에서는, PHP 5.6, 7.0, 7.1, 및 7.2 에 필요한 의존 관계를 모두 인스톨 합니다.이 작업이 완료되면 다음 스위치 스크립트 중 하나를 실행하여 PHP CLI 및 Apache 2 모듈 버전을 변경할 수 있습니다.
./switch-to-php-5.6.sh
./switch-to-php-7.0.sh
./switch-to-php-7.1.sh
./switch-to-php-7.2.sh
Ubuntu에서 다른 PHP 버전을 전환하기 위한 bash 스크립트를 만들었습니다.
도움이 됐으면 좋겠는데
스크립트는 다음과 같습니다(/usr/local/bin/sphp.sh에 저장합니다.sudo chmod +x /usr/local/bin/sphp.sh 명령을 사용하여 +x 플래그를 추가하는 것을 잊지 마십시오).
#!/bin/bash
# Usage
if [ $# -ne 1 ]; then
echo "Usage: sphp [phpversion]"
echo "Example: sphp 7.2"
exit 1
fi
currentversion="`php -r \"error_reporting(0); echo str_replace('.', '', substr(phpversion(), 0, 3));\"`"
newversion="$1"
majorOld=${currentversion:0:1}
minorOld=${currentversion:1:1}
majorNew=${newversion:0:1}
minorNew=${newversion:2:1}
if [ $? -eq 0 ]; then
if [ "${newversion}" == "${currentversion}" ]; then
echo "PHP version [${newversion}] is already being used"
exit 1
fi
echo "PHP version [$newversion] found"
echo "Switching from [php${currentversion}] to [php${newversion}] ... "
printf "a2dismod php$majorOld.$minorOld ... "
sudo a2dismod "php${majorOld}.${minorOld}"
printf "[OK] and "
printf "a2enmod php${newversion} ... "
sudo a2enmod "php${majorNew}.${minorNew}"
printf "[OK]\n"
printf "update-alternatives ... "
sudo update-alternatives --set php "/usr/bin/php${majorNew}.${minorNew}"
printf "[OK]\n"
sudo service apache2 restart
printf "[OK] apache2 restarted\n"
else
echo "PHP version $majorNew.$minorNew was not found."
echo "Try \`sudo apt install php@${newversion}\` first."
exit 1
fi
echo "DONE!"
PHP 5.6 => PHP 7.1부터
$ sudo a2dismod php5.6
$ sudo a2enmod php7.1
이전 버전의 Linux용
$ sudo service apache2 restart
보다 최신 버전의 경우
$ systemctl restart apache2
아래 스크립트를 사용하여 PHP 버전 간에 쉽게 전환할 수 있습니다. phpize 구성도 포함되어 있습니다.
https://github.com/anilkumararumulla/switch-php-version
스크립트 파일을 다운로드하여 실행합니다.
sh switch.sh
Ubuntu 18.04 에 larabel 을 인스톨 할 때는, 디폴트 PHP 7.3.0 으로 해 주세요.RC3 설치가 선택되었지만 larabel 및 symfony가 제대로 설치되지 않고 missin php-xml 및 php-zip에 대해 불평합니다.위의 절차에 따라 php 7.1로 전환해야 합니다.
sudo update-alternatives --set php /usr/bin/php7.1
이제 새로운 블로그를 실행하면 올바르게 진행됩니다.
다음의 순서에 따라 주세요.
i.e : your current version is : current_version = 7.3 , and you want to change it to : new_version = 7.2
1) sudo a2dismod php(current_version)
2) sudo a2enmod php(new_version)
3) sudo update-alternatives --config php (here you need to select php version number)
4) restart apache through :
sudo /etc/init.d/apache2 restart OR
sudo service apache2 restart
언급URL : https://stackoverflow.com/questions/42619312/switch-php-versions-on-commandline-ubuntu-16-04
'programing' 카테고리의 다른 글
웅변적인 ORM 레벨 5 ID 배열 가져오기 (0) | 2023.01.25 |
---|---|
문자열이 비어 있는지 확인하는 방법 (0) | 2023.01.25 |
Larabel - 요청에 따라 세션 저장소가 설정되지 않음 (0) | 2023.01.25 |
MySQL 오류 1264: 열의 값을 벗어났습니다. (0) | 2023.01.25 |
CommonJs 모듈시스템에서의 "module.exports"와 "exports"의 차이점 (0) | 2023.01.25 |