팔콘 PHP 프레임워크 v5 설치 방법

팔콘 PHP에 관심이 있으나 초기 설치에 어려움을 겪는 개발자를 위하여 이 글을 작성하게 되었습니다. 특정 환경에 국한된 부분이 있으나 다른 리눅스 배포본에서도 거의 유사할 것이기에 조금이라도 도움이 되면 좋겠습니다.
  • 대상 운영체제 ⁃ Rocky Linux release 9.3 (Blue Onyx)
  • 설치할 PHP 버전 ⁃ 8.0
  • 설치할 팔콘 버전 ⁃ 5.6.1

기존 패키지 제거 (필요 시)

명령어 비고
sudo dnf -y remove nginx
Nginx ⁃ 기존 설치된 패키지 제거
sudo rm -rf /etc/nginx
Nginx ⁃ 설치 폴더 제거
sudo dnf -y remove httpd*
Apache ⁃ 기존 설치된 패키지 제거
sudo rm -rf /etc/httpd*
Apache ⁃ 설치 폴더 제거
sudo dnf -y remove php*
PHP ⁃ 관련 패키지 제거

EPEL 설치

명령어 비고
sudo dnf install -y epel-release
sudo /usr/bin/crb enable

기타 툴 설치

명령어 비고
sudo dnf -y install wget
sudo dnf -y install gcc make
sudo dnf -y install git

Nginx 설치 (필요 시)

명령어 비고
sudo dnf -y install nginx

PHP 8 설치

명령어 비고
sudo dnf module list php
설치 가능한 PHP 버전 표시
sudo dnf module -y switch-to php:8.0
PHP 8이 enabled([e])로 선택되어 있지 않은 경우
sudo dnf -y install php-bcmath
sudo dnf -y install php-devel
sudo dnf -y install php-fpm
sudo dnf -y install php-gd
sudo dnf -y install php-gmp
sudo dnf -y install php-mbstring
sudo dnf -y install php-process
sudo dnf -y install php-json
sudo dnf -y install php-xml
sudo dnf -y install php-zip
sudo dnf -y install php-pear
sudo dnf -y install php-pecl-apcu
sudo dnf -y install php-opcache
sudo dnf -y install php-pdo
sudo dnf -y install php-mysqlnd
MySql(또는 MariaDB)을 사용하는 경우
sudo dnf -y install php-pgsql
PostgreSQL을 사용하는 경우

PHP 8 JIT 활성화 (PHP 7 대비 20~30% 성능 향상)

명령어 비고
sudo vi /etc/php.ini
PHP 설정 파일 열기
; Just-In-Time (JIT)
opcache.enable = 1
opcache.enable_cli = 1
opcache.jit = tracing
opcache.jit_buffer_size = 100M
opcache.jit = 1255
opcache.jit_debug = 0
opcache.revalidate_freq = 0
opcache.validate_timestamps = 1
opcache.max_accelerated_files = 10000
opcache.memory_consumption = 192
opcache.max_wasted_percentage = 10
opcache.fast_shutdown = 1
opcache.interned_strings_buffer = 16
php.ini 파일 끝에 다음 내용 추가

PECL 설치

명령어 비고
sudo dnf -y install pcre-devel
sudo pecl channel-update pecl.php.net

PHP xdebug 설치 (PHP 코드 디버깅을 원하는 경우)

PHP JIT과 xdebug를 동시에 사용할 수는 없습니다. xdebug가 필요한 경우 php.ini 파일에서 opache.enable과 opache.enable_cli를 모두 0으로 설정하고, php-fpm 서비스를 재시작하여 PHP JIT을 꺼놓으시기 바랍니다.
명령어 비고
sudo printf "yes\n" | sudo pecl install xdebug
sudo echo "zend_extension=xdebug.so" | sudo tee /etc/php.d/40-xdebug.ini

PHP imagick 설치

명령어 비고
sudo dnf -y install ImageMagick-devel
sudo printf "yes\n" | sudo pecl install imagick
sudo echo "extension=imagick.so" | sudo tee /etc/php.d/40-imagick.ini

PHP mcrypt 설치

명령어 비고
sudo dnf -y install libmcrypt-devel
sudo printf "yes\n" | sudo pecl install mcrypt
sudo echo "extension=mcrypt.so" | sudo tee /etc/php.d/40-mcrypt.ini

PHP event 설치

명령어 비고
sudo dnf -y install libevent-devel
sudo dnf -y install openssl-devel
sudo printf "yes\n" | sudo pecl install event
sudo echo "extension=event.so" | sudo tee /etc/php.d/40-event.ini

Phalcon 설치

명령어 비고
cd ~
sudo pecl install zephir_parser
sudo echo "extension=zephir_parser.so" | sudo tee /etc/php.d/40-zephir_parser.ini
wget https://github.com/zephir-lang/zephir/releases/download/0.17.0/zephir.phar
sudo mv zephir.phar /usr/bin/zephir
sudo chmod a+x /usr/bin/zephir
git clone https://github.com/phalcon/cphalcon
cd cphalcon
git checkout tags/v5.6.1
sudo zephir fullclean
sudo zephir compile
cd ext
sudo phpize
sudo ./configure
sudo make
sudo make install
cd ../..
sudo rm -rf cphalcon
sudo echo "extension=phalcon.so" | sudo tee /etc/php.d/50-phalcon.ini
php --ri phalcon
Phalcon이 잘 설치되었는지 확인

Phalcon DevTools 설치

명령어 비고
cd ~
git clone https://github.com/phalcon/phalcon-devtools.git
cd phalcon-devtools
git checkout 2e16ea6
curl -s http://getcomposer.org/installer | php
php composer.phar install
sudo rm /usr/local/bin/phalcon
sudo ln -s ~/phalcon-devtools/phalcon /usr/local/bin/phalcon
cd ..
phalcon -v
Phalcon DevTools가 잘 설치되었는지 확인

서비스 등록

명령어 비고
sudo systemctl enable nginx
Nginx ⁃ 서비스 자동 실행 설정
sudo systemctl start nginx
Nginx ⁃ 서비스 시작
sudo systemctl enable php-fpm
PHP FPM ⁃ 서비스 자동 실행 설정
sudo systemctl start php-fpm
PHP FPM ⁃ 서비스 시작
추가적인 정보는 공식 문서의 내용을 참고하시기 바랍니다.