目次

Apache

インストール

# portinstall www/apache24

とりあえず立ち上げるだけ

/usr/local/etc/apache24/httpd.conf を編集

ServerName www.exsample.com:80

名前解決ができないと立ち上がらないので注意

/etc/rc.conf を編集

apache24_enable="YES" 

これでbootはする

オプションの確認

Apacheのコンパイル時のオプション表示

# httpd -V

staticに組み込みこまれているモジュール一覧

# httpd -l

apache の configure オプションを確認する方法

# cat /usr/local/share/apache24/build/config.nice

etc

設定ファイルのシンタックスチェック

httpd -t

バーチャルホストの設定を一覧表示

httpd -S

モジュールを一覧表示

httpd -M

Apache 設定ファイルのディレクティブ(設定項目)の名前と簡単な解説

httpd -L

Logの分割、ローテート

FreeBSD Newsyslogでの例

# logfilename   [owner:group]  mode count size when  flags  [/pid_file]          [sig_num]
/var/log/httpd-access.log      600  12    *    @T00  B      /var/run/httpd.pid   30

※ ログの切り出しを行った際にSIGNALを飛ばす先のプロセスのpidファイルを指定する。

  newsyslogでLogのローテートを行った際にapacheに対してSIGUSR1シグナルを送らないと、以降のapacheのログ書き込みがうまくいきません

「30」 : 送信するSIGNAL

プロセスに送るシグナルを指定します。今回の例では「30=SIGUSR1」を指定しています。

PHP

/usr/local/etc/apache24/httpd.conf を編集

  <FilesMatch "\.php$">
      SetHandler application/x-httpd-php
  </FilesMatch>
  <FilesMatch "\.phps$">
      SetHandler application/x-httpd-php-source
  </FilesMatch>

以下の記述法で書かれている解説が多いが前述の記述を推奨。1)

<IfModule mime_module>
    ・・・・・・
    #   
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
</IfModule>

確認

こんなのを作って確認する

# cat /usr/local/www/apache24/data/check.php
<?php phpinfo(); ?>

index.phpをデフォルトに

/usr/local/etc/apache24/httpd.conf を編集2)

<IfModule dir_module>
    DirectoryIndex index.html index.php
                              ^^^^^^^^^^追加
</IfModule>
1)
悪意を持ってアップロード (あるいは作成) された exploit.php.jpg のようなファイルが PHP として実行されてしまわないように。詳細はPHPマニュアル->インストールと設定->Apache 2.x (Unixシステム用)を参照
2)
<IfModule dir_module>の中