Debian 5 に Apache、MySQL をインストール

  • 投稿日:
  • by
インストール後の設定でまた躓きました... まずは Apache2 から。インストールは簡単で、以下のコマンド一発です。
host:~# aptitude install apache2
といっても、OS のインストールの時点でウェブサーバーを一緒にインストールするようチェックしていれば、Apache2 がインストールされ、起動しているのでこの作業自体必要ないです。

で、ここからが問題。openSUSE のように(というか、openSUSE が Red Hat 系なのに Debian 系っぽい構成になっているのが異端。Novell の影響かも。)各設定がモジュール化されているので、まずは大本の設定を変更します。
host:~# vim /etc/apache2/conf.d/security
コメントアウトしている箇所がデフォルトの設定。で、コメントアウトの下の行に書いているのが、変更内容です。
<Directory /var/www/>
#       Options Indexes FollowSymLinks MultiViews
        Options Includes ExecCGI FollowSymLinks Indexes
#       AllowOverride None
        AllowOverride All
        Order allow,deny
        allow from all
</Directory>
続けて、以下の 1 行を最終行へ追加。
AddHandler cgi-script .cgi .pl
で、openSUSE の時に学習した a2enmod でユーザーディレクトリを有効化します。
host:~# a2enmod userdir
で、userdir.conf の内容を編集。
host:~# vim /etc/apache2/mods-enabled/userdir.conf
コメントアウトしている箇所がデフォルトの設定。で、コメントアウトの下の行に書いているのが、変更内容です。
<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root

        <Directory /home/*/public_html>
#                AllowOverride FileInfo AuthConfig Limit Indexes
                AllowOverride All
#                Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
                Options IncludesNoExec ExecCGI FollowSymLinks
                <Limit GET POST OPTIONS>
                        Order allow,deny
                        Allow from all
                </Limit>
                <LimitExcept GET POST OPTIONS>
                        Order deny,allow
                        Deny from all
                </LimitExcept>
        </Directory>
</IfModule>
Apache2 のインストールおよび設定は以上です。続いて MySQL をインストールします。
host:~# aptitude install mysql-server
一緒に DBI と DBD::mysql がインストールされるようです。
インストールが終わったら、設定ファイルを編集します。
host:~# vim /etc/mysql/my.cnf
端折って書きましたが、要は [mysqld_safe]、[mysqld]、[mysql] の各セクションに default-char-set を追加し、[mysqld] セクションの language を english から japanese に変更しただけです。
[mysqld_safe]
default-character-set = utf8

[mysqld]
#language       = /usr/share/mysql/english
language        = /usr/share/mysql/japanese
default-character-set = utf8

[mysql]
default-character-set = utf8
編集が終わったら、MySQL を再起動します。
host:~# /etc/init.d/mysql restart
今回は出てきませんでしたが、実は a2enmod / a2dismod 以外に、a2ensite / a2dissite なるコマンドがあるようです。
このコマンドは、Virtual Host を設定する際に、それぞれのサイトの設定をファイル単位でモジュール化することで、コマンド一発でそのサイトの設定の有効 / 無効を切り替えられるというものです。
今回は Virtual Host は設定しないので使う機会はありませんでしたが、多くのサイトを管理しているシステム管理者にとっては便利なのだろうと思いました。
参考にしたサイト