今日、このブログでも使っているDreamHostのサーバが落ちてたみたい。
最近、レスポンスが悪いなとか思っていたところだったので、別の海外レンタルサーバを探してみた。
なんとなく、よさそうなのは、Media Temple (gs)かな。$20/月はちょっと高いが、promo codeを使えば、15%OFFで$14.17/月になるらしい。
おもしろいのは、管理用のiPhoneアプリがあるとこ。
iPhoneでドメインやメールアドレスを追加したりできるらしい(あまり意味はないけど、何となくかっこいいかも)。
他には、Host Monster$4.95/月やBlue Host$6.95/月が候補。
それとも、国内のサーバを借りた方がよいのでしょうか?でも、高いからな。
Archive for the ‘DreamHost’ Category
DreamHostからの移転を検討
Saturday, July 19th, 2008Twitter Balloonの修正
Tuesday, April 22nd, 20083月9日にTwitterがcrossdomain.xmlを変更してFlashからのメッセージ取得を禁止しちゃったので、3月10日からサーバ側でTwitter APIを使ってメッセージを取得するようにしました(このあたりの話はこちらを参照)。
しかし、1日に10万回位Twitter Balloonからのアクセスがあるのでサーバへの負荷が高く、このままだと制限をかけるというお達しがサーバを借りているDreamHostから来てしまいました。
何とか負荷を下げないとならなくなったので、Twitterのメッセージをキャッシュするようにしました。そのため、Twitterのメッセージを更新してからTwitter Balloonに反映されるまでに最大1時間くらいかかることがあります。どうしてもすぐに反映させたい場合は、自分のTwitter Balloonを表示させてReloadボタン(真ん中のボタン)をクリックして下さい。
技術的な話をすると、CGIでキャッシュを読み込む方式ではCGIの起動回数は変わらないので、404 Error proxy cache方式(勝手に命名)にしました。
例えば、Twitter Balloonがkorelabのメッセージを取得する場合、Twitter Balloonがkorelab.xmlを取得しようとします。でもkorelab.xmlなんていうファイルは存在しない。
そうすると404 Not Foundエラーが発生します。
404 Not Foundエラーが発生した場合に、通常エラーページが表示されるのですが、このエラーページは自分で作った独自のエラーページにすることができます。そして、この独自のエラーページの替わりにCGIを起動することもできるので、ここでCGIを起動します。
CGIでは元の要求を環境変数REQUEST_URIを通して知ることができるので、元の要求であるkorelab.xmlからID korelabを取り出し、Twitter APIでメッセージXMLを取得してそのまま応答します。
このときに応答したメッセージXMLをkorelab.xmlとしてファイルに保存します。
すると次からTwitter Balloonがkorelabのメッセージを取得する際には、korelab.xmlファイルが存在するのでCGIを起動することなく静的なXMLファイルとしてメッセージを取得できるという訳です。
キャッシュファイルはcronで1時間おきに削除していますので、メッセージを更新してから約1時間以内には最新のメッセージが表示されます。
Drupal6
Friday, March 7th, 2008オープンソースのCMSをいろいろと探していたところ、DrupalがよさそうではないかとDrupal6をインストールしてみました。
DrupalはPacktという出版社が主催しているOpen Source CMS Awardの2007年総合1位に輝いたCMS。
Drupalは、総合部門とPHP部門とSocial Networking CMS部門の3つの部門のファイナリストとなって、1位、2位、2位の成績。
2つの部門で1位になることはできないルールなので、ほぼ完璧でしょう。
各部門のファイナリストと結果は、以下の通りです。
2007 Open Source CMS Award
Overall(総合):
1 Drupal
2 Joomla!
3 CMS Made Simple
* e107
* PHP-Fusion
Most Promising(リリースされて2年以内):
1 MODx
2 dotCMS
2 TYPOLight
* Nuke Evolution
* SilverStripe
Best PHP Open Source CMS:
1 Joomla!
2 Drupal
3 e107
* CMS Made Simple
* PHP-Fusion
Best Other Open Source CMS(PHP以外):
1 mojoPortal(C#)
2 Plone(Python)
3 Silva(Python)
* OpenEdit(Java)
* OpenCms(Java)
Best Open Source Social Networking CMS:
1 WordPress
2 Drupal
2 Elgg
* LifeType
* Moodle
Drupalのインストールに関するDreamHost固有の情報はこちらに詳しい。でもDrupal6向けでないのでちょっと違うところがある。
Drupal6.0をインストールして、しばらくするとすぐにセキュリティ上の問題があるとかでDrupal6.1にアップデートするはめに。アップデートの手順を見るとバックアップして、インストールし直しという感じ。
いろいろといじる前でよかったとも言えるけど、今後のアップデートがやや不安。
DreamHostでXOOPSその後
Saturday, December 1st, 2007XOOPS Cube Legacy 2.1.2で使うMySQLの文字コード照合順序は、eucjpms_japanese_ciではなく、ujis_japanese_ciが正しいみたい。各テーブルはeucjpmsで作られてしまっているから、ujisに変える必要がある。それでいろいろと調べて以下のようにしてみた。
% mysqldump -u user名 -p -h host名 --default-character-set=binary \ DB名 > dump.sql % sed 's/DEFAULT CHARSET=eucjpms/DEFAULT CHARSET=ujis/g' \ dump.sql > dump_ujis.sql % mysql -u user名 -p -h host名 < dump_ujis.sql
これでOKかな?
XOOPS 2.0.16a JPの方は文字化け自体解決していなかった。文字化けというか、DB内の日本語の値が全く入っていなかったりする。
XOOPS 2.0.16a JPはPHP5にも対応しているとのことだが、確実に動く方ということでPHP4に変更した。DreamHostでは、そのドメインでPHP4を使うかPHP5を使うかを選択できる。
MySQL5だと以下の対応が必要のようだ。
class/database/mysqldatabase.phpの connectメソッドの最後の箇所、trueを返却する前に以下の1行を追加する。
mysql_query("SET NAMES ujis", $this->conn);
これで文字化けしなくなった。
DreamHostでXOOPS
Thursday, November 29th, 2007今度はXOOPSをインストールしてみた。
XOOPS Cube Legacy 2.1.2とXOOPS 2.0.16a JPとどっちがよいのかよくわからんので、どっちも入れてみた。
そのまま入れるとどっちも文字化け。
MySQL の文字セットはUTF-8で、変えられそうもない。
問題は、MySQLの文字コード照合順序(Collation) 。
XOOPS Cube Legacy 2.1.2はeucjpms_japanese_ciにすれば解決したのだけど、 XOOPS 2.0.16a JPはeucjpms_japanese_ciでは駄目でujis_japanese_ciにしたら解決した。
※この情報は間違っています。その後の情報を参照して下さい。
あまり調べないで適当にやったので、これで本当によいのかどうかは怪しいけど、今のところちゃんと日本語で表示できてます。
XOOPS Cube Legacy 2.1.2とXOOPS 2.0.16a JPの文字コードの扱いがどう違うのか。eucjpms_japanese_ciとujis_japanese_ciがどう違うのか。
誰か詳しい人教えて。