1. ports
/usr/ports/www/apache22/
2014年7月13日以降、「apache」のデフォルトバージョンは「2.4」へ移行しました。
「2.2」を使用する場合は、「/etc/make.conf」に、以下の記述が必要になります。
APACHE_DEFAULT=2.2
DEFAULT_VERSIONS+=apache=2.2
インストール後に、以下のディレクトリやコンフィグレーションファイルが出来ているはずです。
/usr/local/etc/apache22/Includes/ ← インクルードファイル用
/usr/local/etc/apache22/Includes/no-accf.conf
/usr/local/etc/apache22/envvars.d
/usr/local/etc/apache22/extra/ ← 基本設定以外のもの
/usr/local/etc/apache22/extra/httpd-autoindex.conf
/usr/local/etc/apache22/extra/httpd-dav.conf
/usr/local/etc/apache22/extra/httpd-default.conf
/usr/local/etc/apache22/extra/httpd-info.conf
/usr/local/etc/apache22/extra/httpd-languages.conf
/usr/local/etc/apache22/extra/httpd-manual.conf
/usr/local/etc/apache22/extra/httpd-mpm.conf
/usr/local/etc/apache22/extra/httpd-multilang-errordoc.conf
/usr/local/etc/apache22/extra/httpd-ssl.conf
/usr/local/etc/apache22/extra/httpd-userdir.conf
/usr/local/etc/apache22/extra/httpd-vhosts.conf
/usr/local/etc/apache22/httpd.conf ← おおもとの設定用
/usr/local/etc/apache22/magic
/usr/local/etc/apache22/mime.types
/usr/local/etc/apache22/modules.d/
/usr/local/etc/apache22/modules.d/README_modules.d
2. コンフィグレーションファイル設定
/usr/local/etc/apache22/extra/httpd-default.conf にデフォルトの設定を記述しています。
セキュリティ対策のために以下のように設定を変更します。
ServerTokens ProductOnly ← クライアントに返信するヘッダ内の apache の情報を最小限にする
ServerSignature Off ← サーバエラー発生時にブラウザにサーバアドレス・ポート番号を表示しない
HostnameLookups On ← クライアントのIPアドレスをドメイン名を変換してログに記録する
/usr/local/etc/apache22/httpd.conf が大元のコンフィグレーションファイルです。
以下のように編集します。
ServerAdmin you@your.address ← WEB サーバ管理者のメールアドレスに変更
ServerName www.example.com:80 ← サーバのドメイン名と待ち受けポート番号の定義
ポート番号は通常 80(http) か 443(https)
DocumentRoot "/usr/local/www/apache22/data" ← ドキュメントルート(変更する場合のみ)
<Directory "/usr/local/www/apache22/data">
Options -Indexes FollowSymLinks ← -Indexes ディレクトリに index.html がないときは表示させない
Indexes の前に「-」(ハイフン)をつけるので注意
AllowOverride None
Order allow,deny ← アクセス許可を定義する順番
この場合は許可リストを定義した後、否許可リストを定義する
Allow from all
</Directory>
<IfModule mod_userdir.c>
UserDir public_html ← ユーザ用のサイトを作成する場合
/home/ユーザ名の下につくるディレクトリ名
</IfModule>
下も変更しなくてよいですが、ログ出力ファイルの定義です。
ErrorLog /var/log/httpd-error.log
これは、WEB にアクセスしてきたときにエラーが発生した場合(例えば、存在しない HTML ファイルにアクセスしようとした等々)に出力するログファイルを指定しています。
CustomLog /var/log/httpd-access.log combined
これは、通常時のアクセスログを出力するファイル名とその形式を指定しています。
この上の方に、LogFormat というのが4行ほど、記述されていますがこれがログの出力形式を定義しています。combined にしておくといろいろな情報をログにとれますので、このままの設定をおすすめします。
ログはほうっておくとどんどん大きくなりますので、「newsyslog」を参照して、ログのローテーションを行ってください。
<Directory "/usr/local/www/apache22/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
これは、CGI のスクリプトファイルを置く場所を指定しています。http://www.仮名
.ne.jp/cgi-bin/仮名
.cgi で、スクリプトファイルにアクセスできます。
スクリプトファイルを動作させることは、セキュリティ上、危険が発生しますので、充分に注意して行ってください。
#Include etc/apache22/extra/httpd-default.conf
これは、前項で設定した etc/apache22/extra/httpd-default.conf への設定を有効にするために、先頭の # を削除して Include を有効にします。
3. apache の起動
/etc/rc.conf を編集します。
apache22_enable="YES"
apache の起動停止用のスクリプトは、/usr/local/etc/rc.d/apache22 です。
> /usr/local/etc/rc.d/apache22 configtest
と入力してください。設定した、http.conf の内容が正しく記述されているかどうか、チェックしてくれます。
記述が正しければ、Syntax OK と出力されるはずです。
記述に誤りがあれば、エラーを出力しますが、誤っている行番号やその内容などを、出力してくれるので訂正しやすいと思います。例えば <Directory /usr/local/www/apache22/data> の綴りを誤って <Directry /usr/local/www/data> と記述したとします。すると
Syntax error on line 1111 of /usr/local/etc/apache22/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/apache22 start
と入力してください。apache が起動されるはずです。
停止や再起動は以下のように入力します。
/usr/local/etc/rc.d/apache22 stop ← 停止
/usr/local/etc/rc.d/apache22 restart ← 再起動
再起動の場合は、ユーザがほとんど停止したことに気づかないくらいのスピードで起動されます。ホストが立ち上がった状態で httpd.conf を更新した場合などは、この restart を使用します。
起動スクリプトは特に設定を変更しない限りそのままにしておいてかまいません。
システムが正常に起動すれば apache も同時に起動することになります。
クライアントから、サーバにアクセスしたら「It works!」という文字が表示されるはずです。