PHPでPeclをインストールするメモ。

PythonだPythonだってブログに書きますた。でも本業はJSPプログラマーだし、PHPスクリプターです。ですからPHPのテストサーバーが必要。Tomcatが必要。

ubuntu の場合、apache2が簡単にインストールできる。これを使うことにする。PHP5とPHP4は棲み分けがややこしいので、PHP5と明示的にバージョンを指定する必要がある。

ubuntu は Debianなので他のDebianディストリビューションでも使えるかも。ただ、コマンドは書き殴りなので、正確ではないし、パッケージはどんどん更新されるので適宜パッケージを読み替える。

本題 PECL pdo_pgsql pdo_mysql をインストールする(ビルドするには)

作業のサマリ。使用したubuntu は 6.10-ja

Apache2のインストール
PHP5のインストール
PHP5-devのインストール
PHP5-cliのインストール
PHP5-cgiのインストール
PHP-pearのインストール
mysqlのインストール
mysql-dev
pgsqlのインストール
pgsql-devのインストール
/etc/apache2/apxs で /etc/apache2/apxs2 にリンク作成

これらの順に作業工程すすめた。

このインストールの目標はPECL でパッケージをインストールすること

user $ sudo pecl install pdo_mysql
user $ sudo pecl install pdo_pgsql
user $ sudo pecl install pdo_sqlite
user $ sudo pecl install apc

を実行してPHPに組み込みたい。

PECLに必須 phpizeを入れる

sudo aptitude php5-dev

PECL 自体をインストールする*1

sudoo aptitude install php-pear

PHPはもちろん入れましょう。

sudo aptitude install php5

これらをまとめてインストールするコマンドはこうやって書く

sudo aptitude install apache2 apache-dev php5 php5-dev php-pear

これでPECLが実行できるようになります。

試しにPDOをビルド

sudo pecl install pdo
sudo pecl install pdo_sqlite


でも、それだと、pdo_mysqlはインストールできなかった。

原因はこれだと思う

  1. peclはphp-cliで動作するが、php-cliにpdo.soが組み込まれてないのかも
  2. pdo_mysqlのビルドにはmysqlのdevlのパッケージが必要らしい

だから

/etc/php5/cli/php.ini

にextenstion=pdo.soを組み込んだ。


mysql-devみたいなパッケージが必要っぽい
そこで、パッケージを調べた、

apt-cache search mysql | more

libmysqlclientdev15とかいうのがそうらしい。
postgresql-server-8.1-dev というのがそうらしい。

これらをインストールする

sudo aptitude install postgres-8.1-dev libmysqlclientdev15

これで、PECLのビルドが通るようになった。

sudo pecl install pdo_mysql
sudo pecl install pdo_pgsql

しかし、まだ、APCがビルドできない。
http://baheyeldin.com/technology/linux/installing-php-apc-on-ubuntu-dapper-and-debian.html
を参考にすると

せっかくapt-get があるのにソースからビルドなんてマンドクセ。時間無駄だ、そのままつかおうぜ

みたいなことが書いてある。

ln -s /usr/bin/apxs2 /usr/bin/apxs

apxsx と apxs が apache2は名前が違うのでそこをリンクすればいいんじゃね?

ってこと。

実際これで、

sudo pecl install apc

が出来ます。

あとは、apache2でPHPを動かすときの設定が/etc/php5/apache2/php.iniにあるので、

sudo vim /etc/php5/apache2/php.ini
sudo /etc/init.d/apache2 restart

これで終了。

書き殴りのエントリなので、正確ではないけれど、イメージはつかんでると思う。あとでみるときに流れだけわかればいいや。

*1:PECLとPEARは双子だと思えばいい