Apache

インストール

# portinstall www/apache24

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

/usr/local/etc/apache22/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 を編集

DirectoryIndex index.php index.html

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

以下の喜寿法で書かれている解説が多いが前述の記述を推奨。（（悪意を持ってアップロード (あるいは作成) された exploit.php.jpg のようなファイルが PHP として実行されてしまわないように。詳細はPHPマニュアル->インストールと設定->Apache 2.x (Unixシステム用)））を参照

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

確認

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

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

index.phpをデフォルトに

/usr/local/etc/apache22/httpd.conf を編集1) <IfModule dir_module>の中

<IfModule dir_module>
DirectoryIndex index.html index.php
^^^^^^^^^^追加
</IfModule>