ウェブサーバ管理講座

最近、自分でウェブサーバを立ち上げることを控えてますので、ここのサイトの更新はあまりないです。情報も古いと思います。

Apacheとは

現在インターネットにおいてWWW(World Wide Web)は、インターネットの代名詞といっても過言ではないくらい大変多く利用されていますが、その中でもApacheは世界一のシェアを誇るWWWのサーバ用ソフトウェア(ウェブサーバ)です。WWWが1989年にスイスの欧州粒子物理学研究所(CERN)において開発され,アメリカのNCSAの研究チームがWWWブラウザ「Mosaic」を開発した当時のウェブサーバは、CERNとNCSAがありました.Apacheは後者の子孫です.UNIXやWindowsでも動きます.NT のIISと比較してもカスタマイズの自由とが高いです.私は長い間IISを使ってきましたが,Apacheのほうがいろいろなモジュールと連動できるのでこっちのほうがいいかなという気がしています.

というわけで,徐々にApacheの設定について載せていきます.

Apacheのインストール(Unixコンパイル)

近年のLinuxはデフォルトで入っているのでここは無視していいです。万一、コンパイルしてカスタムインストールしたい場合はどうぞ。

コンパイル時に,DSOを有効にするようにしましょう.DSOとは,要は,Apacheを再コンパイルすることなく,様々なモジュールと連動させることができる枠組みです.

./configure --enable-shared=max --enable-module=most
make
make install

とすれば全てのモジュールがインストールされるようです.(2.0になって変わったかもしれません)

PHPモジュールをインストールする

例えばこのように設定します。

#./configure --with-pgsql=/usr/local/pgsql 
--with-apxs2=/usr/local/apache/bin/apxs --with-gd --with-mysql  

ここでは,apxsの設定だけは必須です.他のオプションについては必要であれば加えてください。

php本体は、/usr/local/lib/phpに入りてます。iniファイルを下記のようにコピーしておいてください。

cp php.ini-dist /usr/local/lib/php.ini

使いそうなconfigureオプション

  • --enable-memory-limit ・・・PHPのメモリ制限機能を利用したい場合
  • --with-gd

設定を確かめる

下記のPHPページで確認するといいでしょう。

<?php
phpinfo();
?>

SELinuxにおけるApacheの設定

(現在,調査中なので,一部間違っている箇所があるかもしれません!)

SELinuxにすると,ディレクトリへのアクセス権が厳しくなりるようで設定が必要です.

正確に言うと,「タイプラベル」と呼ばれる設定をきちんとしないと,apacheのプロセスがファイルアクセスできないようです.

やらなければいけないことは,

restorecon -R <ディレクトリ>

とか

chcon -R system_u:object_r:httpd_sys_script_rw_t <ディレクトリ>

などの処理が必要らしいです.タイプラベルはls -Z でを調べることができます.

BASIC認証について

/etc/httpd/conf/httpd.conf に以下の記述を追加します.

<Directory "ここにディレクトリを指定">
    AuthType Basic
    AuthName "member"
    AuthUserFile .htpasswdへの絶対パスを既述
    Require valid-user
</Directory>

.htpasswdとは,パスワードが記述されたファイルです.これの作成方法は以下の通りです.

htpasswd -c .htpasswd ユーザ名

とコマンドを打てば,指定した.htpasswd ファイルにパスワードが記述されます..htpasswdファイルをはじめて作成する場合に限り, ーcオプションをつけます.注意して下さい. 上記の例ではカレントディレクトリに.htaccessファイルが作成されます.絶対パスや相対パスで指定すればその位置に作成されます.

Basic認証はセキュリティがあまり高くありません。

Apacheのアクセスログ

一般にアクセスログには、アクセス毎に そのアクセスがあった時刻やアクセスされた情報、 アクセス元のホスト名やIPアドレスといった情報が記録される。 アクセスログは当該サイトに対して どのようなアクセスがなされているのかを 判断するための基礎データとなるもので、非常に重要である。