う〜む・・・
さっそく Web 上で設定変更しようと使ってみると・・・
「これって、DirectoryIndex index.rb の設定が全然効いてないじゃん・・・???」
「最新」ボタンのリンク先が「http://www.netandfield.com/cgi-bin/tdiary/」になっているのだが、「attempt to invoke directory as script: /usr/local/share/apache/cgi-bin/tdiary/」というエラーが出て、HTTP エラー 403 - アクセス不可となる。
<Directory> ディレクティブの中では DirectoryIndex ディレクティブは使えないのかのお?
Apache のマニュアル(http://httpd.apache.org/docs-2.0/ja/mod/mod_dir.html)にも、特にそのへんの記述は無いが・・・
つーか、ScriptAlias の指定をしているディレクトリでは、何をどうしたところで、「ディレクトリをリクエスト(URL を / で終了)する」ということが許されてないという噂も。
なので、cgi-bin ではなく htdocs 以下にディレクトリ掘って、Options に +ExecCGI 指定するというのがやっぱ正解なのかも。
serv2# cd /usr/local/share/apache/htdocs
serv2# mkdir blog
serv2# cp -rp /usr/local/share/apache/cgi-bin/tdiary/* blog
serv2# cd blog
serv2# ls -la
total 154
drwxr-xr-x 10 root admin 512 Nov 3 21:14 .
drwxr-xr-x 10 root admin 512 Nov 3 21:14 ..
-rw-r--r-- 1 root wheel 55028 Nov 3 11:09 ChangeLog
-rw-r--r-- 1 root wheel 287 Nov 3 11:09 README
drwxr-xr-x 5 www wheel 512 Nov 3 20:20 diary
drwxr-xr-x 2 root wheel 512 Nov 3 11:09 doc
-rw-r--r-- 1 root wheel 478 Nov 3 11:09 dot.htaccess
drwxr-xr-x 2 root wheel 512 Nov 3 11:09 erb
-rwxr-xr-x 1 root wheel 2955 Nov 3 11:09 index.rb
drwxr-xr-x 6 root wheel 512 Nov 3 11:09 misc
drwxr-xr-x 5 root wheel 512 Nov 3 11:09 plugin
drwxr-xr-x 2 root wheel 1024 Nov 3 11:09 skel
drwxr-xr-x 4 root wheel 512 Nov 3 11:09 tdiary
-rw-r--r-- 1 root wheel 12718 Nov 3 17:02 tdiary.conf
-rw-r--r-- 1 root wheel 12657 Nov 3 11:09 tdiary.conf.sample
-rw-r--r-- 1 root wheel 38633 Nov 3 11:09 tdiary.rb
drwxr-xr-x 197 root wheel 3584 Nov 3 11:09 theme
-rwxr-xr-x 1 root wheel 2759 Nov 3 11:09 update.rb
として、Apache の httpd.conf も以下のように直す。
(キモは、htdocs 下のディレクトリを CGI 実行可能ディレクトリにして、ScriptAlias で指定された cgi-bin ディレクトリとは切り離したこと。これで、クライアントが、ディレクトリ名の最後に「/」を指定して DirectoryIndex を要求する動きに応えられるはずだが・・・。)
<VirtualHost www.netandfield.com:80>
ServerAdmin webmaster@netandfield.com
DocumentRoot /usr/local/share/apache/htdocs
ServerName www.netandfield.com
ErrorLog /var/log/apache/logs/www.netandfield.com/error_log
CustomLog /var/log/apache/logs/www.netandfield.com/access_log combined
ScriptAlias /cgi-bin/ "/usr/local/share/apache/cgi-bin/"
<Directory "/usr/local/share/apache/cgi-bin">
Options ExecCGI
</Directory>
<Directory "/usr/local/share/apache/htdocs/blog">
Options +ExecCGI
AddHandler cgi-script .rb
DirectoryIndex index.rb
<Files "*.rhtml">
deny from all
</Files>
<Files "tdiary.*">
deny from all
</Files>
</Directory>
</VirtualHost>
で、Apache の restart。
serv2# /usr/local/apache/bin/apachectl configtest
Syntax OK
serv2# /usr/local/apache/bin/apachectl restart
試しに使ってみる。
よっしゃ、OK。
|
|