#contents
*インストール [#kdae8ec0]
以下の作業で、コンパイル作業は"/usr/local/src"にて、またインストール先は"/usr/local/apache"としています。
**ダウンロード [#w2715585]
http://httpd.apache.org/ からダウンロードします。
(このページ作成時点では、http://httpd.apache.org/download.cgi からダウンロードできます)~
$ wget http://www.meisei-u.ac.jp/mirror/apache/dist/httpd/httpd-2.0.53.tar.gz
$ wget http://www.apache.org/dist/httpd/httpd-2.0.53.tar.gz.md5
**md5sumのチェック [#k782db57]
$ md5sum --check http://www.apache.org/dist/httpd/httpd-2.0.53.tar.gz.md5
**ファイルの展開 [#n74d4f5b]
$ tar zxf httpd-2.0.53.tar.gz
$ cd httpd-2.0.53
**コンパイルの設定 [#gafdd79b]
Apache2系列は、1.3系列で必要だったモジュール類が予め組み込まれているのでコンパイルが非常に楽です。~
今回は、SSL接続と、WebDAVを使用するので、この二点を有効にします。
$ env CFLAGS=-O2 ./configure --enable-ssl --enable-dav --prefix=/usr/local/apache
**コンパイル [#r39bd06f]
$ ( nohup make > ./make_std.log ) >& ./make_err.log &
csh系の場合のみ。~
コンパイル作業中は、コンソールが使えなくなるので、バックグラウンドで実行するようにしています。(標準出力、標準エラー出力はそれぞれmake_std.log、make_err.logに出力されます)
コンパイルの進捗状況は、たまに下記のコマンドを実行して確認します。
$ ls -la *.log
-rw-r--r-- 1 myasu myasu 59679 Mar 7 09:23 config.log
-rw-r--r-- 1 myasu myasu 64 Mar 7 09:26 make_err.log
-rw-r--r-- 1 myasu myasu 75435 Mar 7 09:28 make_std.log
あるいは、単純に負荷を見るなら
$ top
でもイイですね。
特にこだわらないなら、
$ make
で構いません。(コンソールもう一個開けばイイだけのことですが)
**インストール [#d0fb358d]
$ sudo make install
これで、/usr/local/apacheにインストールされます。
*設定 [#t94b0932]
confディレクトリの中に各種設定ファイルがあります。
-httpd.conf~
基本の設定ファイル
-ssl.conf~
暗号化通信(https)を使用する場合の設定ファイル
-highperformance.conf~
Apacheをより高速に動かしたい場合に使用する設定ファイル
**httpd.conf [#mfd7644e]
-233行目付近、
AddType application/x-httpd-php .php
拡張子phpの場合に、PHPを通して実行します。
--(phpが先にインストールしてあれば、この一つ上の行に
LoadModule php5_module modules/libphp5.so
という記述が入っていると思います)
-268行目付近、実行するユーザ名の設定
User apache
Group apache
当然、apacheと言う名前のユーザとグループを用意しておきます。
なるべくrootでは動作させないようにしましょう。
-278行目付近、管理者のメールアドレス
ServerAdmin admin@exatto.org
ページが存在しないなど、エラーが表示される画面を見かけると思いますが、
その様なページのフッダに表示されます。
-293行目付近、サーバ名
ServerName www.exatto.org
サーバのホスト名を設定します。
-302行目付近、"/"の補完
UseCanonicalName On
URLの最後の "/" が省略されたとき、それを補完します。
-308行目付近、ドキュメントルート
DocumentRoot "/home/httpd/default"
コンテンツを置くディレクトリを指定します。
-333行目付近、ドキュメントルートに指定したディレクトリの各種設定
<Directory "/home/httpd/default">
ここ以下の行には、/home/httpd/default ディレクトリ以下に関する設定が記述されます。
HTMLのタグのようになっていますので、それに習って読んでいくと、対応がわかりやすいと思います。
-347行目付近
Options FollowSymLinks
''Indexes''は削除します。~
デフォルトでは、index.html等が存在しないとき、ディレクトリ内容を表示しますが、
セキュリティ上、内部構造が露呈するのは望ましくないので、無効にしておきましょう。
-354行目付近、.htaccess等による設定の上書きの許可
AllowOverride All
デフォルトでは''None''になっているので、全許可します。(セキュリティ上、全許可は望ましくないのですが、''家サーバ''なので、ここではこのように設定しました)
-395行目付近、デフォルトで表示するファイル
DirectoryIndex index.html index.php Default.htm
http://exatto.org/ 等、''/''の後にファイル名が指定されなかった場合に、自動的に表示するファイル名です。~
先ほどのOptionsの設定で、'''Indexes'''を外しましたので、該当ファイルがない場合は、''「Not Found」''等表示されます。
-447行目付近、IPアドレスからホスト名を逆引き
HostnameLookups On
ログに記録される際に、IPアドレスではなく、ホスト名が記録されます。
当然、逆引きのためパフォーマンスが若干落ちますが、アクセス数が少ないウチは問題ないでしょう。
-516行目付近、ログ出力を全部書き出す
CustomLog logs/access_log combined
コメントアウトされていると思いますので、''#''を外します。
-589, 603行目付近
ScriptAlias /cgi-bin/ "/home/httpd/default/cgi-bin/"
<Directory "/home/httpd/default/cgi-bin">
スクリプト実行のためのエイリアスを作成します。
特定のディレクトリだけを許可することで、セキュリティの向上をします。
-1035行目付近、追加
include conf/conf.d/*.conf
conf以下に''conf.d/''と言うディレクトリを用意します。
この中に、*.confファイルを用意することで、httpd.confに自動的に組み込まれます。
**ssl.conf [#p3b53e56]
-86行目付近、ホストの設定変更
DocumentRoot "/home/httpd/default_ssl"
ServerName www.exatto.org:443
ServerAdmin admin@exatto.org
httpd.confと同様に変更します。
-108, 116行目付近、サーバ証明書ファイルの場所
SSLCertificateFile /usr/local/certs/server.crt
SSLCertificateKeyFile /usr/local/certs/server.key
サーバ証明書ファイルの場所を指定します。~
これらのファイルの作り方については、別途解説を用意します。
-206行目付近
<Directory "/home/httpd/default/cgi-bin">
こちらもhttpd.confと同様に変更します。
**構文チェック [#l227feb8]
apacheをインストールした''bin''ディレクトリのapachectlを使用します。
$ apachectl configtest
*起動と停止 [#ue33cfe8]
$ sudo bin/apachectl -k start -d /usr/local/apache
$ sudo bin/apachectl -k stop -d /usr/local/apache
*Reference [#ib0e6294]
http://httpd.apache.org/docs-2.0/~
http://www.stackasterisk.jp/tech/systemConstruction/apache02_02.jsp~
http://www.shitomi.jp/server/apache.html~
RIGHT:2005-03-07 (月) 09:12:02
----
[[家サーバ管理帳]]