Tritonn(MySQL+Senna)+Mecab+Apahce+PHP5.2(with APC & imagick)をCentOS5にインストールする
バージョン等の最終更新: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をソースからインストール
以下、コマンドライン上からの作業ログです。環境によってはこのままでインストールできないこともありますので、ご了承ください。
目次
- 1 重複するモジュールを削除する
- 2 MySQL用のユーザーグループとユーザーを作成する
- 3 各バイナリのインストールに必要なもろもろのモジュールを、yumでインストールする
- 4 作業用にユーザーディレクトリに srcディレクトリを作成
- 5 Mecabをソースからインストール
- 6 Mecab-IPA辞書をソースからインストール
- 7 Sennaをソースからインストール
- 8 Tritonnをソースからインストール
- 9 サービスへ「mysqld」として登録
- 10 my.cnfを設定
- 11 DBを初期化し、ユーザーとグループを適切なものに変更
- 12 MySQL(Tritonn)をserviceから起動する
- 13 Apache (apr, apr-util, httpd) をソースからインストール
- 14 aprのインストール
- 15 apr-utilのインストール
- 16 httpdのインストール
- 17 Apacheをサービスへ「httpd」として登録
- 18 /etc/init.d/httpd を修正する
- 19 PHPをソースからインストール
- 20 APCをソースからインストール
- 21 imagickをソースからインストール
- 22 php.iniの作成
- 23 httpdの起動
重複するモジュールを削除する
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 ~/src
Mecabをソースからインストール
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 install
Mecab-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 install
Sennaをソースからインストール
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 mysqld
my.cnfを設定
# コピー元をmy-medium.cnf my-my-large.cnf 等から選択 sudo cp ./support-files/my-small.cnf /etc/my.cnf
DBを初期化し、ユーザーとグループを適切なものに変更
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.gz
aprのインストール
cd ~/src/httpd-2.2.14/srclib/apr/ ./configure && make && sudo make install
apr-utilのインストール
cd ~/src/httpd-2.2.14/srclib/apr-util ./configure --with-apr=/usr/local/apr && make && sudo make install
httpdのインストール
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 install
Apacheをサービスへ「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.conf
PHPをソースからインストール
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 install
APCをソースからインストール
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 install
imagickをソースからインストール
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 install
php.iniの作成
sudo vi /usr/local/lib/php.ini # 以下を追記 extension=apc.so extension=imagick.so
httpdの起動
$ sudo /sbin/service httpd start Starting httpd: [ OK ]
あとは http://qwik.jp/tritonn/basictutorial.html を見てチュートリアルを試すなり、PHPから接続してみるなりして動作確認をしてください。
CentOSでメンテナンス性を考えるなら、SRPMのSPECファイルを書き換えてrpmbuildするという方法もありますよ。ちょっと面倒ですが。