Memento
PHP Cassandra Driver 설치 본문
Cassandra DB에 접근하려다 PHP Driver를 설치하려니 DataStax PHP Driver가 PHP 7.3 환경에서는 쓸 수 없어서 끙끙거리다가 NodeJS로 우회해서 접근도 해보고, Thrift로 해보려다가 어떻게 겨우겨우 설치하니 써진다.
※ Ubuntu 16.04 (LTS) 환경임을 참고할 것
1. Installing PHP 7.0
apt-get install php7.0-dev
2. Installing dependancies
apt-get install build-essential cmake git libpcre3-dev
3. Installing libuv
- Ubuntu 16.04 LTS 이 링크로 이동해서 가장 최신 버전의 패키지 파일을 다운로드 받아 설치하면 된다.
wget https://downloads.datastax.com/cpp-driver/ubuntu/16.04/dependencies/libuv/v1.33.0/libuv1_1.33.0-1_amd64.deb
wget https://downloads.datastax.com/cpp-driver/ubuntu/16.04/dependencies/libuv/v1.33.0/libuv1-dev_1.33.0-1_amd64.deb
dpkg -i libuv1_1.33.0-1_amd64.deb
dpkg -i libuv1-dev_1.33.0-1_amd64.deb
4. Installing C/C++ driver
- Ubuntu 16.04 LTS 이 링크로 이동해서 가장 최신 버전의 패키지 파일을 다운로드 받아 설치하면 된다.
wget https://downloads.datastax.com/cpp-driver/ubuntu/16.04/cassandra/v2.14.0/cassandra-cpp-driver_2.14.0-1_amd64.deb
wget https://downloads.datastax.com/cpp-driver/ubuntu/16.04/cassandra/v2.14.0/cassandra-cpp-driver-dev_2.14.0-1_amd64.deb
dpkg -i cassandra-cpp-driver_2.14.0-1_amd64.deb
dpkg -i cassandra-cpp-driver-dev_2.14.0-1_amd64.deb
5. Building and Installing the PHP extension
- 이제 Cassandra driver를 설치하면 되는데, 7.1까지만 지원된다면서 설치가 안 된다.
- 꼼수로 잠깐 기본 PHP 버전을 교체한다.
update-alternatives --config php
- 위의 명령어를 치면 아래의 사진처럼 PHP 버전을 선택할 수 있다. 이 때, PHP 7.0 버전으로 선택해준다.

- 이후에, Cassandra driver를 설치한다.
// pecl 버그. ubuntu에서는 -n 옵션을 제거해야 한다.
sed -i "$ s|\-n||g" /usr/bin/pecl
// xml 모듈이 없는 경우, 설치해야 한다.
apt-get install php-xml php7.0-xml
// cassandra 설치
pecl install cassandra
- 설치 완료 된 이후, 다시 PHP버전을 원래대로 돌려준다.
- 설치 동작이 원활하지 않으면, https://datastax.github.io/php-driver/building/ 를 참고하여 수동으로 php-driver git 소스를 받아 빌드하면 된다.
cd ~
git clone https://github.com/datastax/php-driver.git
cd php-driver
pushd ext
phpize
popd
mkdir build
pushd build
../ext/configure
make
make install
popd
- 이래도 안되면, 어디서부터 안된건지 의존성 체크를 들어가야 한다.
6. Enabling the PHP extension
- php.ini에 Cassandra Extension을 추가하면 끝
extension=cassandra.so
'Work > PHP' 카테고리의 다른 글
Laravel 에서 AWS SNS 메세지 전송 (0) | 2020.07.29 |
---|