CentOS 7.x에서 PHP8.1로 업그레이드
PHP8.1은
Enums
, readonly
클래스 속성 등과 같은 몇 가지 멋진 기능과 함께 제공됩니다. Enums의 도입으로 마침내 docblock 유형 힌트를 사용하는 것보다 변수에 허용되는 값을 유형 힌트로 지정할 수 있습니다. -party "가짜 열거형"패키지.PHP8.0에서 PHP8.1로 서버를 업그레이드하는 방법에 대해 알아보겠습니다.
sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum -y install yum-utils
sudo yum-config-manager --disable 'remi-php*'
sudo yum-config-manager --enable remi-php81
sudo yum install -y php81-php php81-php-fpm php81-php-mysql php81-php-gd php81-php-curl php81-php-mbstring php81-php-xml php81-php-bcmath php81-php-sqlite3 php81-php-zip
업그레이드 중에 발생한 두 가지 문제
1. 도서관의 갈등
file /usr/lib64/libzip.so.5 from install of libzip5-1.8.0-2.el7.remi.x86_64 conflicts with file from package libzip-1.3.2-1.amzn2.0.1.x86_64
해결 방법: 기존 패키지를 제거한 다음 php81 설치를 다시 실행하십시오.$ yum remove libzip-1.3.2-1.amzn2.0.1.x86_64
2. php-fpm이 활성화되지 않고 제대로 시작됨
systemctl을 사용하여 확인
$ systemctl list-unit-files | grep fpm
php81-php-fpm.service disabled
활성화하고 시작한 다음 상태를 확인하십시오.
$ systemctl enable php81-php-fpm.service
$ systemctl start php81-php-fpm.service
$ systemctl status php81-php-fpm.service
● php81-php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php81-php-fpm.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2022-05-06 18:21:15 +08; 6min ago
Main PID: 16011 (php-fpm)
Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec"
Tasks: 6
Memory: 8.9M
CGroup: /system.slice/php81-php-fpm.service
├─16011 php-fpm: master process (/etc/opt/remi/php81/php-fpm.conf)
├─15897 php-fpm: pool www
├─15898 php-fpm: pool www
├─15899 php-fpm: pool www
├─15900 php-fpm: pool www
└─15901 php-fpm: pool www
또 다른 문제는 php-fpm이
/etc/php-fpm.d
에서 설정한 php-fpm 구성을 읽지 않는다는 것입니다. systemctl status
명령의 출력에서 구성 읽기가 /etc/opt/remi/php81/php-fpm.conf
에 있음을 알 수 있습니다.읽을 conf 디렉토리를 업데이트하려면 이 파일을 편집하십시오.
;include=/etc/opt/remi/php81/php-fpm.d/*.conf
include=/etc/php-fpm.d/*.conf
이제 php-fpm 서비스를 다시 시작하십시오.
$ systemctl restart php81-php-fpm.service
$ systemctl status php81-php-fpm.service
● php81-php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php81-php-fpm.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2022-05-06 18:30:07 +08; 32min ago
Main PID: 16296 (php-fpm)
Status: "Processes active: 0, idle: 21, Requests: 30, slow: 0, Traffic: 0req/sec"
Tasks: 22
Memory: 118.6M
CGroup: /system.slice/php81-php-fpm.service
├─16296 php-fpm: master process (/etc/opt/remi/php81/php-fpm.conf)
├─16297 php-fpm: pool app.xxx.com
├─16298 php-fpm: pool app.xxx.com
www 풀 대신 이제 풀 구성에서 설정한 웹 사이트
app.xxx.com
의 풀을 제공하고 있음을 알 수 있습니다.그게 다야!
Reference
이 문제에 관하여(CentOS 7.x에서 PHP8.1로 업그레이드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kenng/upgrading-to-amazon-linux-to-php81-1m52텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)