최근 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#🎜 🎜# 원스텝 프로세스인 pecl install swoole로 직접 설치하는 것을 권장하는데, 수동으로 컴파일할 경우 호환되지 않는 버전으로 인해 여러 가지 문제가 발생할 것으로 보입니다.
스위치 버전:
# 禁用7.0版本 sudo a2dismod php7.0 # 启用7.2版本 sudo a2enmod php7.2 # 重启nginx(或apache) sudo service nginx restart오류: php7.0 모듈이 없으면 sudo apt-get install libapache2-mod를 실행하세요. -php7.0 그리고 위의 작업을 수행합니다 이때 브라우저에서 phpinfo()를 확인하면 버전 7.2를 볼 수 있지만 명령줄 cli는 아직 7.0이므로 다음 작업을 수행해야 합니다: #🎜🎜 #
# 切换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):#🎜 🎜#업그레이드하고 php7.1도 버렸는데 다음날 돌아와서 컴퓨터를 켜보니 모든 라라벨 프로젝트에서 이런 오류가 발생한다고 인터넷에서 검색해보니 버전이더군요. 문제인데 php -v를 확인해 보니 7.2였습니다. 이때 php를 다시 시작하려고 했더니 다음과 같은 오류가 보고되었습니다. # 🎜🎜#
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!