728x90
우분투에서 PHP 8.3으로 업그레이드하고 기존의 PHP 8.1을 삭제하는 방법
1. PHP 8.3 설치
PHP 8.3 패키지와 필요한 모듈들을 설치합니다.
필수 패키지 설치
sudo apt-get install -y software-properties-common apt-transport-https
Ondrej PPA 추가
sudo add-apt-repository -y ppa:ondrej/php
sudo apt-get update
PHP 8.3 및 필수 모듈 설치
sudo apt-get install -y php8.3 php8.3-fpm php8.3-cli php8.3-common \
php8.3-mysql php8.3-zip php8.3-gd php8.3-mbstring php8.3-curl php8.3-xml \
php8.3-bcmath php8.3-xmlrpc php8.3-imagick php8.3-dev php8.3-redis \
php8.3-intl php8.3-mongodb
PHP 8.3를 기본 PHP로 설정
- update-alternatives 명령어를 사용해 PHP 8.3을 기본 PHP 버전으로 설정합니다.
sudo update-alternatives --set php /usr/bin/php8.3
2. PHP 모듈 추가 설치 및 설정
rdkafka 확장 모듈 재설치
sudo pecl uninstall rdkafka
sudo pecl channel-update pecl.php.net
sudo pecl install rdkafka
rdkafka 확장 모듈 설정 추가
echo "extension=rdkafka.so" | sudo tee -a /etc/php/8.3/cli/php.ini /etc/php/8.3/fpm/php.ini
screwim 모듈 이동(복사)
sudo mv screwim.so /usr/lib/php/20230831/screwim.so
screwim 모듈 설정 추가
sudo tee /etc/php/8.3/mods-available/screwim.ini <<EOF
screwim.enable = 1
extension=screwim.so
EOF
screwim 모듈 활성화
sudo ln -s /etc/php/8.3/mods-available/screwim.ini /etc/php/8.3/fpm/conf.d/91-screwim.ini
sudo ln -s /etc/php/8.3/mods-available/screwim.ini /etc/php/8.3/cli/conf.d/91-screwim.ini
opcache 모듈 설정 편집
sudo sed -i 's/opcache.jit=off/opcache.jit=tracing/' /etc/php/8.3/mods-available/opcache.ini
echo "opcache.jit_buffer_size=100M" | sudo tee -a /etc/php/8.3/mods-available/opcache.ini
728x90
3. PHP-FPM 설정 파일 편집
PHP-FPM 8.3 설정 파일 백업
sudo cp /etc/php/8.3/fpm/php-fpm.conf /etc/php/8.3/fpm/php-fpm.conf.bk
sudo cp /etc/php/8.3/fpm/pool.d/www.conf /etc/php/8.3/fpm/pool.d/www.conf.bk
PHP-FPM 8.1 설정 파일 백업
sudo cp /etc/php/8.1/fpm/php-fpm.conf /etc/php/8.3/fpm/php-fpm8.1.conf
sudo cp /etc/php/8.1/fpm/pool.d/www.conf /etc/php/8.3/fpm/pool.d/www8.1.conf
php-fpm.conf 설정 파일 편집
sudo tee /etc/php/8.3/fpm/php-fpm.conf <<EOF
include=/etc/php/8.3/fpm/pool.d/www.conf
[global]
pid = /run/php/php8.3-fpm.pid
error_log = /var/log/php-fpm/error.log
daemonize = yes
EOF
www.conf 설정 파일 편집
sudo tee /etc/php/8.3/fpm/pool.d/www.conf <<'EOF'
[www]
user = www-data
group = www-data
listen = /var/run/php/php8.3-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0666
;CPU 8개, 메모리 16GB, PHP 프로세스당 메모리 사용량이 50MB인 경우
pm = dynamic
pm.max_children = 250
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 30
request_terminate_timeout = 30
request_slowlog_timeout = 10
slowlog = /var/log/php-fpm/www-slow.log
access.log = /var/log/php-fpm/www-access.log
access.format = "[%t] %m %{REQUEST_SCHEME}e://%{HTTP_HOST}e%{REQUEST_URI}e %f pid:%p TIME:%ds MEM:%{mega}Mmb CPU:%C%% status:%s {%{REMOTE_ADDR}e|%{HTTP_USER_AGENT}e}"
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session
php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache
EOF
4. PHP 8.1 삭제
PHP 8.1 및 관련 모듈을 완전히 제거합니다.
PHP 8.1 패키지 삭제
sudo apt purge -y $(dpkg -l | grep php8.1 | awk '{print $2}' | tr '\n' ' ')
필요 없는 의존성 제거
sudo apt autoremove -y
설정 파일 및 남아있는 파일 제거
sudo rm -rf /etc/php/8.1
sudo rm -rf /usr/lib/php/20210902
5. Nginx 및 PHP-FPM 설정 수정
PHP-FPM 소켓을 8.1에서 8.3으로 변경합니다.
sudo sed -i 's|fastcgi_pass unix:/run/php/php8.1-fpm.sock;|fastcgi_pass unix:/run/php/php8.3-fpm.sock;|' /etc/nginx/conf.d/default
6. Nginx 및 PHP-FPM 재시작
sudo systemctl restart nginx php8.3-fpm
7. PHP 버전 확인
PHP가 8.3으로 잘 설정되었는지 확인합니다.
php-fpm8.3 -v
php -v
8. PHP 정보 확인
php --ini
9. PHP 모듈 확인
php-fpm8.3 -v
php -m
PHP 8.3으로 업그레이드하고 기존의 PHP 8.1을 안전하게 제거할 수 있습니다.
sudo apt purge -y $(dpkg -l | grep php8.1 | awk '{print $2}' | tr '\n' ' ')
728x90
'리눅스' 카테고리의 다른 글
[draft] 리눅스에서 LISTEN 포트를 확인하는 방법 (0) | 2024.10.15 |
---|---|
[draft] hplog 명령어 (0) | 2024.10.15 |
[draft] Shell 스크립트에서 CRLF와 LF 문제를 해결하는 방법 (0) | 2024.10.11 |
[draft] Python으로 Kafka Consumer 생성 (0) | 2024.10.11 |
[draft] 우분투에서 apt를 사용하여 최신 Python 버전 설치 및 기본 설정하는 방법 (0) | 2024.10.11 |