CentOS 8 Remi 없이 EPEL으로 PHP 7.2 to PHP 7.4 업그레이드하기

dnf module list php
CentOS Linux 8 - AppStream
Name     Stream         Profiles                       Summary
php      7.2 [d][e]     common [d], devel, minimal     PHP scripting language
php      7.3            common [d], devel, minimal     PHP scripting language
php      7.4            common [d], devel, minimal     PHP scripting language

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

순정 상태에서 PHP 7.4를 받을 수 있지만 활성화되어 있진 않은 것을 볼 수 있었다.

먼저 7.2가 깔려 있다는 가정 하에, php:7.2 스트림을 꺼 준다. 그렇지 않으면 7.4 스트림을 켜지 못한다.

dnf module reset php:7.2

Y를 잘 눌러 준 다음, 모듈을 켜고 돌린다.

dnf module enable php:7.4
dnf update php
php --version

내 경우에는 imagick.so와 zip.so Warning을 볼 수 있었다. 알아보니 imagick 사용이 권장되지 않는다는 듯하여 그냥 지워버렸다.

dnf remove php-zip
dnf install php-zip
dnf remove ImageMagick
rm /etc/php.d/20-imagick.ini
PHP 7.4.6 (cli) (built: May 12 2020 08:09:15) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.6, Copyright (c), by Zend Technologies

CentOS 8 잡다한 Service 추가하기

start 시에 사용할 명령어

# /home/kkfbot/KKFBot/start.sh

# start 시에 사용할 명령어
# As account kkfbot
screen -dmS KKFBot bash -c '~kkfbot/KKFBot/run.sh'
# 알아서 생성되고 실행된다
exit 0
# /home/kkfbot/KKFBot/stop.sh

# stop 시에 사용할 명령어
# As account kkfbot
screen -S KKFBot -X stuff $'\003'
# 알아서 소멸된다
exit 0
# /usr/lib/systemd/system/kkfbot.service

[Unit]
Description=KKFBot
After=network.target

[Service]
Type=simple
ExecStart="/bin/bash home/kkfbot/KKFBot/start.sh"
ExecStop="/bin/bash /home/kkfbot/KKFBot/stop.sh"
KillMode=control-group
TimeoutStartSec=0
User=kkfbot
Group=kkfbot