バージョン等の最終更新:2009-10-24
PHPからTritonn(MySQL+Senna)を使うためのセットアップに若干ハマったので、メモ的にエントリー。
Tritonn(MySQL+Senna)だけでPHPからMySQLに接続するときは、Tritonnをソースからインストールしなくてはなりません。というのも、Tritonnプロジェクトではコンパイル済みのrpmをリリースしていますが、このrpmにはmysql-devel的なライブラリが同梱されていません。Tritonnだけをrpmからインストールした場合、PHPの./configure時にlibmysqlclient.soが見つからず、PHPのインストールを完了させることができないのです。(参考:tritonをphpから使う : 社長にはなれない僕だから。)
mysql-develなパッケージをyumなどでインストールしてもよいのですが、可能な限りシンプルに済ませたいところです。
というわけで、Tritonnをソースからインストールする手順は以下の通りです。環境は CentOS5.2(32bit)をVMware Server(Win32)のゲストOSとして動作させています。
- 既存の重複するモジュールを削除する(あれば)
- MySQL用のユーザーグループをユーザーを作成する
- コンパイルに必要なもろもろのモジュールをyumでインストールする
- Mecabをソースからインストール
- Sennaをソースからインストール
- Tritonnをソースからインストール
- Apacheをソースからインストール
- PHPをソースからインストール
- imagickをソースからインストール
以下、コマンドライン上からの作業ログです。環境によってはこのままでインストールできないこともありますので、ご了承ください。
重複するモジュールを削除する
sudo yum remove mysql php httpd apr apr-util
MySQL用のユーザーグループとユーザーを作成するsudo /usr/sbin/groupadd mysql
sudo /usr/sbin/useradd -g mysql mysql各バイナリのインストールに必要なもろもろのモジュールを、yumでインストールするsudo yum -y install \
gcc-c++ gcc-java gcc-objc gcc4 gcc4-c++ autoconf \
libpng-devel libjpeg-devel libmcrypt-devel ImageMagick-devel \
libtool automake bison ncurses-devel libtool-ltdl libtool-ltdl-devel \
( http://blog.livedoor.jp/k1LoW/archives/53521855.html を参考に、
libtool-ltdl libtool-tdl-devel を加えました )作業用にユーザーディレクトリに srcディレクトリを作成mkdir ~/srcMecabをソースからインストールcd ~/src
wget http://nchc.dl.sourceforge.net/sourceforge/mecab/mecab-0.97.tar.gz
# ( http://mecab.sourceforge.net/ から最新版の取得を推奨します )
tar zxvf mecab-0.97.tar.gz
cd mecab-0.97
./configure --prefix=/usr --with-charset=utf8 && make && sudo make installMecab-IPA辞書をソースからインストールcd ~/src
wget http://nchc.dl.sourceforge.net/sourceforge/mecab/mecab-ipadic-2.7.0-20070801.tar.gz
# ( http://mecab.sourceforge.net/ から最新版の取得を推奨します )
tar zxvf mecab-ipadic-2.7.0-20070801.tar.gz
cd mecab-ipadic-2.7.0-20070801
./configure --prefix=/usr --with-charset=utf8 && make && sudo make installSennaをソースからインストールcd ~/src
wget http://globalbase.dl.sourceforge.jp/senna/33763/senna-1.1.4.tar.gz
# ( http://qwik.jp/senna/Download.html から最新版の取得を推奨します )
tar zxvf senna-1.1.4.tar.gz
cd senna-1.1.4
./configure --prefix=/usr && make && sudo make install
# ( ここでコンパイラがメモリを200MB以上確保するときがあるので、
# ゲストOSの場合は最低でも512MBは割り当てたほうがよいです )Tritonnをソースからインストールcd ~/src
wget http://osdn.dl.sourceforge.jp/tritonn/36449/tritonn-1.0.12-mysql-5.0.67.tar.gz
# ( http://qwik.jp/tritonn/download.html から最新版の取得を推奨します )
tar zxvf tritonn-1.0.12-mysql-5.0.67.tar.gz
cd tritonn-1.0.12-mysql-5.0.67
CC='gcc' CXX='gcc' \
./configure \
'--prefix=/usr/local/mysql' \
'--localstatedir=/usr/local/mysql/data' \
'--libexecdir=/usr/local/mysql/bin' \
'--enable-thread-safe-client' \
'--enable-local-infile' \
'--enable-assembler' \
'--with-pic' \
'--with-fast-mutexes' \
'--with-client-ldflags=-static' \
'--with-mysqld-ldflags=-static' \
'--with-zlib-dir=bundled' \
'--with-big-tables' \
'--with-yassl' \
'--with-readline' \
'--with-archive-storage-engine' \
'--with-blackhole-storage-engine' \
'--with-ndbcluster' \
'--with-csv-storage-engine' \
'--with-example-storage-engine' \
'--with-federated-storage-engine' \
'--with-innodb' \
'--with-extra-charsets=complex' \
'--with-senna' '--with-mecab' && make && sudo make install
# ( コンパイルオプションは http://qwik.jp/tritonn/howtobuild.html と、
# http://d.hatena.ne.jp/mir/20070803/p2 を参考にしました )サービスへ「mysqld」として登録sudo cp ./support-files/mysql.server /etc/init.d/mysqld
sudo chmod 755 /etc/init.d/mysqld
sudo /sbin/chkconfig --add mysqldmy.cnfを設定# コピー元をmy-medium.cnf my-my-large.cnf 等から選択
sudo cp ./support-files/my-small.cnf /etc/my.cnfDBを初期化し、ユーザーとグループを適切なものに変更sudo /usr/local/mysql/bin/mysql_install_db --user=mysql
# ( /usr/local/mysql/data 内にDBのファイルが初期化されます )MySQL(Tritonn)をserviceから起動するsudo /sbin/service mysqld start
Starting MySQL. [ OK ]Apache (apr, apr-util, httpd) をソースからインストールcd ~/src
# http://ftp.riken.jp/net/apache/httpd/ から最新を取得
wget http://ftp.riken.jp/net/apache/httpd/httpd-2.2.14.tar.gz
tar zxvf httpd-2.2.14.tar.gzaprのインストールcd ~/src/httpd-2.2.14/srclib/apr/
./configure && make && sudo make installapr-utilのインストールcd ~/src/httpd-2.2.14/srclib/apr-util
./configure --with-apr=/usr/local/apr && make && sudo make installhttpdのインストールcd ~/src/httpd-2.2.14
./configure \
--enable-so \
--enable-mods-shared=all \
--enable-modules=all \
--enable-ssl \
--with-ssl \
--with-mpm=prefork \
--with-apr=/usr/local/apr/ && make && sudo make installApacheをサービスへ「httpd」として登録sudo cp build/rpm/httpd.init /etc/init.d/httpd
sudo chmod 755 /etc/init.d/httpd
sudo /sbin/chkconfig --add httpd/etc/init.d/httpd を修正するsudo vi /etc/init.d/httpd
# (以下の3行を修正)
- apachectl=/usr/sbin/apachectl
+ apachectl=/usr/local/apache2/bin/apachectl
- httpd=${HTTPD-/usr/sbin/httpd}
+ httpd=${HTTPD-/usr/local/apache2/bin/httpd]
- CONFFILE=/etc/httpd/conf/httpd.conf
+ CONFFILE=/usr/local/apache2/conf/httpd.confPHPをソースからインストールsudo yum install -y \
libmcrypt-devel libxml2 libxml2-devel libpng libpng-devel \
libjpeg libjpeg-devel curl curl-devel libtidy libtidy-devel \
freetype-devel ncurses-devel
cd ~/src
wget http://jp.php.net/get/php-5.2.11.tar.gz/from/this/mirror
# ( http://www.php.net/downloads.php から最新版の取得を推奨します )
tar zxvf php-5.2.11.tar.gz
cd ~/src/php-5.2.11
'./configure' \
'--prefix=/usr/local' \
'--with-mysql=/usr/local/mysql' \
'--with-pdo-mysql=/usr/local/mysql' \
'--with-apxs2=/usr/local/apache2/bin/apxs' \
'--enable-mbstring' \
'--enable-mbregex' \
'--with-jpeg-dir' \
'--enable-ftp' \
'--enable-exif' \
'--enable-sockets' \
'--with-openssl' \
'--with-zlib' \
'--with-gd' \
'--with-curl' \
'--enable-zend-multibyte' \
'--enable-pcntl' \
'--with-mcrypt' \
'--with-tidy' && make && sudo make installAPCをソースからインストールcd ~/src
wget http://pecl.php.net/get/APC-3.0.19.tgz
# ( http://pecl.php.net/package/APC から最新版stableの取得を推奨します )
tar zxvf APC-3.0.19.tgz
cd ~/src/APC-3.0.19
phpize && ./configure --with-apc && make && sudo make installimagickをソースからインストールcd ~/src
wget http://pecl.php.net/get/imagick-2.3.0.tgz
# ( http://pecl.php.net/package/imagick から最新版の取得を推奨します )
tar zxvf imagick-2.3.0.tgz
cd ~/src/imagick-2.3.0
phpize && ./configure --with-imagick && make && sudo make installphp.iniの作成sudo vi /usr/local/lib/php.ini
# 以下を追記
extension=apc.so
extension=imagick.sohttpdの起動$ sudo /sbin/service httpd start
Starting httpd: [ OK ]あとは http://qwik.jp/tritonn/basictutorial.html を見てチュートリアルを試すなり、PHPから接続してみるなりして動作確認をしてください。


1 Comment