MacOs에 PHP-RdKafka 설정 및 셋팅하기

MacOs Local환경에서 PHP RdKafka를 설정하는데 있어서 많은 에러사항이 있었기에 여기에 발자취를 남긴다.

설치 및 간단한 사용방법은 아레 php-rdkafka-doc 사이트에서 참고할 수 있다.

https://arnaud.le-blanc.net/php-rdkafka-doc/phpdoc/index.html

 

PHP Manual (Partial)

 

arnaud.le-blanc.net

 


PHP-RdKafka 설치 및 Local 환경설정

  • 로컬 아무 디렉토리 및에 php-rdkafka를 git clone으로 다운받는다.
  • 필자는 github으로 다운받았는데 pecl로 다운받는 방법도 있다. 뭐든 상관없지만 참고 문서에 나와있는 방향성으로 설치.
$ git clone https://github.com/arnaud-lb/php-rdkafka.git
$ cd php-rdkafka
$ phpize
$ ./configure
$ make all -j 5
$ sudo make install
  • 위 명령어를 실행할 때, 에러가 날 수 있는데, 보통 /usr/local에 무언가의 작업을 하기위한 permmision denined 에러였다.
  • 차근차근 해당 디렉토리들의 소유권을 root->user로 바꾸어주며 실행하면 잘 처리된다.
  • 아래 sudo make install까지 에러없이 잘 작동하였다면 현재 로컬에서 설정된 php 버전의 ini파일 위치를 찾는다.
$ php --ini || grep php.ini

  • 위처럼 Loaded Configuration File <<에 보면 현재 설정되어있는 php version에 맞는 php.ini파일을 찾을 수 있다.
  • 아래의 명령어를 사용하여 확장모듈을 넣어준다. 
$ echo 'extension=rdkafka.so'>>/opt/hombrew/etc/php/8.0/php.ini
  • 이제 rdkafka 모듈이 잘 확장되어 설정됬는지 아래의 명령어로 확인한다.
$ php -m | grep rdkafka
$ php-fpm -m | grep rdkafka

 


PHP-RdKafka 설치 확인

  • 필자는 라라벨 프로젝트 밑에서 실행했음.
  • php artisan tinker를 사용하여 아래 명령어를 실행해봤을 때, 잘 나오면 성공
$ php artisan tinker
Psy Shell v0.11.4 (PHP 8.0.19 — cli) by Justin Hileman

>>>  $a = new \RdKafka\Conf();

  • 위와 같이, RdKafka 모듈이 작동하며 설정이 잘 작동된다면 설치 끝.

+ 추가글

위에서 설명한 방법은 git에서 내려받은 php rdkafka를 make명령어로 compile시켜서 사용하기 때문에 php module에 등록하기 위해서는 extention을 rdkafka.so로 등록해줘야 하는데, brew install 명령어를 통해 설치하는 rdkafka의 경우에는 .a file로 떨어지기 때문에 mac에서 별도의 extention을 등록하지 않아도 사용이 가능합니다.

 

 

librdkafka

Homebrew’s package index

formulae.brew.sh