Ubuntu 10.10のApacheのデフォルト設定を見てみた

普段は、最下層民PHP使いなんだけど、PerlCGIを少し動かさなければいけないということで、つまった。

Ubuntu10.10のNetbookEditionで、Linuxの勉強中です。Apacheは、apt-getでインストールしっぱなしだったので、(あ、家の中のネットワークにしか公開してないのでセキュリティ的には大丈夫だと。)この際、デフォルト設定を読みこんでみました。

apache2.conf

$ apache2ctl restart

とかで読まれるのは、基本的に「/etc/apache2/apache2.conf」このファイル。
なので、ScriptAliasとかどこになっているかなーとか探しながら読んでみた。
しかし、このファイル、いろいろIncludeしている。

202行目付近
# Include module configuration:
Include mods-enabled/*.load
Include mods-enabled/*.conf

# Include all the user configurations:
Include httpd.conf

# Include ports listing
Include ports.conf

Include conf.d/
227行目付近
# Include the virtual host configurations:
Include sites-enabled/

httpd.conf

まず、見慣れた「/etc/apache2/httpd.conf」を開いてみる。
・・・・空・・・・(笑)

httpd.conf」は、よく使われるので、あらゆるところにあるApacheの解説とか、自動処理とかに対応するためにIncludeしているのかしら??

ports.conf

次に「/etc/apache2/ports.conf」を開いてみる。

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
# This is also true if you have upgraded from before 2.2.9-3 (i.e. from
# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
# README.Debian.gz

NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
    # If you add NameVirtualHost *:443 here, you will also have to change
    # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
    # to <VirtualHost *:443>
    # Server Name Indication for SSL named virtual hosts is currently not
    # supported by MSIE on Windows XP.
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

ポート関連の設定は、ここに書いてねっていうことらしい。

sites-enabled/000-default.conf

最後にこれ。やっと目的のファイルにたどり着いた気がする。

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                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
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

って、おーい。なるほど。CGIは、「/usr/lib/cgi-bin/」に置いてねってことか。

Linux触れるようになってからPHPしか使ってないから、CGIの設置場所とかの作法もわからないし、とりあえず動けばいいので、このまま、目的のCGIスクリプトを「/usr/lib/cgi-bin/」に入れて、さくっと動作確認して・・・。ひと段落。

ただPerlCGI動かしたかっただけなんだけど、勉強になった!