변군이글루 블로그(Development)
[draft] 우분투에서 PHP 8.3으로 업그레이드하고 기존의 PHP 8.1을 삭제하는 방법 본문
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 |