さくらのレンタルサーバーにRuby on Railsをインストールする方法 その2

前回、さくらのレンタルサーバにRuby on Railsをインストールする方法でrubygemsとRuby on Railsのインストールができたので、こんどは試しに動かしてみます。

まずはRailsのアプリケーションのディレクトリを作成。場所はどこでもいいですが、webでみられないところにしてください。さくらのレンタルサーバーでいうと ~/www 以外ですね。のちほど、公開用のディレクトリだけ、~/www以下からシンボリックリンクを張ります。ここでは~/Rails以下にRailsのアプリケーションをまとめておくことにして、今回のテスト用のアプリケーション「test」(そのまま!)をその下におきます。

% cd
% mkdir Rails
% cd Rails
% rails test
      create  
      create  app/controllers
...(略)...
      create  log/development.log
      create  log/test.log
% ls -l
total 2
drwxr-xr-x  14 narak  users  512 Aug 22 13:03 test/
% cd test
% ls -l
total 34
-rw-r--r--  1 narak  users  8001 Aug 22 13:03 README
-rw-r--r--  1 narak  users   307 Aug 22 13:03 Rakefile
drwxr-xr-x  6 narak  users   512 Aug 22 13:03 app/
drwxr-xr-x  2 narak  users   512 Aug 22 13:03 components/
drwxr-xr-x  3 narak  users   512 Aug 22 13:03 config/
drwxr-xr-x  2 narak  users   512 Aug 22 13:03 db/
drwxr-xr-x  2 narak  users   512 Aug 22 13:03 doc/
drwxr-xr-x  3 narak  users   512 Aug 22 13:03 lib/
drwxr-xr-x  2 narak  users   512 Aug 22 13:03 log/
drwxr-xr-x  5 narak  users   512 Aug 22 13:03 public/
drwxr-xr-x  4 narak  users   512 Aug 22 13:03 script/
drwxr-xr-x  7 narak  users   512 Aug 22 13:03 test/
drwxr-xr-x  6 narak  users   512 Aug 22 13:03 tmp/
drwxr-xr-x  3 narak  users   512 Aug 22 13:03 vendor/

できた。できたら、いくつか設定を変更します。

まずはディレクトリとファイルのパーミッション関係。test/log と test/tmp はwebサーバー経由で起動されたrubyに書き込み権限がないといけません。したがって、o+wにしちゃう。-Rオプションを忘れずに。

% chmod -R o+w log tmp
% ls -l
total 34
-rw-r--r--  1 narak  users  8001 Aug 22 13:03 README
-rw-r--r--  1 narak  users   307 Aug 22 13:03 Rakefile
drwxr-xr-x  6 narak  users   512 Aug 22 13:03 app/
drwxr-xr-x  2 narak  users   512 Aug 22 13:03 components/
drwxr-xr-x  3 narak  users   512 Aug 22 13:03 config/
drwxr-xr-x  2 narak  users   512 Aug 22 13:03 db/
drwxr-xr-x  2 narak  users   512 Aug 22 13:03 doc/
drwxr-xr-x  3 narak  users   512 Aug 22 13:03 lib/
drwxr-xrwx  2 narak  users   512 Aug 22 13:03 log/
drwxr-xr-x  5 narak  users   512 Aug 22 13:03 public/
drwxr-xr-x  4 narak  users   512 Aug 22 13:03 script/
drwxr-xr-x  7 narak  users   512 Aug 22 13:03 test/
drwxr-xrwx  6 narak  users   512 Aug 22 13:03 tmp/
drwxr-xr-x  3 narak  users   512 Aug 22 13:03 vendor/

次は環境ファイルの設定。場所はtest/configの下の「environment.rb」です。ロードパスを追加するのと、環境変数GEM_HOMEの設定を追加。diffをとるとこんなかんじ。3行追加ですからviで編集するか、下のようなpatchをあてるか、どうにかしてください。もちろん「/home/narak」のところはご自分のホームディレクトリに変更してくださいね。

% diff -u config/environment.rb.org config/environment.rb
--- config/environment.rb.org   Wed Aug 22 13:20:58 2007
+++ config/environment.rb       Wed Aug 22 13:20:47 2007
@@ -1,4 +1,8 @@
 # Be sure to restart your web server when you modify this file.
+$LOAD_PATH.push("/home/narak/lib/ruby/site_ruby/1.8")
+$LOAD_PATH.push("/home/narak/lib/ruby")
+
+ENV['GEM_HOME'] ||= '/home/narak/lib/ruby/gem'
 
 # Uncomment below to force Rails into production mode when 
 # you don't control web/app server and can't set it the proper way

上記は、要するにインストールのところで~/.cshrcに設定した環境変数「RUBYLIB」と「GEM_HOME」ですね。Railsのアプリケーションがwebサーバ経由で動くときは、当然ユーザとは違うuidでうごきますから、
~/.cshrcで環境変数設定しても全然関係ない。だからこのconfig/environment.rbにかかなくちゃいけないってわけ。実は前の記事を書いたあと、すぐこの記事を書こうと思ったのだが、これでハマって時間がかかってしまった。
だいぶコードを読んだので、おかげさまでrubygemsに詳しくなりました ^^; GEM_HOMEめー。

config/environment.rbが終わったら次はpublic/.htaccessです。このpublicディレクトリが公開用のディレクトリになります。さくらのレンタルサーバーではOptionsは無効なので、これをコメントアウト
しておかないとエラーになっちゃいます。AddHandlerもいらないのでコメントアウト。

% diff -u public/.htaccess.org public/.htaccess
--- public/.htaccess.org        Wed Aug 22 13:35:07 2007
+++ public/.htaccess    Wed Aug 22 13:34:26 2007
@@ -1,7 +1,7 @@
 # General Apache options
-AddHandler fastcgi-script .fcgi
-AddHandler cgi-script .cgi
-Options +FollowSymLinks +ExecCGI
+#AddHandler fastcgi-script .fcgi
+#AddHandler cgi-script .cgi
+#Options +FollowSymLinks +ExecCGI
 
 # If you don't want Rails to look in certain directories,
 # use the following rewrite rules so that Apache won't rewrite certain requests

さー、これでいよいよ準備が整いました。webからみられる場所からtest/publicに向けてシンボリックリンクを張ります。今回は~/wwwの直下に「test」という名前でシンボリックリンクを作りました。こんなかんじ。

% ln -s $HOME/Rails/test/public $HOME/www/test

これで、http://narak.sakura.ne.jp/test/にアクセスすると下のような「Welcome aboard」画面が出ます。

welcome-aboard2.jpg

図1. Welcome abord

続いて「About your application’s environment」をクリックしてみます。

for-security-purpose.jpg

図2. About your application’s environment

図2のように「For security purposes, this information is only available to local requests.」と出ればRailsは正常動作しています。とりあえずパチパチ!

トラブルシューティング

上記の図1、図2のようにならなかった場合ですが、まず図1の画面が出ず、図3のように
「Internal Server Error」が出る場合。これはpublic/.htaccessにエラーがあると思われます。
ちゃんと「Options」をコメントアウトしたかどうかチェックしましょう。

internal-server-error.jpg

図3. Internal Server Error

次に図1の画面は出るのだが、図2のところで「Application error Rails application failed to start properly”」と出る場合(図4)。この場合は、config/environment.rbでENV[‘GEM_HOME’]がセットされていないと思われます。ちゃんとENV[‘GEM_HOME’](と$LOAD_PATH)の行を追加したかチェックしましょう。

application-error.jpg

図4. Application error

というわけで、いちおう動作できました。次回はデータベースの設定をして、簡単なアプリケーションでも作ってみましょう。さくらのレンタルサーバでRuby on Railsをうごかしてみたら…ヘ続く。

参考文献

  1. Ruby on Rails
  2. RubyGems Manuals
  3. Application Error – Rails application failed to start properly, Hoopla!, 2006
  4. RubyOnRails(さくらサーバ編)
  5. さくらのレンタルサーバにRuby on Railsをインストールする方法(その1), がんちゃんのブログ, 2007

さくらのレンタルサーバにRuby on Railsをインストールする方法


2008.5.10追記

rubygemsもRailsも新しいバージョンが出ており、インストールの手順が多少かわりましたので、それにもとづいた記事をかいております。アップデート版さくらのレンタルサーバーにRuby on Rails 2.0.2をインストールする方法をご覧ください。


6月にあった人工知能学会の全国大会でもまつもとさんが招待講演をしたりして、なにげにもりあがっているRuby on Railsですが、わたしもさくらのレンタルサーバでRuby on Railsしてみようとおもい、インストールしてみました。そのための手順をまとめておきます。インストールに当たっては参考文献[1]と[2]を参考にしました。

まずはrubyがはいっていることの確認。

% ruby --version
ruby 1.8.5 (2006-08-25) [i386-freebsd6]

もんだいありませんね。rubyを新規にインストールしているひとが多いようですが、rubyをインストールし直す必要は「ありません」。既に入っているものを利用可能です。ただし「environment.rb」というファイルに環境変数「GEM_HOME」を設定する必要があります。詳しくは

続編「さくらのレンタルサーバーにRuby on Railsをインストールする方法 その2」をあわせてごらんください。

次にrubygemsをインストールします。rubygemsはrubyのパッケージ管理システムみたいなやつです。むしろgemsはrailsのインストール手段として有名になってきたらしい。なるほど。で、インストール方法ですが、標準のインストール先は/usr/localのようですが、もちろんさくらのレンタルサーバーではそんなところには入れられないので、$HOME(=/home/hogehoge)に入れることにします。$HOME/lib/ruby/gemと$HOME/binにはいります。ディレクトリがない場合は作っておきます。

% mkdir ~/bin
% mkdir ~/lib
% mkdir ~/lib/ruby
% mkdir ~/lib/ruby/gem

/usr/localじゃなくて$HOMEを見るように環境変数を設定しておきます。~/.cshrcに以下の行を追加。

setenv RUBYLIB $HOME/lib/ruby/site_ruby/1.8:$HOME/lib/ruby
setenv GEM_HOME $HOME/lib/ruby/gem

.cshrcをセーブしたら% source ~/.cshrcなどとして環境変数をセットしておきます。

rubygemsをダウンロードして展開します。2007年8月現在の最新版は0.9.4です。展開先は~/srcの下あたりがいいでしょう。なかったらこの際だから作っておきましょう。

% mkdir ~/src
% cd ~/src
% ftp http://rubyforge.org/frs/download.php/20989/rubygems-0.9.4.tgz
% tar xvzf rubygems-0.9.4.tgz

gemsをインストールします。setup.rbを実行するとconfig, setup, installの順で勝手に実行されるのですが、下で述べる理由で今回は1ステップづつ手で実行します。まずはconfigです。インストール先は$HOMEなのでその旨指定します。

% cd rubygems-0.9.4
% ruby setup.rb config --prefix=$HOME

このあとはsetupしてinstallするのですが、このままだとうまくいきません。あまり追求していませんが、おそらくrubygemsのバグでgemsが入るlibのパスが、configのprefixで指定したやつにならないのね。しょうがないので修正します。configsするとできる「.config」というファイルをviかなんかで以下のように修正するか、sedでもかけるか、patchするかなんかして修正してください。6行ほど修正。

% diff -u .config.org .config
--- .config.org Sun Aug 19 19:50:15 2007
+++ .config     Sun Aug 19 19:51:40 2007
@@ -5,12 +5,12 @@
 mandir=$prefix/man
 sysconfdir=$prefix/etc
 localstatedir=$prefix/var
-libruby=/usr/local/lib/ruby
-librubyver=/usr/local/lib/ruby/1.8
-librubyverarch=/usr/local/lib/ruby/1.8/i386-freebsd6
-siteruby=/usr/local/lib/ruby/site_ruby
-siterubyver=/usr/local/lib/ruby/site_ruby/1.8
-siterubyverarch=/usr/local/lib/ruby/site_ruby/1.8/i386-freebsd6
+libruby=$libdir/ruby
+librubyver=$libdir/ruby/1.8
+librubyverarch=$libdir/ruby/1.8/i386-freebsd6
+siteruby=$libdir/ruby/site_ruby
+siterubyver=$libdir/ruby/site_ruby/1.8
+siterubyverarch=$libdir/ruby/site_ruby/1.8/i386-freebsd6
 rbdir=$siterubyver
 sodir=$siterubyverarch
 rubypath=/usr/local/bin/ruby18

「.config」を修正したら、setupしてinstallです。

% ruby setup.rb setup
% ruby setup.rb install

これでgemsがインストールできたはず。出来たら確認しよう。出来たばかりだとコマンドがコマンドサーチパス内にはいっててもみつからないので、実行前にrehashします。

% rehash
% gem -v
0.9.4

オッケーですね。ではいよいよRailsをインストールしましょう。以下のようにします。

% gem install rails --include-dependencies

1回めはパッケージの情報がとれなかったみたいで失敗しました。2回めはオッケー。–include-dependenciesオプションをつけると、Railsのために必要なパッケージもインストールしてくれます。成功したら$HOME/lib/ruby/gem/bin/のしたにrailsとrakeというコマンドが入っています。$HOME/binあたりへシンボリックリンクを張ってもいいけど、面倒なのでまるごとコマンドサーチパスに入れておきます。~/.cshrcを編集して$pathに$HOME/lib/ruby/gem/bin を追加。

set path = (/sbin…(略)…/usr/X11R6/bin $HOME/bin $HOME/lib/ruby/gem/bin)

出来たらsourceしてrehashしてrailsの確認。

% source ~/.cshrc
% rehash
% rails -v
Rails 1.2.3

できたー。けっこう簡単。かな?

続編「さくらのレンタルサーバーにRuby on Railsをインストールする方法 その2」では、Railsの動作確認をします。つづく。

参考文献

  1. [Ruby]さくらにrubygems0.9.4インストール, qw/Perる PHP 日誌/, 2007
  2. [Ruby]さくらにRailsインストール, qw/Perる PHP 日誌/, 2007
  3. シリーズ パッケージマネジメント, rubyist magazine, 2006
  4. ruby on rails

「場所」? — bloggerの日本語について

前から気にはなっていたのだが、そのままになっていました。blogger.comのブログのエントリの下のところにあるポストの時刻なんかが表示されているところ。

basho

図1.「場所」?

場所ってなんだ? ちゃんと設定したらポストした場所がでるのかなあ。東京とか、名古屋とか、パリとか? ポストするときに場所入れるところなんかあったかな? などといろいろ悩んでいたのだが実は英語で表示させてみると…

at

図2. 「at」

「場所」は「at」の翻訳だった! 驚きの結果 ^^;; このブログも「at」になおしておいた。この位置で日本語の翻訳は思いつかないので…^^;; 他の西洋の言語だとこれがかえられると便利なんでしょうねえ。日本語は構造がちがうから無理だ。

fastladderのkeyboard shortcutについて

光速を超えたアグリゲータFastladderですが、マウスじゃなくて、キーボードショートカットをつかって操作するとさらにスピードアップらしい。参考文献[1]。これはFastladderじゃなくてlivedoor Readerの記事だけど、たぶんおなじ。キーボード操作だとかってに先読みしてくれるんだって。へー。これは使わない手はないですよね。

そのキーボードショートカットですが、右ペインの左上に念入りに「?」マークがついたアイコンをふたつもつけたリンクがあって、それをクリックすると画面下にショートカット一覧が出てきます。「compact」だと次の6つが表示されます。

Next feed: s
Previous feed: a

Next item: j
Previous item: k

Pin: p
Open pinned items: o

じゃー、これだけおぼえればいいのかなー、というと、それがそうでもない。s/aでフィードを移動すると、新規(未読)記事のないフィードにも移動してしまうのだ。うぜっ!

どうすればいいのかというとだ、ショートカット一覧が出ているところの下の端に出ている「More…」というリンクを押してみると、もっとたくさん出てきます。しかしところでこの「More…」の「…」は使い方間違ってるだろ。ここには「…」はいらんぞ。

で、ショートカットキーがいっぱい出てくるけど、いちばん重要なのはこれだ。

Move to the top of unread feed: w

というわけで、「w」キーでフィードのリストの一番上から順番に、未読記事があるフィードを表示しながら、「j」/「k」キーで記事の間を行き来して、ときどき長い記事で1画面に収まらないときは、「Space」キーでスクロールするのがいいですね。これマチガイナイ。おためしあれ!

参考文献

  1. livedoor Readerパーフェクトガイド, livedoorディレクターBlog, 2007

bloggerにadsenseコードを張る

このブログにもアドセンスのコードを張ってみました。普通にHTMLのコードをテンプレートの中に貼付ければいいのですが、今回は個別記事の最後、コメントの前に表示したい。普通のところに(?)いれるだけなら、テンプレートのページ要素で新しい要素を付け加えればいいんだけど。

個別の記事のページかどうかの判定文は<b:if cond=’data:blog.pageType == “item”‘>と</b:if>らしいです。このなかにadsenseのコードを書けば良い。場所はブログポストの直後です。テンプレート中でブログのポストの本文を表すタグは<data:post.body/>のようです。これのあとぐらいにいれればよろしい。このあたりはつかってるテンプレートごとにちがうので各自検索してー。

あともうひとつ注意点。blogger betaになったあと、テンプレート中のコメントが削除されるようになったようです。ですから、アドセンスのコード中の<と>は&lt;と&gt;と書かなくちゃいけません。これを知らなくて、5分ぐらい深刻に悩みました ^^; あいやていうか、まえにもしたはずなんだけどね…すっかり忘れてたのでここにメモしておきます。

ちなみにこの広告の背景色はいま流行りのFFF9DDです。ふふふ。

参考文献

  1. AdSense 広告をつけよう, クリボウのBlogger入門, 2006

bloggerで「Links to this post」(バックリンク)を表示する

突然ですが、bloggerにはブログでよくある「トラックバック」の仕組みがありません。そのかわり、「バックリンク」という仕組みが装備されています。詳しくは参考文献[1]が詳しいです。「バックリンク」とは、簡単に言うと、そのエントリにむけて張られたリンクの一覧を表示する仕組みです。この仕組みが働くためには、リンクするほう、されるほうの両方がWeblogs.comへ Pingをうたなくてはいけません。BloggerのデフォルトではPingを打つようになっています。グーグルさんはWeblogs.comへのPingを調べてBlog Searchにデータをインデックスして、リンクが張られていることを把握するみたいです。事実上Bloggerだけなのかなー、とおもったけど、けっこういろいろなサイトが表示されていますね。Weblogs.comっていうのは、よく使われているもの? なの?

参考文献[2]をみると、記事の最後に「Links to this post」というリンクがあって、記事個別のページにとべるようになっています。そこにはその記事へのリンクをつけているサイトの一覧が出ていますね。たとえばKirkland does the Ranger Relayという記事の最後など(図1)。

linkstothispost.png

図1. The Official Google Blogの「Link to this post」

気がついたら、このブログにはそのフィールドが表示されていないようだったので、表示されるように設定を変えてみました。やり方は以下の通り。

まず「更新ping」を打つように設定。これはわたしのところでは「はい」になっていました。「設定」タブの「公開中」で「更新の通知を送信」を「はい」にします。

ping.png

図2. 「更新ping」を打つ設定

つぎに記事の個別のページで「Links to this post」を表示するための設定。これがオフになっていました。「設定」タブの「コメント」で、「バックリンク」を「表示」にします。

backlink-blogger.png

図3. 個別記事で「バックリンク」を表示する設定

これだけだと、記事ごとのページに、そこへのリンクを張っているページ一覧がでますが、記事の一覧のページ(トップページなど)のところでは出てきません。これは別の設定があります。

「テンプレート」タブの「ページ要素」で、「Blog Posts」の「編集」を押します。

template.png

図4. テンプレートで「編集」

すると図5のようなウインドウがあらわれるので、「この投稿へのリンク」というのにチェックを入れます。するとしたのレイアウトのプレビューのところにその項目があらわれます。これはマウスでつかんで順番を変更可能です。

linkstothispost-sum.png

図5. サマリーページで「バックリンク」を表示する設定

というわけで、無事バックリンクが表示されるようになりましたー。もし、このブログにむけて作られたバックリンクがあれば、だけど! ^^;

….と思ったら、サマリーページで「Links to this post」というリンクが表示されていないっぽい。使っているテンプレートは「minima lefty」なのですが、このテンプレートのHTMLをみてみたらどうもそれを表示するためのコードが入ってないような…ふつうのminimaには入っているんだけどねえ。めんどうなのでこれでいいことにしよう ^^; 気が向いたらテンプレート直すかも。でもねえ、bloggerのテンプレートって、汚いんだよねえ…みるのもいやー ^^;

参考文献

  1. トラックバック, クリボウのBlogger入門, 2006
  2. the official Google blog
  3. Weblogs.com

yetibot@naver.com対策

先日robots.txtを試してみたYetiさんですが、結果から先に書きますと、まったくダメでした。理由は(1)Crawl-delayはまったくみていないみたいで、クロールの間隔はまったく変わらず (2) cssを読みにくるひとは”Yeti”ではないので、robots.txtは関係ないみたい、ということでぜんぜんダメ。

というわけでなにかちがうことを考えないといけないのですが、そのまえにまず現状を確認しておきましょう。例えば昨日のアクセスパターンは次のようなかんじ。


....
61.247.217.33 [30/Jul/2007:03:02:06 /tags/%E3%83%81%E3%82%A7%E3%82%B9
61.247.196.54 [30/Jul/2007:03:02:17 /css/stdstyle.css
61.247.217.37 [30/Jul/2007:03:02:31 /words/dead/rock
61.247.196.35 [30/Jul/2007:03:02:41 /css/stdstyle.css
61.247.196.26 [30/Jul/2007:03:02:54 /css/stdstyle.css
61.247.217.37 [30/Jul/2007:03:02:56 /tags/geena
61.247.196.54 [30/Jul/2007:03:03:12 /css/stdstyle.css
61.247.217.36 [30/Jul/2007:03:03:23 /words/dead/girls
61.247.196.39 [30/Jul/2007:03:03:38 /css/stdstyle.css
61.247.217.33 [30/Jul/2007:03:03:59 /words/%E3%83%91%E3%83%83%E3%82%BD/cm
61.247.196.37 [30/Jul/2007:03:03:59 /css/stdstyle.css
61.247.217.35 [30/Jul/2007:03:04:48 /words/youtube/%E3%83%93%E3%83%AA%E3%83%BC%E3%82%BA
61.247.217.37 [30/Jul/2007:03:04:49 /words/%E3%83%91%E3%83%83%E3%82%BD/%E4%B8%AD%E5%8F%A4%E8%BB%8A
61.247.196.40 [30/Jul/2007:03:04:50 /css/stdstyle.css
61.247.196.54 [30/Jul/2007:03:04:54 /css/stdstyle.css
61.247.217.35 [30/Jul/2007:03:05:01 /words/yahoo!/japan
...(以下略)...

7/30 午前3時から7/31午前3時までの24時間で受けた全リクエスト10796中、6804がYetiさんです。占有率63%。1分あたり4.7リクエスト。本体とcssとを組にして読んでいきますから1分あたり2.36リクエストx2ということですね。baiduさんですら2分に1回なのにねえ…よみすぎー。

というわけでまず、cssを禁止にしちゃう。Naverからcssを読みにきているIPアドレスの一覧は以下の通り。


  65 61.247.196.11
  82 61.247.196.13
  86 61.247.196.14
  59 61.247.196.15
 107 61.247.196.17
  84 61.247.196.18
  90 61.247.196.19
 100 61.247.196.20
  87 61.247.196.21
  63 61.247.196.24
  92 61.247.196.25
  82 61.247.196.26
 111 61.247.196.27
 105 61.247.196.28
  42 61.247.196.29
  72 61.247.196.30
  89 61.247.196.31
 100 61.247.196.32
 113 61.247.196.33
 112 61.247.196.35
  84 61.247.196.36
  78 61.247.196.37
  64 61.247.196.38
 100 61.247.196.39
  56 61.247.196.40
 105 61.247.196.43
  90 61.247.196.44
 118 61.247.196.46
  69 61.247.196.47
  97 61.247.196.48
  96 61.247.196.49
  98 61.247.196.50
  80 61.247.196.51
  81 61.247.196.53
  56 61.247.196.54
  83 61.247.196.55
  55 61.247.196.56
 107 61.247.196.57
  97 61.247.196.58
  74 61.247.196.59

おおすぎー ^^;; 先頭の数字は昨日1日ぶんのアクセス回数です。ぱっと見、61.247.196.*からの
ようですからそのように指定しても
いいですが、それだとNaverが使うIPアドレスをぜんぶ網羅できていないかもしれませんね。ここはひとつ、IPアドレスの割当をちゃんと調べてみましょう。whois してみます。


% whois 61.247.196.58
...(中略)...
inetnum:      61.247.192.0 - 61.247.223.255
netname:      NHN-NET
descr:        NHN
country:      KR
...(以下略)...

NHNっていうのは、Naverを運営している会社の名前です。61.247.192.0 – 61.247.223.255の範囲がNHNに
割り当てられていることになっていますね。念のため、参考文献[1]をみてみます。ここでは国別の割り当てIPアドレスリストがぜんぶみられます。便利ですね。韓国のリストを見ると、上記に該当するのは「61.247.192.0/19」これですね。これをまるごとNHNがもらってつかってるみたい。ですから、
css/.htaccessに次のように書きます。


order allow,deny
allow from all
deny from 61.247.192.0/19

さらに本体のアクセスも制限しちゃう。本体にアクセスに来ているのは以下のIPアドレス。


 717 61.247.217.33
 673 61.247.217.34
 637 61.247.217.35
 663 61.247.217.36
 685 61.247.217.37

同じように、先頭の数字は昨日1日のアクセス回数です。こっちはぜんぶ禁止にするのは
つまらないので(?)、5兄弟の4人だけ禁止にしちゃう。/ の .htaccessにこう書いておく。


# reject naver kids
order allow,deny
allow from all
deny from 61.247.217.33
deny from 61.247.217.34
deny from 61.247.217.35
deny from 61.247.217.36

これで有効なページ読み出し回数が1/10になるはず。ただアクセスそのものがなくなるわけじゃなくて、
アクセスに対して403(Forbidden)が返却されるようになるだけなので、Yetiさんが気にせず読みに
きまくったらログ上はうざいことには変わりないですね。ただ、
例のサイトはアクセスされたページをDBにキャッシングして
いるので、あまりガンガンアクセスにこられてもこまっちゃう。あんまりアクセスがないのも困るけど。
その点からは1/10ぐらいで丁度いいかも ^^;

参考文献

  1. Blackholes.us

yetibotの再来

先日の記事を書いてrobots.txtを設定したあと、ぱったりこなくなっていたyetibot@naver.comさんですが、robots.txtの制限を外しておいたかいあって(?)、25日の朝9時頃から活動を再開したようです。例のサイトへのアクセスが25日の朝9時から26日の朝3時までで4247アクセスでした。そのうち約半数の2125アクセスがcssファイルです。例によって。

今回はいろいろ実験してみたいので、素直にはじくのはやめて、robots.txtに次のように書いてみました。


User-agent: Yeti
Disallow: /css/
Disallow: /img/
Crawl-delay: 180

User-agent: Baidu
Disallow: /css/
Disallow: /img/
Crawl-delay: 180

User-agent: *
Disallow:

Crawl-delayはA Standard for Robot Exclusionには含まれていないようですが、ask.comやYahoo!のボットはサポートしているようです。参考文献[2]によるとYetiさんはCrawl-delayを理解できないようですが、まあいちおうわたしも試してみたいので、書いてみました。あとはcssを毎回(!)読みにきてうるさいので、これも禁止に。イメージファイルは読みにきてはいないけど、念のため。

ついでに(?)Baiduさんも指定してみた。現在のところ、Baiduspiderさんはコンスタントに2分に1アクセス、1時間に30回x24時間=720アクセス程度の「良識的」アクセスです。とりあえず間隔を3分にしてもらえるかどうかテストのため加えてみました。

さあどうなるかなー?

参考文献

  1. A Standard for Robot Exclusion, robotstxt.org
  2. 噂のBaiduとNaverのクローラはwikiがお好き, blog@browncat.org, 2007

NHKスペシャル「グーグル革命の衝撃」にでてくるお兄さんはだれ?

今年の1月にNHKスペシャルで「グーグル革命の衝撃」という番組を放送していました。わたしは録画してみたのですが、まあなんというか、番組自体はNHKっぽい予断あふれる無難な構成で、あまり面白くありませんでした。

その中で、大学を出たけど就職活動もしないでアドセンスからの収入でくらしているというお兄さんが出てきます。「今月送られてきた小切手さ」といって$7500ぐらいの小切手をみせてくれます。これをきゅうに思い出して、どういうひとで何のサイトなのかなー、としりたくなったのでちょっと調べてみた。画面で見た感じでは携帯電話のサイトみたいだったけど。

で、お兄さんのジョナサンゲールズさんのページ。えらく簡素ですが、Aboutをみると、携帯電話のサイトはMobile Trackerというやつみたい。もっとカタログチックなサイトかと思ったら、そうでもなくてブログみたいな感じですね。alexaのトラフィックランクで70,000位ぐらい。あと、アドセンスがついていそうなサイトはMac MercというMacのサイトで、トラフィックランク17万位。これぐらいみたいだけど、これでアドセンスの広告料月7500ドル? うーん。

参考文献

  1. Mobile Tracker
  2. Jonathan Gales

blogger + feedburnerにリダイレクトでgoogle sitemapがおかしくなる件

blogger.comでフィードをリダイレクトできるようになったというので(参考文献参照)、わたくしもさっそく設定しました。
はじめはfeedburner.comを使ってたのですが、「日本語が化けることがあるよ」という話をコミミにはさんだので、feedburner.jpに変更しました。うまくいってるかんじ。シメシメ。フィードを何人ぐらい読んでるかわかるし、いいよね。

しかし、今日、何気なく見てみるとgoogle sitemapでエラーが出ている。

sitemap-error.jpg

燦然とカガヤクERRORの赤文字。うーん? エラーの内容はというと、

Line: 2
URL not allowed
This url is not allowed for a Sitemap at this location.
URL: http://feeds.feedburner.jp/iwatakenichi?m=26
Date found: Jul 18, 2007

こんなかんじ。blogger.comはサイトマップを作ってくれないので、サイトマップのかわりにフィードをgoogle webmaster toolsに送っているのだ。そのフィード代わりに使っているサイトマップが、blogger.comが提供するものからfeedburner.jpが提供するものにかえたらエラーが発生。どうも記事についているURLがちがうのがいけないらしい。feedの記事をクリックしたときに、feedburner経由にさせて、どれがクリックされたかみるための機能があり、そのために記事のURLがfeedburnerになっている。これがblogspot.comのままじゃないといけない。そういえばなんかそんな機能をONにした記憶が…

どこでOFFにするんだ! これしばし悩みました。Feedburnerの「設定」みたいなところかなーとおもうでしょう。そこじゃないのよ。大変フクザツなので(おおげさ)写真で説明いたします。

feedburner01.jpg

まず該当するフィードの「レポート」を見ている状態で左に出ている「サイト集計」というリンクを押します。そのあと右に出るダイアログみたいなのの中の「いますぐサイト集計機能を有効にしましょう」というリンクを押します。左の「サイト集計」の下あたりに出ている「ここから設定することができます」も似ていますが、これではありません。

feedburner02.jpg

そうしたら右に設定のダイアログが出ますので、「記事クリック数(クリックスルー集計)」をOFFにします。そして、したの「保存」ボタンを押す。これで完了です。もし、この画面がでなくて、

feedburner03.jpg

こっちの画面になっちゃった方は、左の「ここから設定することができます」を押しちゃったひとです。まちがい! 似てるけど、こっちは有料版の機能の設定みたいで、これを「保存」するとクレジットカードいれてください、とかでてきちゃいます。上に戻ってやり直してくださいねー。

参考文献

  1. FeedBurner Integration for Blogspot Blogs, Burning Questions – The official FeedBurner weblog, 2007
  2. Blogger から FeedBurner へのリダイレクトが可能に, クリボウのBlogger Tips, 2007