 | 10日でおぼえる Perl/CGI 入門教室 第2版 (10日でおぼえるシリーズ) (2005/09/06) 高橋 大吾
商品詳細を見る WindowsでActivePerlを使うことを前提に書かれている。 Linuxユーザーはapache2のインストール・設定についてネットで調べるがある。 特にubuntuユーザーはapacheの設定が独特なので注意が必要。 コード自体はWindows/Linux共通なので心配なし。 CGIだけではなくPerlの入門書も兼ねているが、一冊でもいいからPerl自体の入門書を先に読んでおいた方がより内容を理解しやすいと思う。
|
[補足]
ubuntu9.04でのapache2の設定については私が書いた
このエントリーを参考にしてください。
サーバーエラーになるときはファイルのパーミッションを確認してください。
Perl自体の入門書としては
この本をお薦めします。
SciTEでもvimみたいにH,J,K,Lキーでカーソルの移動がしたくてキーバインドのカスタマイズを調べてみました。
SciTEにはvimのようなモードがないので、Ctrlキーと組み合わせて使うことにします(これだとEmacsみたいだけどね)。
SciTEのキーバインドをカスタマイズするには、
Options->Open User Options File へと進んで、ファイルの空いている所に以下のような形式で書き込みます。
user.shortcuts=\
key+key|command|\
key+key|command|\
・
・
・
key+key|command|
使いたいキーの組み合わせ(複数の場合は'+'でつなぐ)を書いた後で、
コマンドを’|’(縦線)で挟みます。
使用できるコマンドの一覧はここを見てください。
各行の改行の前に空白などの余計な文字があるとちゃんと動いてくれません。
基本的なキーバインドの設定例を書いておきます。
これだけでも結構使いやすくなりました。
#2304 カーソルを左へ移動
#2306 右へ移動
#2302 上へ移動
#2300 下へ移動
#2455 行をコピー
#2337 行を切取り
#2179 貼り付け
#2314 行末へ移動
#2176 Undo
#IDM_EXPAND コードの折り畳み・展開
user.shortcuts=\
Ctrl+h|2304|\
Ctrl+l|2306|\
Ctrl+k|2302|\
Ctrl+j|2300|\
Ctrl+y|2455|\
Ctrl+d|2337|\
Ctrl+p|2179|\
Ctrl+e|2314|\
Ctrl+u|2176|\
Ctrl+t|IDM_EXPAND|
これを保存してSciTEを再起動すればキーバインドが有効になっているはずです。
まず、Apache2をインストールします。
>sudo apt-get install apache2
http://localhost/にアクセスして、 It works! と表示されればインストール成功。
次に、設定ファイルを編集していきます。
ubuntuにApacheをインストールした場合、設定ファイルが細かく分かれているので少し面倒くさいです。
まず、/etc/hosts を編集します。
sudo vi /etc/hosts
127.0.0.1 localhost
1270.1.1 ターミナルでコマンド'hostname'を実行して表示される名前
↓
127.0.0.1 www.example.com localhost ターミナルでコマンド'hostname'を実行して表示される名前
次に、外部からアクセスできないように /etc/apache2/ports.conf を編集。
sudo vi /etc/apache2/ports.conf
Listen 80
↓
Listen 127.0.0.1:80
続いて、/etc/apache2/mods-available/mime.conf を編集(該当個所のコメントを外す)
sudo vi /etc/apache2/mods-available/mime.conf
#AddHandler cgi-script .cgi
↓
AddHandler cgi-script .cgi
今度は、/etc/apache2/site-enable/000-default を編集します。
>sudo vi /etc/apache2/site-enable/000-default
< Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
↓
< Directory /var/www/>
#Options Indexes FollowSymLinks MultiViews
Options Includes ExecCGI FollowSymLinks Indexes
#AllowOverride None
AllowOverride All
Order allow,deny
allow from all
</Directory>
さらに、SSIを有効にするのにすぐ下の< Directory "/usr/lib/cgi-bin">の Optionsに Includes を追加
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
< Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
↓
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
< Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch +Includes
Order allow,deny
Allow from all
</Directory>
次に、一般ユーザになって、ホームディレクトリに public_html というディレクトリを作る。
このディレクトリにCGIファイルを保存していきます。
>mkdir public_html
/etc/apache2/mods-available/userdir.conf を編集。
>sudo /etc/apache2/mods-available/userdir.conf
< Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
↓
< Directory /home/*/public_html>
#AllowOverride FileInfo AuthConfig Limit Indexes
AllowOverride All
#Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Options IncludesNoExec ExecCGI FollowSymLinks +Includes
こうしておくと、ブラウザから http://localhost/~ユーザー名/*.cgi とすれば一般ユーザのままでcgiを実行できて楽です(ユーザー名の前のチルダに注意!)。
そうしてから、
>sudo a2enmod userdir.conf
とする。
全部終わったらApache2を再起動する。
>sudo /etc/init.d/apache2 restart