rubyやpythonで書いたCGIを動かすためにやっぱりローカルでもテスト環境がほしいのでMacで使えるhttpdを探したら、BSDが元になってるのではじめからApacheが入ってるらしい。
「システム環境設定」→「共有」→「Web共有」をONにするだけでホームフォルダのしたに「サイト」というフォルダが自動的に作成されて、そこに http://localhost/~user/ でアクセスできるようになる様子。こりゃ楽だ。ひゃほーい。
全体の公開フォルダは
/Library/WebServer/Documents
/Library/WebServer/CGI-Executables
の2つになるらしい。
とはいえこんなフォルダを使いたくないのでホームフォルダの下でCGIが実行できるように変更します。
sudo vi /private/etc/apache2/users/[ユーザ名].conf
で設定ファイルを開いて
<Directory "/Users/[ユーザ名]/Sites/"> Options All AllowOverride All Order allow,deny Allow from all AddHandler cgi-script .cgi .rb .py </Directory>
のように書き換えて、
「Web共有」の設定を一旦切ってまたONにしてApacheを再起動。
cd Sites
vi test.rb
で「サイト」フォルダの下に新しいファイルを作って、その中に
#!/usr/bin/ruby
print "Content-Type: text/plain\n\n"
print "hello"
と書いて
chmod 705 test.rb
でファイルを実行可能にしてブラウザで
http://localhost/~[ユーザ名]/test.rb
で test と表示されれば成功です。
何故か途中から敬語になってますが、
参考 Apacheを起動する - Mac OS X LeopardでAMP環境を構築しよう - Apache, MySQL, PHP, Perlで作る開発環境 - futomi’s CGI Cafe
http://www.futomi.com/lecture/macosx/apache.html
見た目が素敵なURLに変えるための mod_rewrite を xampp で使う方法を解説します。
mod_rewriteでできること ここに検索でたどり着いた人は Apacheのモジュール mod_rewrite で何ができるかはしってると思いますが念のために例を上げておくと
http://localhost/index.php?user=foo&name=bar
と書く所を
http://localhost/foo/bar.html
と書ける機能です。
foo/bar.html にアクセスすると内部で
index.php?user=foo&name=bar が呼び出されるわけです。
Xamppの設定方法 xampp は既にインストールして使ってる前提で話を進めますのでインストールがまだの方はインストールしてからまた来てください。
まずApacheの設定ファイル http.conf を開きます。 自分の環境では[ X:\sugarsync\bin*xampp\apache\conf\httpd.conf* ] にありました。
モジュールがコメントアウトされてないか確認する #LoadModule rewrite_module modules/mod_rewrite.so のようになってたら “#” を取って
#LoadModule rewrite_module modules/mod_rewrite.so とします。
リライトの規則を書く。 http.conf にどう表示を転送(書き換え?)するか RewriteRule を記述します。
<IfModule rewrite_module> # bar.htmlを作りドキュメントルートに置いて # http://localhost/foo.html でアクセスできるか確認しましょう。 RewriteEngine On RewriteRule /foo.html /bar.html </IfModule> xampp を再起動 で完了 http://localhost/foo.html にアクセスして bar.html の内容が表示されればOK!
それでも動かない場合 …とここまではGoogleで [Xampp mod_rewrite] で検索すると解説されてるサイトいっぱい出てきたんですが上記の設定だけではうちの環境では動きませんでした。