CodingFirst

C言語、Perl、JavaScript、最近はPythonも。出来上がったものより、プログラムを書くことが好き。あと、スイーツ。

スポンサーサイト

  • このエントリーをはてなブックマークに追加
  • web拍手 by FC2
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

UbuntuにApacheを入れる(2) ~CGIを使えるように

  • このエントリーをはてなブックマークに追加
  • web拍手 by FC2

UbuntuにApache2を入れる、その2。
cgiを動かすとこまで

前回はこちら

とりあえず、index.htmlを作るのがめんどくさいので、 Indexesでディレクトリを表示する。

$ w3m -dump http://localhost/me/
Forbidden

You don't have permission to access /me/ on this server.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Apache/2.2.14 (Ubuntu) Server at localhost Port 80

Forbiddenが返ってくるので、エラーログをみる。

$ tail -1 /var/log/apache2/error.log
[Sun Mar 20 16:57:44 2011] [error] [client 127.0.0.1] Directory index forbidden by Options directive: /home/username/public_html/

Optionsが足りてないか。前回、.htaccessを許可しといたんで、

$ cat > .htaccess 
Options Indexes FollowSymLinks

$ w3m -dump http://localhost/me
Index of /me

[ICO]       Name         Last modified   Size Description
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[DIR] Parent Directory                      -  
[TXT] hello.html       20-Mar-2011 03:28   32  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


Apache/2.2.14 (Ubuntu) Server at localhost Port 80

よし。
apache2.confで禁止してるので、.htaccessは見えなくなっている。
次は、CGI。

$ cat > hello.cgi 
#!/usr/bin/perl
print "Content-Type: text/plain\n\nhello\n";
$ chmod a+x hello.cgi
$ curl http://localhost/me/hello.cgi
#!/usr/bin/perl
print "Content-Type: text/plain\n\nhello\n";

CGIがそのまま表示されてしまう。
.htaccessを書き換える。

$ cat > .htaccess 
Options Indexes FollowSymLinks ExecCGI
AddHandler cgi-script .cgi .pl
$ curl http://localhost/me/hello.cgi
hello

よし、動いた。
もしうごかなかったら error.log を見て原因をググるべし。

さて、所感。

Apacheのインストールは、ひさびさにやったけどいろいろ変わっててびっくり。
ディストリ毎に違うのかな? まぁ...いいけどさ。
Apacheの設定は比較的簡単なんだけど、慣れないころはよくハマったので、
1つずつ確かめながらの作業風にしてみたんで、誰かの役にたてばいいな。

CGIだけど、当初 /var/www を public_html にシンボリックリンクはって、
CGI使う予定だったんだけどやめた。
動かなくてエラーログ見たらExecCGIが無効になってて、
/etc/apache2/sites-available/default で無効にしてるのが原因で、
やっかいな事に /etc/apache2/apache2.conf の記述的に最後だから、
書き換える必要が出たため。

書き換えるとサーバが変わったりする度にハマりやすいので、
userdir を使うのをおすすめする。
私がそうしなかったのは、blogに書く都合上、
ユーザ名とかそういうのを間違って出しそうだったんで Alias にしました。
(別に恥ずかしい名前つけてるわけではありません)




ApacheセキュリティApacheセキュリティ
(2005/10/17)
Ivan Ristic

商品詳細を見る

Apacheポケットリファレンス (POCKET REFERENCE)Apacheポケットリファレンス (POCKET REFERENCE)
(2010/04/10)
WINGS プロジェクト 高江 賢

商品詳細を見る
スポンサーサイト


★☆★コメント★☆★

コメントの投稿

Name
Subject
Mail
URI
Comment
Pass
Secret 管理者にだけ表示を許可する

トラックバック

http://iyukki.blog56.fc2.com/tb.php/128-34c7065b

 | HOME | 

Search

Recent Entries

Foot Print



Categories

Monthly

Recent Comments

Recent Trackbacks

Profile

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。