Hatena::ブログ(Diary)

Hacking My Way 〜 itogのhack日記 RSSフィード

2009-10-11

X Window System で ctrl caps 入れ替え

備忘録です。

X のバージョンは

Xorg -version

X Window System Version 7.1.1

です。


/etc/X11/xorg.conf の"InputDevice"セクションに

        Option      "XkbOptions" "ctrl:swapcaps"

を追加します。

こんな感じ。

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
        Option      "XkbModel" "jp106"
        Option      "XkbLayout" "jp"
        Option      "XkbOptions" "ctrl:swapcaps"
EndSection

ちゃんと設定できていれば、Xを再起動するとCtrlとCapsが入れ替わります。

2009-09-30

いろんな言語で 301 Moved Permanently をする方法

サイトのドメインを移転するときに、Googleなどの検索エンジンで推奨されている 301 Moved Permanently

をいろんな言語でやってみました。

.htaccessを使う

  • サイト全体をredirectする場合

redirect 301 / http://itog-lab.info/

  • ファイルを指定してredirectする場合

redirect 301 /hoge.html http://itog-lab.info/hoge.html


スクリプトを使う

スクリプトを使う場合はファイルごとの指定になります

phpの場合

<?php
header( "HTTP/1.1 301 Moved Permanently" );
header( "Location: http://itog-lab.info/" );
?>

perlの場合

#!/usr/local/bin/perl
print "Status: 301 Moved Permanently\n";
print "Location: http://itog-lab.info/\n";

rubyの場合

perlと同様でもいいけど、cgiクラスを使うとこんな感じ。

rubyだけ、ググってもサクっと出てこなかったなぁ。

#!/usr/local/bin/ruby
require 'cgi'
cgi = CGI.new
print cgi.header({ 'status' => '301', 'Location' => "http://itog-lab.info" })

ステータスコードをチェックする

ちゃんとコード301でリダイレクトされてるかはここでチェックできます。

http://web-sniffer.net/

2009-09-10

さくらのレンタルサーバにWordPressをインストールする

先日、さくらのレンタルサーバにWordPressをインストールしましたが、インストールが本当に簡単で感動したのでそのメモです。

公開ディレクトリ : ~/public_html

ドメイン : example.com

というような環境で、ドメイントップにWordPressを表示する場合を想定しています。


ダウンロード&展開

まずはここhttp://ja.wordpress.org/releases/からファイルをダウンロード

  • wordpress-2.x.x-ja.tar.gz

ウェブ公開しているディレクトリのトップで展開

cd ~/public_html
tar zxvf somewhere/wordpress-2.x.x-ja.tar.gz

シェルでの操作はこれで終わり。後はブラウザからWordPressのUIで設定します。

初期設定

ウェブブラウザでhttp://example.com/wordpressにアクセスします。

ファイルが見つかりません。インストールを開始するには wp-config.php ファイルが必要です。お困りでしたら「wp-config.php の編集」 を参照してください。ウィザード形式で wp-config.php ファイルを作成することもできますが、すべてのサーバーにおいて正常に動作するわけではありません。最も安全な方法は手動でファイルを作成することです。

「すべてのサーバーにおいて正常に動作するわけではありません」とあるので、できない場合はwp-config.phpを手で編集しましょう。

  • 「wp-config.php ファイルを作成する」をクリック
  • 「次に進みましょう!」をクリック
  • フォームにそれぞれ情報を入力します

データベース名 (アカウント名)

ユーザー名 (アカウント名)

パスワード (パスワード)

データベースのホスト名 (mysqlxxx.db.sakura.ne.jp) ※「この値は 99% 変える必要はないでしょう。」とのコメントがありますが、かえる必要があります

テーブル接頭辞 (お好みで)

  • 「作成する」をクリック
  • 「インストールを実行しましょう!」をクリック
  • フォームにブログタイトル、メールアドレスを入力
  • 「WordPress をインストール」をクリック

成功しました !

WordPress がインストールされました。もっと何か作業をしたかったですか ? がっかりさせてゴメンナサイ。これだけです !

いや、ほんとに簡単でしたね。

ユーザ名

パスワード

が表示されています。

  • 「ログイン」をクリックし、上記のユーザ名とパスワードでログイン。
  • パスワードを変更

ログインすると、丁寧に以下のようなお知らせが表示されます。

お知らせ: 現在使用しているパスワードはあなたのアカウント用に自動的に生成されたものです。より憶えやすいパスワードに変更しますか ?

はい、プロフィールのページを開いてください | いいえ。このお知らせの再表示も必要ありません。

  • 「はい、プロフィールのページを開いてください」をクリックしてパスワードを変更しておきましょう。

ルートディレクトリからアクセスできるようにする

以上で初期設定は完了。

http://example.com/wordpressでアクセスできますが、http://example.comにしたいですよね。


  • 設定→一般でブログのアドレスを変更 (URL)
http://example.com
  • 「変更を保存」をクリック
  • index.php を/home/user/www以下にコピーします
  • index.phpを編集します
require('./wp-blog-header.php');
→require('./wordpress/wp-blog-header.php');
  • うまくいっていれば、http://example.comからアクセスするとWordPressの画面が表示されます。

詳しくはGiving WordPress Its Own Directory « WordPress Codexを参照してください。


ほんとに簡単ですねー。

2009-07-01

さくらのレンタルサーバで意味不明なCGIエラー

さくらのレンタルサーバでrubyで書いたcgiが Internal Server Error になることがあります。

#!/usr/local/bin/ruby -Ku

print "Content-type: text/html\n\n"
print 'hello'

上記のコードをhoge.cgiとしてアクセスしたところ、正常にアクセスできましたが、

cp hoge.cgi hello.cgi

としてhello.cgiにアクセスしたところ Internal Server Error.

エラーになったファイルはブザウザで更新をしても、他のブラウザやPCからアクセスしてもダメ。

cp hello.cgi foo.cgi

としてfoo.cgiにアクセスしたエラーなし。

何度か連続アクセスはしたけど、せいぜい数回F5した程度。そもそも失敗するときはそのファイルへの一度目のアクセスでエラーになる。負荷がかかるわけでもないし、なんだろう?


何か知ってる方がいましたら情報下さい〜

2009-05-09

RubyをCGIとして使う @pages編

無料でRuby CGI 使えるとこないかなー、と思って見つけたレンタルサーバ。初期設定と雑感を記しておきます。

@pagesについて

無料のレンタルサーバ。広告は入りますが、多言語でのCGIをサポートしてるところが魅力。

登録

登録は特に難しいことはないと思うので、ここでは省略します。

設定

FFFTPの設定

よくある質問をみれば書いてありますが、見落とし勝ちな点を上げておくと、

  • 拡張タブを選択し、PASVモードを使うにチェックを入れる
  • 「ホストの設定」→「高度タブ」の「LISTコマンドでファイル一覧を取得 」にチェック

これをしないと、サーバ側のファイル一覧が表示されませんでした。

ファイルの設置

おなじみのHello Worldから。

以下の内容でファイルを作成します。

#!/usr/local/bin/ruby

print "Content-Type: text/html\n"
print "\n"
print "Hello World"
  • 拡張子を.cgiにする。.rbだとcgiと認識されない。
  • ファイルに実行属性を付加する。755にする。

これでOK

f:id:itog:20090511174555j:image:w400

問題点

いくつかの標準ライブラリのrequire文を書くと500 Internal Server Errorになってしまった。requireが失敗してるなら例外処理でrescueできそうだが、begin-rescueを書いてもInternal Server Error.

同じコードが他のレンタルサーバでは問題なく動いたので、@pages固有の問題と割り切ってあきらめました。標準ライブラリが使えないとなるとかなり辛いですね。sshで入れないし、ログを見る方法もないので、解析するのは難しいですね

ちょっとした確認&動かなかったらすぐあきらめ、という使い方なら可、という感じでしょうか。

あわせて読みたいブログパーツ テクノラティのお気に入りに追加する