최근 swoole을 배우고 싶습니다. php7.0으로 설치되어 있지만 swoole와 관련된 일부 휠이 상위 버전(예: swooletw)에 의존한다는 점을 고려하여 다음과 같이 php7.2로 업그레이드했습니다. 제가 온라인에서 검색하거나 직접 작성한 메모입니다.
버전 업그레이드 작업(7.0에서 7.2로 직접 업그레이드):
sudo add-apt-repository ppa:ondrej/php sudo apt-get update sudo apt-get upgrade php # 拓展升级 sudo apt-get install php7.2-mbstring sudo apt-get install php7.2-gd sudo apt-get install php7.2-dom sudo apt-get install php7.2-mysql sudo apt-get install php7.2-curl ......
필요한 경우 swoole을 설치할 수 있습니다.
https://wiki.swoole.com/wiki/page/6.html
스위치 버전:
# 禁用7.0版本 sudo a2dismod php7.0 # 启用7.2版本 sudo a2enmod php7.2 # 重启nginx(或apache) sudo service nginx restart
# 切换cli sudo update-alternatives --set php /usr/bin/php7.2
이 방법으로 명령줄에서 php -v를 실행하여 버전 7.2도 볼 수 있습니다
두 가지 버전이 있는 경우 실제로 sudo 서비스 php7.0-fpm 중지/다시 시작을 직접 사용할 수 있습니다. 물론 이것은 php-fpm만 전환할 수 있습니다. 즉, 웹 측, 명령줄 cli 측은 여전히 전환할 수 없습니다
Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE):
ERROR: unable to bind listening socket for address '127.0.0.1:9001': Address already in use (98)
대충 포트가 점유되어 있고 PHP fastCGI 프로그램이 시작되지 않습니다.
Solution:ps aux| fpm 프로세스를 실행하고 php7.1-fpm 프로세스가 있는지 확인하고 프로세스 ID를 가져와서 다시 시작하세요. 온라인 쿼리에 대한 해결책은 killall php-pfm 명령입니다. 실행 후에는 php-pfm: No Operation Found 만 표시됩니다. 이 방법은 마지막으로 위의 쿼리 프로세스를 사용합니다. 프로세스에 따라 ID별로 프로세스를 종료하는 방법
위 내용은 우분투 다중 버전 PHP 전환의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!