No Image

PDFlibインストール ( multi thread対応 )

私が管理しているサーバの多くはApacheをWorkerで動かしている。
理由は単純で、サーバのリソースがそれ程潤沢ではないから、に過ぎない。
しかし、バイナリ提供の外部モジュールはmulti threadに対応していないものが多い。その一つがpdflib。
マニュアル通りインストールしても全く動作せず。
散々悩んだ挙げ句、結局はもう一度ソースからコンパイルすることにした。その備忘録である。
・PDFlibをダウンロード
PDFlib-7.0.2-Linux.tar.gzをダウンロード
試験用のphpファイルが必要なため、PDFlib-7.0.2-Linux-php.tar.gzも一緒にダウンロード
・PDFlib-7.0.2-Linux.tar.gzを解凍
・peclサイトからpdflib-2.1.4.tgzをダウンロード
ダウンロード先はこちら
ダウンロード後、解凍

# tar zxvf pdflib-2.1.4.tar.gz
# cd pdflib-2.1.4

・phpize / configureを実行する
この時、configureで必ず解凍したPDFlib-7.0.2及びphp-configの位置を指定するため、確認しておくこと
php-config はRPMインストールの場合、/usr/bin/php-config、ソースでインストールした場合、/usr/local/bin/php-configにインストールされている事が多い

# phpize
# ./configure –with-pdflib=../PDFlib-7.0.2-Linux/bind/c –with-php-config=/usr/bin/php-config

・makeする

# make

・pdf.soというファイルが出来ているので、これをPHPのextension_dirへコピーする
extension_dirはphpinfo()で確認しておく事。もしも指定されていなければ、適当な場所へディレクトリを作成し、そこへpdf.soをコピー

# ls modules
pdf.la  pdf.so
# cp modules/pdf.so ~/modules

・php.ini に下記を追加
もし、前記にてextension_dir用のディレクトリを作成した場合、php.iniのextension_dirに追加する事

# vi /usr/local/lib/php.ini
・・・
extension_dir=pdf.so
・・・

・apacheを再起動し、phpinfo()を確認
[pdf]という項目が表示され、”PDF Support”がenable、”PDFlib GmbH Version”が7.0.2、”PECL Version”が2.1.4になっていればOK
テスト用のphpファイルの中から”hello.php”をWebにてアクセスできるところに設置し、ブラウザからアクセスしてみる
pdfファイルが表示されるか、ダウンロードされればOK
参考サイト
PDFlib
PDFlib-in-PHP-HowTo
PDFlib HowTo – インストール方法

Share this post