1. ports
/usr/ports/www/apache24
インストール後に、以下のディレクトリやコンフィグレーションファイルが出来ているはずです。
/usr/local/etc/apache24/Includes/ ← インクルードファイル用
/usr/local/etc/apache24/Includes/no-accf.conf
/usr/local/etc/apache24/envvars.d
/usr/local/etc/apache24/extra/ ← 基本設定以外のもの
/usr/local/etc/apache24/extra/httpd-autoindex.conf
/usr/local/etc/apache24/extra/httpd-dav.conf
/usr/local/etc/apache24/extra/httpd-default.conf
/usr/local/etc/apache24/extra/httpd-info.conf
/usr/local/etc/apache24/extra/httpd-languages.conf
/usr/local/etc/apache24/extra/httpd-manual.conf
/usr/local/etc/apache24/extra/httpd-mpm.conf
/usr/local/etc/apache24/extra/httpd-multilang-errordoc.conf
/usr/local/etc/apache24/extra/httpd-ssl.conf
/usr/local/etc/apache24/extra/httpd-userdir.conf
/usr/local/etc/apache24/extra/httpd-vhosts.conf
/usr/local/etc/apache24/httpd.conf ← 大もとの設定用
/usr/local/etc/apache24/magic
/usr/local/etc/apache24/mime.types
/usr/local/etc/apache24/modules.d/
/usr/local/etc/apache24/modules.d/README_modules.d
2. コンフィグレーションファイル設定
/usr/local/etc/apache24/extra/httpd-default.conf にデフォルトの設定を記述しています。
セキュリティ対策のために以下のように設定を変更します。
ServerTokens ProductOnly
ServerSignature Off
HostnameLookups On
1行目
クライアントに返信するヘッダ内の apache の情報を最小限にする。
2行目
サーバエラー発生時にブラウザにサーバアドレス・ポート番号を表示しない。
1行目、2行目ともセキュリティ上の設定です。WEBに公開する必要のない情報はできるだけ開示しないようにします。
3行目
クライアントの IP アドレスをドメイン名を変換してログに記録する、
ログにクライアント側のドメイン名を記録する場合には On にしますが、不要であれば Off にします。
Off にするとほんの少しアクセスが早くなるかもしれません。
/usr/local/etc/apache24/httpd.conf が大もとのコンフィグレーションファイルです。
以下のように編集します。
#LoadModule dav_module libexec/apache24/mod_dav.so
上記のコメントを外します(行先頭の [#] を削除する)。
ここ鶏が先か卵が先か卵が先かわかりませんが、subversion を使う時の「mod_dav_svn」が有効なのにここが無効のままだと後で configtest を行った時に
httpd: Syntax error on line 155 of /usr/local/etc/apache24/httpd.conf: Cannot load libexec/apache24/mod_dav_svn.so into server: /usr/local/libexec/apache24/mod_dav_svn.so: Undefined symbol "dav_register_provider"
と言われてしまいます。
ServerAdmin you@your.address
ServerName www.example.com:80
DocumentRoot "/usr/local/www/apache24/data"
<Directory "/usr/local/www/apache24/data">
Options -Indexes FollowSymLinks
Require all granted
</Directory>
1行目
WEB サーバ管理者のメールアドレスに変更。
2行目
サーバのドメイン名と待ち受けポート番号の定義。
ポート番号は通常 80(http) か 443(https)。
5行目
ドキュメントルートの定義。
変更する場合のみ、書き換えます。
8行目
ディレクトリに index.html がないときは表示させない。
Indexes の前に「-」(ハイフン)をつけるので注意。
9行目
アクセス許可についての記述。
この件は後述しますが例題の設定はすべてを許可します。
下も変更しなくてよいですが、ログ出力ファイルの定義です。
ErrorLog /var/log/httpd-error.log
これは、WEB にアクセスしてきたときにエラーが発生したときに出力するログファイルを指定しています。
CustomLog /var/log/httpd-access.log combined
これは、通常時のアクセスログを出力するファイル名とその形式を指定しています。
この上の方に、LogFormat というのが4行ほど、記述されていますがこれがログの出力形式を定義しています。combined にしておくといろいろな情報をログにとれますので、このままの設定をおすすめします。
ログはほうっておくとどんどん大きくなりますので、「newsyslog (ログローテーション)」を参照して、ログのローテーションを行ってください。
<Directory "/usr/local/www/apache24/cgi-bin">
AllowOverride None
Options None
Require all granted
d</Directory>
これは、CGI のスクリプトファイルを置く場所を指定しています。http://www.仮名.ne.jp/cgi-bin/仮名.cgi で、スクリプトファイルにアクセスできます。
スクリプトファイルを動作させることは、セキュリティ上、危険が発生しますので、充分に注意して行ってください。
#Include etc/apache24/extra/httpd-default.conf
これは、前項で設定した etc/apache24/extra/httpd-default.conf への設定を有効にするために、先頭の # を削除して Include を有効にします。
3. apache の起動
/etc/rc.conf を編集します。
apache24_enable="YES"
apache の起動停止用のスクリプトは、/usr/local/etc/rc.d/apache24 です。
> /usr/local/etc/rc.d/apache24 configtest
と入力してください。設定した、http.conf の内容が正しく記述されているかどうか、チェックしてくれます。
記述が正しければ、Syntax OK と出力されるはずです。
記述に誤りがあれば、エラーを出力しますが、誤っている行番号やその内容などを、出力してくれるので訂正しやすいと思います。例えば <Directory /usr/local/www/apache24/data> の綴りを誤って <Directry /usr/local/www/data> と記述したとします。すると
Syntax error on line 1111 of /usr/local/etc/apache24/httpd.conf:
Invalid command '<Directry', perhaps mis-spelled or defined by a module not i
ncluded in the server configuration
という具合に、出力されます。「1111 行目の ''Directry' ってのはミススペルじゃないの?」ってことですね。
Syntax OK が出力されれば、
/usr/local/etc/rc.d/apache24 start
と入力してください。apache が起動されるはずです。
停止や再起動は以下のように入力します。
/usr/local/etc/rc.d/apache24 stop ← 停止
/usr/local/etc/rc.d/apache24 restart ← 再起動
再起動の場合は、ユーザがほとんど停止したことに気づかないくらいのスピードで起動されます。ホストが立ち上がった状態で httpd.conf を更新した場合などは、この restart を使用します。
起動スクリプトは特に設定を変更しない限りそのままにしておいてかまいません。
システムが正常に起動すれば apache も同時に起動することになります。
クライアントから、サーバにアクセスしたら It works!という文字が表示されるはずです。