さくらのVPS に、オープンソース全文検索エンジンの Fess を導入してテスト中。簡単にインストールでき、利用できるのは素晴らしい。
以前勤めてた会社では、ファイルサーバーの全文検索に Hyper Estraier Win32版を入れて使っていたんだけど、導入にはApacheが必要だし、ファイルのクロールさせているとよく落ちて、そのたびにインデックスが壊れてリペアが必要だしと、使い勝手が微妙だった。(クロール失敗・インデックス破損は、Win32版特有の問題かもしれないけど)
その点 Fess は、普通に使うだけならApache入れる必要もないし、Javaだけ入っていればOSを選ばないのもいい。さらにAPIを使えば、他のWebサイトから検索のバックエンドとして使えるので、使い勝手も悪くなさそう。後は検索速度とかクローラーがエラー吐かないかどうかなど、おいおい試していってみよう。
インストールに必要なのは OpenJDK だけ。yum から一発インストール。
yum install java-1.6.0-openjdk.x86_64
後は Fess のサイト(http://sourceforge.jp/projects/fess/releases/) より、データを持ってきて
unzip fess-server-x.y.zip
cd fess-server-x.y
chmod +x bin/*.sh
./bin/startup.sh
とするだけで起動する。管理はWebベースで。管理者パスワードの変更は、http://fess.sourceforge.jp/ja/setup.html あたりを参考に。
Ruby ベースの SUZAKU も気になるところだけど、インストールが若干手間なのと、最新バージョンが4年ほど前の更新なので、開発が活発な Fess のほうが安心かな。Tomcat使う分、重いかもというイメージはあるけど。
現在、このブログがある さくらのVPS では、PHP 5.3系を使いたいのでremiレポジトリを有効にして、yumでアップデートなどを行っているのだけど、そこで発生したトラブルについてメモがてら。
昨日アップデートをしたら、大量のアップデートに混じってMySQLも5.1系から5.5系にバージョンアップされたらしく、起動しなくなっていた。MySQLのログを見ると、
[ERROR] /usr/libexec/mysqld: unknown variable 'default-character-set=ujis'
[ERROR] Aborting
となって終了している。
MySQL MLの投稿
http://www.mysql.gr.jp/mysqlml/mysql/msg/15436
によると、5.5系では [mysqld] 内では default-character-set が利用できなくなっているとのことなので(ただし [client], [mysql], [mysqldump] では問題なく利用できている)、代わりに /etc/my.cnf に
character-set-server = ujis
と書いてやることで無事起動するようになった。
が、以下のようなエラーも吐かれていたので、こちらにも対処する。
[ERROR] Missing system table mysql.proxies_priv; please run mysql_upgrade to create it
mysqld を起動しておいた状態で、
# mysql_upgrade -u root -p
として root パスワードを入力すると、データベースがチェックされ、問題なく全て OK となった。再起動後もエラーは出なくなったようだ。
そして、ここまでやった後に、下記サイト様を発見。
【MySQL】5.1から5.5へのアップグレード(rpmで)
http://www.softel.co.jp/blogs/tech/archives/2288
yumだったからか、私の場合は全く警告も出なかったけれど、データベースのダンプくらいは取っておくべきだったなと、今さらながらガクブル。ま、問題は出なかったから、よしとしよう。(mysqldumpしながら)
さくらのVPS で若干ハマった話。というか、CentOS系のApacheでハマった話の方が正しいかな。
/etc/httpd/conf.d/
に、NameBased Virtualhost用の設定ファイルを置いていたんだけど、この設定ファイルで、IPアドレスを指定してアクセスしてきたユーザーは全て拒否するようにしていたのに、何故か拒否されずにCentOSのデフォルトページが表示されていた。
内容は以下のような感じ。
ServerName any
DocumentRoot /tmp
order deny,allow
deny from all
同じディレクトリにあった、welcome.conf に書かれていた以下の内容が優先されていたようなので、コメントアウトして対処。(ファイルを消しておいても問題ないけど)
Options -Indexes
ErrorDocument 403 /error/noindex.html
以上でIPアドレスを指定した接続には403が返るようになった。
PHOTOSYNTHESIC BLOG 様の以下の記事、
を参考に、さくらのVPS 上で動かしているこのWordPressもSFTP経由で自動アップデートさせたいなーと思っていたのだけれど、libssh2をソースからコンパイルするのはちょっと面倒だなーと思っていたら、CentOS 5.5ではyumだけで何とかなったので、そのメモ。
libssh2は、以下のような感じで。
yum install libssh2.x86_64
yum install libssh2-devel.x86_64
後は、PHOTOSYNTHESIC BLOG 様の記事通りに、
pecl install -f ssh2
ヘッダファイルの場所を聞かれるけど、Enterで問題なし。libssh2-devel.x86_64 を入れ忘れているとエラーが出ます。
その後、/etc/php.ini に、
extension=ssh2.so
を追加してやるか、/etc/php.d/ 以下に上記を書いたファイルを置いてやる。
で、最後にApache再起動。
/etc/init.d/httpd restart
こんな感じで問題なくWordPressでSFTPによる自動アップデートができるようになった。
SaaSes Industria で
pecl install -f ssh2
を試してみたら、peclのssh2がバージョンアップしているのか、うまくいかなかったので、こっちもyumでやってみたメモ。
pecl install -f ssh2
の代わりに、
yum --enablerepo=remi,epel install php-pecl-ssh2.x86_64
とするとうまくいった。(事前にremi・epelのレポジトリ登録が必要)
この方法だとPHPへの設定も自動でやってくれるから、さらに楽だね。今後はこの方法でやろうっと。