学生が、Raspberry-PiでCGIを使いたいらしいけど、設定の方法がDebianは一癖あるので、 説明資料を記述。
Debianの原則
Debianでは、基本的な設定ファイルは極力自分で触らない主義。
apache2 も同様で、便利なモジュールも設定ファイルは、必要なものは モジュール毎にインストール時に読み込ませて、触らない主義。
このための設定があって、 CGIとかPHPといったものは、モジュールで管理。
DebianのApache2設定ファイルの考え方
一般的なApacheでは、設定は、/etc/apache2/apache2.conf とか、 /etc/apache2/httpd.conf に記述する。 しかし、いくつものモジュールを使うと、これらの設定ファイルが、 巨大で理解困難になってしまう。
このためDebianのapache2 では、/etc/apache2/*-enabled で対応する。 /etc/apache2/apache2.conf には、以下のような行が書いてあり、 *-enabled配下の設定ファイルをすべて読み込んで起動する。
(( /etc/apache2/apache2.confの一部 )) IncludeOptional mods-enabled/*.load IncludeOptional mods-enabled/*.conf IncludeOptional conf-enabled/*.conf IncludeOptional site-enabled/*.conf
/etc/apache2/mods-enabled (mods-available)
- 必要なモジュールをインストールすると、 設定ファイルは /etc/apache2/mods-available に書き込まれる。
(モジュール名.load モジュール名.conf)使えるモジュールは、以下のコマンドを使えば、一覧が見れる。 $ aptitude search libapache2-mod インストールしたいモジュールが見つかったら $ sudo aptitude install libapache2-mod-モジュール
- 本当に使いたいモジュールは、以下のコマンドを実行。
$ sudo /usr/sbin/a2enmod モジュール名 /etc/apache2/mods-enabled に、mods-available への シンボリックリンクを作ってくれる。
使いたくなくなったら、
$ sudo /usr/sbin/a2dismod モジュール名
- a2enmodなどを実行したら、以下のコマンドで apache2を再起動
$ sudo /etc/init.d/apache2 restart
基本原則 /etc/apache2/mods-enabled の配下の設定ファイルは触らない。 どうしても設定ファイルを変更したい場合は、conf-enabled , site-enabled で設定。
/etc/apache2/sites-enabled (sites-available)
- apache2では、1台のコンピュータで複数のwebサイトを構築できる。 バーチャルホストの設定は1つのホスト毎に、sites-available の *.conf に記述。 ホスト毎の細かい設定は、この中に記述する。
- そのホストを使えるようにしたかったら、以下のコマンド。
$ sudo /usr/sbin/a2ensite ホスト /etc/apache2/site-enabled に、site-available への シンボリックリンクを作ってくれる。
ホストを使えないようにする。
$sudo /usr/sbin/a2dissite ホスト
- a2ensite を実行したら、"/etc/init.d/apache2 restart"
/etc/apache2/conf-enabled (cont-available)
- site-* では、各ホスト毎の設定を書くけど、すべての仮想ホストに共通な 設定は、conf-enabled / conf-available を使う。
- 設定を /etc/apache2/conf-available の中に、設定名.conf で記述し、 以下のコマンドで有効にする。
$ sudo /usr/sbin/a2enconf 設定名 $ sudo /usr/sbin/a2disconf 設定名
(例)
CGIを使いたい (CGIは基本モジュールなのでlibapache2-mod-cgi などはしなくていい)
$ sudo /usr/sbin/a2enmod cgi # cgiモジュールの有効化 $ sudo /etc/init.d/apache2 restart
PHP5を使いたい
$ sudo aptitude install php5 # PHP5をインストール $ sudo aptitude install libapache2-mods-php5 # apache2のphp5モジュールをインストール $ sudo /usr/sbin/a2enmod php5 # php5モジュールの有効化 $ sudo /etc/init.d/apache2 restart # apache2 の再起動
ページは各ユーザの /home/user/public_html/ 配下に作らせたい。
$ sudo /usr/sbin/a2enmod userdir
SSLのhttps://を使いたい
$ sudo vi /etc/apache2/site-available/default-ssl.conf $ sudo /usr/sbin/a2ensite default-ssl $ sudo /etc/init.d/apache2 restart