SolrをPHPで使う(インストール編)

PHPではPECLで Solr Extension が用意されています。
https://www.php.net/manual/ja/book.solr.php

Solr Extension をインストールするためには、まず PECL を使えるようにします。(以下、Debian での手順です)

$ sudo apt install php-pear php-dev
$ sudo pecl channel-update pecl.php.net
$ ecl search solr

Matched packages, channel pecl.php.net:
=======================================
Package Stable/(Latest) Local
solr    2.5.1 (stable)        The Apache Solr PHP extension is an extremely fast,
                                  light-weight, feature-rich library that allows PHP applications to
                                  communicate easily and efficiently with Apache Solr server instances
                                  using an object-oriented API.

Solr Extension をコンパイルするのに必要なライブラリをインストールします。

$ sudo apt install libcurl4-openssl-dev libxml2-dev
$ mkdir -p /tmp/libcurl4/include
$ ln -s /usr/include/x86_64-linux-gnu/curl /tmp/libcurl4/include
$ mkdir -p /tmp/libxml2/include
$ ln -s /usr/include/libxml2/libxml /tmp/libxml2/include/libxml2

PECL が想定しているディレクトリ構成に合わせるためにシンボリックリンクを張っています。

ここまで準備ができたらインストール。

$ sudo pecl install solr
(略)
Build process completed successfully
Installing '/usr/lib/php/20190902/solr.so'
install ok: channel://pecl.php.net/solr-2.5.1
configuration option "php_ini" is not set to php.ini location
You should add "extension=solr.so" to php.ini

途中で libcurl と libxml2 の include パスを聞かれるので、それぞれ /tmp/libcurl /tmp/libxml2 を指定します。

コンパイルが正常に終了したら PHP から利用できるように設定します。

$ sudo sh -c "echo extension=solr.so > /etc/php/7.4/mods-available/solr.ini"
$ sudo ln -s /etc/php/7.4/mods-available/solr.ini /etc/php/7.4/cli/conf.d/30-solr.ini
$ sudo ln -s /etc/php/7.4/mods-available/solr.ini /etc/php/7.4/apache2/conf.d/30-solr.ini
$ sudo service apache2 restart

コメント