引き続き、XOOPS Cube Legacy 2.2 ベースでのお話。サーバー環境のせいか、d3downloads 1.47 を利用している時に、以下のような問題が発生していた。
既に d3downloads の更新は停滞しているようなので、自力で何とかしてみることにした。
WordPress 3.1.3 日本語版が出たので自動アップデートを試みたものの、Apache環境のWordPressは問題ないのだが、nginxで動かしているこのサイトだけ何故か失敗。
ログを見てみると、
upstream timed out (110: Connection timed out)
ということだったので、本家のwikiを調べたところ、fastcgi_read_timeout が関係しているらしいと判明。デフォルトは60秒だから、それを180秒にしてやったところ、無事に自動アップデートが完了した。
あわせて、関係ないとは思うけど send_timeout の値もデフォルトが60秒なので、180秒にした。
書き方はこんな感じ。
server {
fastcgi_read_timeout 180;
…
…
}
fastcgi_read_timeout はHttpCoreモジュールの設定ではないので、server 以下に書いた。この辺りよく分かっていないので http 以下でもいいのかもしれないけど、wikiでの書き方もそうなってたので、まあそのままで。
send_timeout は http 以下に書いた。
http {
send_timeout 180;
…
…
}
もし同じ症状の方がいたら、参考までに。
順番が逆になったけど、SaaSes Industria Smallの初期状態とかいろいろ。
申し込んでから利用できるまでには、10分程度の時間しかかからなかった。さくらのVPS よりも早かったかな。急いでいる時にはありがたいかも。
デフォルトでは必要最低限のサービスしか立ち上がっていないため、特に各種設定ファイルを編集しなくても問題なさげ。初期ブート時で400MB程度メモリの空きがある。
初期状態では22番ポートしか開いていないので、セキュリティ面でもまだ安全なほうか。現時点ではCentOS x64のみ選択できる。yum check-update したところ、全てのパッケージが最新で、更新が必要な物はなかった。これには好感。
あとは さくらのVPS でもやったように、sshdのポート番号を変えたり、iptablesの設定を変えたりといった感じ。
あとは今回、nginx を利用したWebサーバーにする予定なので、その辺りの設定などをまた別記事にでもまとめます。
個人向けの提供を待ちきれず、知人がやっている会社でIndustriaを申し込んでもらい、試してみた。
早速使用してみたところ、もともとのXenを動かしているサーバーの時計が狂っているのか、18時間ぐらい前の時刻になっている。
Xenはホストとの間で自動時刻調整されるため、普通に時刻合わせをしてもダメなので、以下のようにした。
/etc/sysctl.conf に以下の行を追加して再起動する。
xen.independent_wallclock = 1
その場で変更したい場合は、rootになって以下のコマンドを打ってやる。
echo 1 > /proc/sys/xen/independent_wallclock
そのあとで
/usr/sbin/ntpdate ntp1.jst.mfeed.ad.jp
とすれば、正しい時刻が反映された。
ただ、再起動するとホストOS側の時刻に再設定されてしまうので、/etc/rc.d/rc.local あたりに、
/usr/sbin/ntpdate ntp1.jst.mfeed.ad.jp
と追加で書いた。これで再起動しても、常に時刻は正しく設定されるようになった。
余談だが、Industriaのデフォルトではntpが入っていないので、
yum install ntp
として、事前にインストールする必要がある。XenのホストOSと時刻が同期するから不要という事かもしれないが(さくらのVPS にはデフォルトで入っている)、ホストOSの時計が狂っていたのでは意味がないので、ホストOS側の時刻は正確に保っていただければと思う。
以前から借りていてサイト作成はしていたものの、ちょっと放置気味だった ドメインキング に、同人荘 – doujin.so! のトップページを移行したときの設定とか。
将来的にサブドメインだけ残して、他のサービスを使いたくなった方のお役に立てれば幸い(そうならないようにしていきたいとは思いますが……)。
さくらの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への設定も自動でやってくれるから、さらに楽だね。今後はこの方法でやろうっと。