본문 바로가기

리눅스

[리눅스] PHP PCNTL 모듈을 다시 컴파일하지 않고 설치하는 방법

반응형

PHP PCNTL 모듈을 다시 컴파일하지 않고 설치하는 방법

PCNTL 확장은 PHP 모듈로서 프로세스 제어 기능을 제공합니다. 이 기능은 기본적으로 활성화되어 있지 않으며, 수동으로 설치해야 합니다. PHP PCNTL 모듈을 다시 컴파일하지 않고 설치하려면 다음 단계를 따르세요.

1. PCNTL 모듈이 이미 설치되었는지 확인

PCNTL 모듈이 이미 설치되어 있는지 확인하려면 터미널에서 다음 명령을 실행하세요.

php -m | grep pcntl

 

PCNTL 모듈이 설치되어 있다면, 설치된 모듈 목록에 "pcntl"이 나타납니다.

2. PCNTL 모듈 설치

PCNTL 모듈이 설치되어 있지 않으면 다음 단계를 따라 설치하세요.

  • 리눅스
    리눅스 시스템에서는 배포판의 패키지 관리자를 사용하여 PCNTL 모듈을 설치할 수 있습니다. 예를 들어 Ubuntu에서는 다음 명령을 실행합니다.
sudo apt-get install php-pcntl
  • macOS
    macOS에서는 Homebrew를 사용하여 PCNTL 모듈을 설치할 수 있습니다. 먼저 Homebrew를 설치하고, 다음 명령을 실행합니다.
brew install php-pcntl
  • Windows
    Windows에서는 PCNTL DLL 파일을 다운로드하고 PHP 확장 프로그램 디렉토리에 추가해야 합니다. DLL 파일은 다음 웹사이트에서 다운로드할 수 있습니다.
    https://windows.php.net/downloads/pecl/releases/pcntl/
    PHP 버전과 일치하는 버전을 다운로드해야 합니다. DLL 파일을 다운로드한 후, php.ini 파일에 다음 줄을 추가합니다.
extension=php_pcntl.dll

다운로드한 DLL 파일의 이름으로 "php_pcntl.dll"을 대체해야 합니다.

3. 웹 서버 재시작

PCNTL 모듈을 설치한 후에는 웹 서버를 다시 시작해야 합니다. 웹 서버를 다시 시작한 후에는 다음 명령을 실행하여 PCNTL 모듈이 제대로 작동하는지 테스트할 수 있습니다.

php -r 'pcntl_signal(SIGINT, function() { echo "Signal received\n"; }); while(true);'

이 명령은 SIGINT 신호를 기다리는 PHP 스크립트를 시작하고, 신호를 받으면 "Signal received"를 출력합니다. SIGINT 신호를 전송하려면 터미널에서 Ctrl+C를 누릅니다. 모든 것이 올바르게 작동하면, Ctrl+C를 누르면 터미널에서 "Signal received"가 출력됩니다. 이제 PCNTL 모듈이 작동하므로, PHP 스크립트에서 프로세스 제어 기능을 사용할 수 있습니다.

 

참고: 이 방법은 PCNTL 모듈을 설치하기 위한 가장 간단한 방법 중 하나입니다. 그러나 PCNTL 모듈이 제공하는 모든 기능을 사용하려면 PHP를 다시 컴파일하여 PCNTL 모듈을 빌드해야 합니다.


재컴파일(recompiling) 없이 PHP용 PCNTL 모듈 설치하기

1) Build the pcntl module

cd php*/ext/pcntl
phpize
./configure
make

2) Add extension=pcntl.so to /etc/php.d/pcntl.ini

cp modules/pcntl.so /usr/lib/php/modules/
echo "extension=pcntl.so" > /etc/php.d/pcntl.ini
728x90
반응형