1. ports
/usr/ports/www/apache24
2017年11月30日時点でバージョンは apache24-2.4.29 でした。
オプションはデフォルトのままで・・・。
インストール後に、以下のディレクトリや定義ファイルが出来ているはずです。
|-- Includes ← インクルードファイル用ディレクトリ
| `-- no-accf.conf
|-- envvars.d
|-- extra ← 基本以外の定義ファイルのディレクトリ
| |-- httpd-autoindex.conf
| |-- httpd-autoindex.conf.sample
| |-- httpd-dav.conf
| |-- httpd-dav.conf.sample
| |-- httpd-default.conf
| |-- httpd-default.conf.sample
| |-- httpd-info.conf
| |-- httpd-info.conf.sample
| |-- httpd-languages.conf
| |-- httpd-languages.conf.sample
| |-- httpd-manual.conf
| |-- httpd-manual.conf.sample
| |-- httpd-mpm.conf
| |-- httpd-mpm.conf.sample
| |-- httpd-multilang-errordoc.conf
| |-- httpd-multilang-errordoc.conf.sample
| |-- httpd-ssl.conf
| |-- httpd-ssl.conf.sample
| |-- httpd-userdir.conf
| |-- httpd-userdir.conf.sample
| |-- httpd-vhosts.conf
| |-- httpd-vhosts.conf.sample
| |-- proxy-html.conf
| `-- proxy-html.conf.sample
|-- httpd.conf ← 基本定義ファイル
|-- httpd.conf.sample
|-- magic
|-- magic.sample
|-- mime.types
|-- mime.types.sample
`-- modules.d
`-- README_modules.d
2. コンフィグレーションファイル設定
/usr/local/etc/apache24/extra/httpd-default.conf にデフォルトの設定を記述しています。
セキュリティ対策のために以下のように設定を変更します。
ServerTokens ProductOnly ← クライアントに返信するヘッダ内の apache の情報を最小限にする ※1
ServerSignature Off ← サーバエラー発生時にブラウザにサーバアドレス・ポート番号を表示しない ※2
HostnameLookups On ← クライアントのIPアドレスをドメイン名を変換してログに記録する ※3
※1、2 ともセキュリティ上の設定です。WEBに公開する必要のない情報はできるだけ開示しないようにします。
※3 ログにクライアント側のドメイン名を記録する場合には 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
↑
サーバのドメイン名と待ち受けポート番号の定義 ポート番号は通常 "80(http)" か "443(https)"
DocumentRoot "/usr/local/www/apache24/data"
↑
ドキュメントルート(変更する場合は書き換える)
<Directory "/usr/local/www/apache24/data">
Options -Indexes FollowSymLinks
↑
"-Indexes" ディレクトリに "index.html" がないときは表示させない
" Indexes" の前に "-"(ハイフン)をつけるので注意
Require all granted
↑
アクセス許可についての記述
この件は後述しますが下記の設定はすべてを許可します。
</Directory>
ログに関する設定が
ErrorLog "/var/log/httpd-error.log"
・・・
LogLevel warn
<IfModule log_config_module>
・・・
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
# You need to enable mod_logio.c to use %I and %O
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
・・・
CustomLog "/var/log/httpd-access.log" common
・・・
</IfModule>
にあります。
ログの設定に関しては次頁に記述します。
<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
これは、前項で設定した /usr/local/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 も同時に起動することになります。
クライアントから、サーバにアクセスして