俺だけのために Ore! Tips!

tDiary のインストール先ディレクトリを変更する

2004年11月03日 作業

う〜む・・・

さっそく 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

試しに使ってみる。

tdiary 起動

よっしゃ、OK。

前ページに戻る


Copyright (C) 2004 S.Maaasamasa.