Top > Apache

Apache Web サーバについて。
Apache はバージョン 1.x と2.x で設定に微妙に違いがある。特に断りがない限り、2.x を中心に扱う。

There is no child page in ' Apache/'

逆引きTips Edit

BASIC認証を使うには Edit

AuthUserFile /etc/httpd/conf/.htpasswd
AuthGroupFile /dev/null
AuthName "Inside page"
AuthType Basic
require valid-user

ユーザーを追加するには

htpasswd /etc/httpd/conf/.htpasswd USERNAME

パスワードを求められる。

ユーザーを削除するには

htpasswd -D /etc/httpd/conf/.htpasswd USERNAME

拡張子.htmlをPHPで処理するには Edit

httpd.confか.htaccessに

AddHandler php5-script .html

起動している apache のバージョンを調べるには Edit

# ps -ef

で httpd を探し

# /usr/sbin/httpd -v

とするのがよい。

phpinfo() には表示されない。

レスポンスヘッダの Server: にバージョンが表示されることもあるが、設定により表示しないこともできる(表示しない方がセキュリティ上好ましい)

アクセスされたときのホスト名によってサイトを切り替えるには Edit

バーチャルホストを使う。

www.betatechnology.jp → /var/www/html
www.hoge.jp → /var/www/hoge
と対応づける例:

<VirtualHost *:80>
    DocumentRoot /var/www/html
    ServerName www.betatechnology.jp
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /var/www/hoge
    ServerName www.hoge.jp
</VirtualHost>

別ポートで別サイトを立ち上げる Edit

Listen 81
<VirtualHost *:81>
    DocumentRoot /virtual/www
    <Directory "/virtual/www">

        Options Includes ExecCGI FollowSymLinks
        AllowOverride All

        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

VirtualHost>の中ではほとんどのディレクティブが使える。

CentOS Edit

設定ファイル

/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf

再起動

service httpd restart

設定ファイル再読み込み

service httpd reload

ログファイル

/var/log/httpd/access_log
/var/log/httpd/error_log

Debian Edit

再起動

?

設定ファイル再読み込み

?

ログファイル

?

FreeBSD Edit

再起動

?

設定ファイル再読み込み

?

ログファイル

?

mod_rewrite Edit

URL を書き換えるモジュール。

.htaccessの例 Edit

# .htaccess で mod_rewrite を使うために必要
Options +FollowSymLinks

RewriteEngine on
#RewriteBase /test/mod_rewrite

# *.txt → *.php に書き換える
RewriteRule ^(.*)\.txt$ $1.php

ユーザーディレクトリの下では RewriteBase が必須?

物理ディレクトリとURLが普通に対応していればRewriteBaseは書かなくてもよい。

正しく rewrite されているか確認する/デバッグする) Edit

/etc/httpd/conf.d/rewrite.conf を次のように作成する。

# Created: 2009-12-26 aoyama
#
# mod_rewrite settings
#

# log path
RewriteLog "/var/log/httpd/rewrite_log"

# log level (0-9)
RewriteLogLevel 5

1.3 では .htaccess でも RewriteLog ディレクティブが使えたようだが、2.2 では使えない。RewriteLogLevel は0~9まで使えるが、通常は3もあれば十分だろう。



URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup Referer   Help   RSS of recent changes