Apacheの文字化け対策・その他設定

Red Hat Linuxのページトップへ

Apache 公式サイト
ダウンロードは右下のDownload for a mirror
httpディレクトリ内
httpd-2.0.50.tar.gz

# cp httpd-2.0.50.tar.gz /usr/local/src/
# cd /usr/local/src
# tar xvfz httpd-2.0.50.tar.gz
# cd httpd-2.0.50
コンパイル
# ./configure --enable-suexec --with-suexec --with-suexec-caller=apache --with-suexec-docroot=/home --with-suexec-logfile=/var/log/httpd/suexec.log --with-suexec-bin=/usr/sbin/suexec --with-suexec-uidmin=500

$ tar xvfz httpd-2.0.50.tar.gz

$ cd httpd-2.0.50
$ ./configure --enable-suexec \
--with-suexec-caller=apache \
--with-suexec-docroot=/home \
--with-suexec-userdir=html \
--with-suexec-uidmin=500 \
--with-suexec-gidmin=500 \
--enable-so \
--enable-mods-shared=most
$ make
$ su

# make install

/usr/local/apache2/bin/apachectl start

# make
# make install
Apache SSL(mod_sslとは違う)
Mod_SSL
$ tar -zxvf apache_1.3.27.tar.gz
$ cd apache_1.3.27
$ tar -zxvf apache_1.3.27+ssl_1.48.tar.gz
$ patch -p1 < SSLpatch
$ ./configure
configure オプション
一般オプション
--quiet, --silent メッセージを表示しない
--verbose, -v より詳細なメッセージを表示する
--shadow[=DIR] makeするためのシャドーツリーを作成するディレクトリを指定します


スタンドアロンオプション
--help, -h このヘルプメッセージを表示します(英語)
--show-layout 実際にインストールを行うディレクトリのレイアウトがどうなっているか表示します


インストールレイアウト設定オプション
--with-layout=[F:]ID file F から取得したインストールパスレイアウトIDを使用します
--target=TARGET TARGETで指定した名前を使って名前に関連付けられたファイルをインストールします
--prefix=PREFIX PREFIXで指定したディレクトリにApacheをインストールします
--exec-prefix=EPREFIX EPREFIXで指定されたディレクトリに httpd をインストールします
--bindir=DIR bin ディレクトリを DIR で指定します
--sbindir=DIR sbin ディレクトリを DIR で指定します
--libexecdir=DIR libexec ディレクトリを DIR で指定します
--mandir=DIR DIR で指定したディレクトリに man をインストールします
--sysconfdir=DIR DIR で指定したディレクトリに設定ファイルをインストールします
--datadir=DIR DIR で指定したディレクトリにデータファイルをインストールします
--iconsdir=DIR DIR で指定したディレクトリにアイコンをインストールします
--htdocsdir=DIR DIR で指定したディレクトリにドキュメントファイルをインストールします
--cgidir=DIR DIR で指定したディレクトリにCGIプログラムをインストールします
--includedir=DIR DIR で指定したディレクトリにインクルードファイルをインストールします
--localstatedir=DIR DIR で指定したディレクトリに修正可能なデータファイルをインストールします
--runtimedir=DIR DIR で指定したディレクトリにランタイムデータをインストールします
--logfiledir=DIR DIR で指定したディレクトリにログファイルをインストールします
--proxycachedir=DIR DIR で指定したディレクトリにプロキシのキャッシュデータをインストールします


なお、現在のインストールレイアウトがどうなっているかは、「configure --show-layout」で確認できます。


設定オプション
--enable-rule=NAME NAME で指定した特定のルールを有効にします
--disable-rule=NAME NAME で指定した特定のルールを無効にします
--add-module=FILE サードパーティ提供のモジュールを追加してアクティブにします
--activate-module=FILE サードパーティ提供のモジュールをアクティブにします
--permute-module=N1:N2 モジュールの順番を入れ替えます
--enable-module=NAME モジュールを有効にします
--disable-module=NAME モジュールを無効にします
--enable-shared=NAME DSO として組み込まれたモジュールを有効にします
--disable-shared=NAME DSO として組み込まれたモジュールを無効にします
--with-perl=FILE perl のインタープリターへのパスを指定します
--with-port=PORT httpd.conf 内のポート番号を指定します
--without-support サポートツールのインストールを無効にします
--without-execstrip stripping of executables をインストール時に無効にします。
--server-uid=UID WEB サーバを稼動させる UID をセットします
--server-gid=GID WEB サーバを稼動させる UID をセットします


各ルール名は以下のようになります。

[DEV_RANDOM=default EXPAT=default   IRIXN32=yes ]
[IRIXNIS=no      PARANOID=no     SHARED_CHAIN=de]
[SHARED_CORE=default SOCKS4=no       SOCKS5=no  ]
[WANTHSREGEX=default                            ]

各モジュールには以下のようになります。yes になっているものが、デフォルトで有効になっているモジュールです。
[access=yes      actions=yes     alias=yes      ]
[asis=yes        auth=yes        auth_anon=no   ]
[auth_db=no      auth_dbm=no     auth_digest=no ]
[autoindex=yes   cern_meta=no    cgi=yes        ]
[digest=no       dir=yes         env=yes        ]
[example=no      expires=no      headers=no     ]
[imap=yes        include=yes     info=no        ]
[log_agent=no    log_config=yes  log_referer=no ]
[mime=yes        mime_magic=no   mmap_static=no ]
[negotiation=yes proxy=no        rewrite=no     ]
[setenvif=yes    so=no           speling=no     ]
[status=yes      unique_id=no    userdir=yes    ]
[usertrack=no    vhost_alias=no                 ]


suEXEC オプション
--enable-suexec suEXEC を有効にします
--suexec-caller=NAME 許可されたユーザを設定します
--suexec-docroot=DIR suEXEC 用のドキュメントルートを設定します
--suexec-logfile=FILE suEXEC 用のログファイルを設定します
--suexec-userdir=DIR suEXEC 用のユーザサブディレクトリを設定します
--suexec-uidmin=UID suEXEC 最小許可 UIDをセットします
--suexec-gidmin=GID suEXEC 最小許可 GIDをセットします
--suexec-safepath=PATH suEXEC セーフパスを設定します
--suexec-umask=UMASK suEXEC の umask を設定します


無効になったオプション
--show-layout このオプションの変わりに、--show-layout を使ってください
--compat このオプションの変わりに、--with-layout=Apache を使ってください
Apache2ではデフォルトのままだとWindowsで作ったページは文字化けします Red Hat Linux 8以降ではOS、Apache、Windowsファイルそれぞれの文字コードが異なるため注意が必要です /etc/httpd/conf/httpd.confを編集します 注意:編集する前に… # gedit /etc/httpd/conf/httpd.conf 日本語の優先順位を高くします 751行目付近 LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ltz ca es sv tw ↓ LanguagePriority ja en da nl et fr de el it kr no pl pt pt-br ltz ca es sv tw 標準の文字コードを変更します
AddDefaultCharset ISO-8859-1 標準設定
AddDefaultCharset shift_jis シフトJIS
AddDefaultCharset EUC-JP 2バイトEUC
AddDefaultCharset none METAタグの指定[charset=]に合わせる
/usr/local/apache2/bin/apachectl start 770行目付近 AddDefaultCharset ISO-8859-1 ↓ AddDefaultCharset none または #AddDefaultCharset ISO-8859-1 ただしこの場合<META>タグの指定がないと文字化けしますし <META>タグより<TITLE>タグが先にあると、 <TITLE>タグ内の文字の文字コードで判断されてしまうことがあるそうです httpdを再起動する # /etc/rc.d/init.d/httpd restart (# /sbin/service httpd restart) 停止したくない場合はリロードする # /sbin/service httpd reload
設定を確認する場合、ブラウザがキャッシュを読むことがあります (特にMozilla、Netscape) httpdに変更があっても、HTMLファイルのタイムスタンプに変更がないためです 確認の際はキャッシュを消すか、キャッシュを読まない設定にしてから行ってください
index.htmlなどがディレクトリにない場合、内容を一覧で表示させないためにIndexesを削除する 328行目付近 Options Indexes FollowSymLinks ↓ Options FollowSymLinks 解析ファイルusageがローカルからしか見れないように設定を変更する 下記の記述をどこかに挿入する <Directory "/var/www/html/usage"> Order deny,allow Deny from all Allow from 192.168.0 </Directory> apacheのテストページを表示させないようにする テストページの保存場所 ページの本体/var/www/error/noindex.html ページ内画像/var/www/icons/apache_pb.gif       /var/www/icons/powered_by.gif 以上のファイルのアクセス権を700等に変更する 注意:httpd のアップデート(up2date)をすると、この設定は標準に戻る またnoindex.htmlを別のものに置き換えている場合も元に戻されます CGIのパスが/usr/bin/perlになっているものを/usr/local/bin/perlでも両方で使えるようにする # ln -s /usr/bin/perl /usr/local/bin/perl HostnameLookups Off    ・クライアントのIPアドレスのDNSルックアップを有効にする On | Off | Double     On  :ホスト名をログ収集出来るようにDNSルックアップを有効にする     Off  :DNSルックアップを無効にする     Double:2重の逆引きを行う。    ※Off以外はネットワークのトラフィックを低下させるので負荷のあるサイトではOffにする   ServerSignature Off    ・Apacheが生成するエラーメッセージの署名 on | off | emailの設定が出来る CGI Optionがあるので、そこに「ExecCGI」を追加することによりCGIが実行    出来る。また、SSIを使用する場合は、Includesを設定。但し、SSIはHTMLファイルで    使用するので、「/www/var/html/」の方の設定に追加するのがベター。    SSI設定の時、Includesだとセキュリティが大幅に低下します。悪意を持ったユーザー    が色々と悪さをすることが出来ます。そこで、制限を設ける為に「IncludesNoExec」    としています。     Includes://      が可能の為、コマンド実行が出来てしまうので良くない。     IncludesNoExec:のみ有効となります。    AddHandler cgi-script .cgi  コメントになっていたら「#」を削除し、.plファイルでも     起動するように「.pl」を追加するもよし    AddOutputFilter INCLUDES .shtml  コメントになっていたら「#」を削除する。     SSIファイルは、拡張子「.shtml」と宣言。「.shtm」でもSSIを起動させてい場合は追加     例:AddOutputFilter INCLUDES .shtml .shtm SuEXECの無効化    ・ユーザーディレクトリ「http://192.168.1.7/~xxxx/cgi-bin/xxx.cgi」でエラーが出る場合     パッケージ版のApache2はsuexecが有効です。こちらを無効化することにより実行     出来ます。無効化の方法は、「# mv /usr/sbin/suexec /usr/sbin/suexec.bk」と     実行することにより、無効化できます。 パッケージ版の実際のインストール ../configure -C --prefix=/etc/httpd --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --mandir=/usr/share/man --libdir=/usr/lib --sysconfdir=/etc/httpd/conf --includedir=/usr/include/httpd --libexecdir=/usr/lib/httpd/modules --datadir=/var/www --with-mpm=prefork --enable-suexec --with-suexec --with-suexec-caller=apache --with-suexec-docroot=/var/www --with-suexec-logfile=/var/log/httpd/suexec.log --with-suexec-bin=/usr/sbin/suexec --with-suexec-uidmin=500 --with-suexec-gidmin=500 --enable-mods-shared=all --enable-ssl --with-ssl --enable-deflate --enable-cgid --enable-proxy --enable-proxy-connect --enable-proxy-http --enable-proxy-ftp chgrp apache /usr/sbin/suexec chmod 4750 /usr/sbin/suexec エラーログは /var/log/httpd/suexec.log 標準は suexec-docroot=/home/httpd/html このディレクトリ以外ではsuexecは実行できない mod_suexec.so LoadModule suexec_module libexec/apache2/mod_suexec.so SuexecUserGroup nobody nogroup SuExecを使ってroot権限を使用するには以下 env CFLAGS="-DBIG_SECURITY_HOLE" OPTIM='-O2' ./configure --prefix=/usr/local/apache --enable-so --with-ssl \ --enable-ssl --enable-rewrite --enable-deflate --enable-log_agent --enable-log_referer suexecコマンドは、rootユーザーのときに限り、-Vオプションを付けると設定を表示する # bin/suexec -V PHPはSuExecされない PHPを使用する場合は Apache1.3 mod_become Apache2 mod_suid2 を使用する Apache起動スクリプト
#!/bin/sh
APACHE_HOME=/usr/local/apache2
case "$1" in
start)
    if [ -f $APACHE_HOME/bin/apachectl ]; then
        $APACHE_HOME/bin/apachectl start
        echo "Starting Apache Web Server ."
    else
        echo "Apache Web Server Not Found ."
    fi
;;
stop)
    if [-f $APACHE_HOME/bin/apachectl ]; then
        $APACHE_HOME/bin/apachectl stop
        echo "Starting Apache Web Server ."
    else
        echo "Apache Web Server Not Found ."
    fi
;;
restart)
    if [-f $APACHE_HOME/bin/apachectl ]; then
        $APACHE_HOME/bin/apachectl restart
        echo "Starting Apache Web Server ."
    else
        echo "Apache Web Server Not Found ."
    fi
;;
*)
    echo "Usage: `basename $0` {start|stop|restart}" 1>&2
    exit 1
esac
exit 0
# chmod 755 /etc/rc.d/init.d/httpd # ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc0.d/K15httpd # ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc1.d/K15httpd # ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc2.d/K15httpd # ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc3.d/K15httpd # ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc4.d/K15httpd # ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc5.d/S85httpd # ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc6.d/K15httpd アップデートの注意 Apacheの設定(httpd.conf、noindex.html等)を変更する前にhttpdのアップデートをしておいたほうがいいです アップデートの際に、いくつかが標準に戻されます しかも標準に戻す操作の関係上、アップデートに時間がかかったり、アップデートが停止したりするみたいです # gedit /usr/local/apache2/conf/httpd.conf
298行目付近
User nobody
Group #-1
↓
User apache
Group apache

308行目付近
ServerAdmin you@example.com
↓
ServerAdmin [管理者のメールアドレス]

338行目付近
DocumentRoot "/usr/local/apache2/htdocs"
↓
DocumentRoot "[ルートディレクトリを設定]"

348行目付近
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
↓
<Directory />
    Options FollowSymLinks ExecCGI IncludesNoExec
    AllowOverride All
    AddOutputFilter Includes html
    Order allow,deny
    Allow from all
</Directory>

363〜392行目付近
<Directory "/usr/local/apache2/htdocs">
……
</Directory>
↓
全体で設定している場合(348行目付近)はコメントアウト


398行目付近
UserDir public_html
↓
使用しない場合は
UserDir disable

425行目付近
DirectoryIndex index.html index.html.var
↓
DirectoryIndex index.html index.html.var index.htm index.cgi index.pl index.php index.shtml index.shtm

583行目付近
<Directory "/usr/local/apache2/icons">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
↓
アイコンを表示させたくない場合は
    Allow from 127.0.0.1

597行目付近
<Directory "/usr/local/apache2/manual">
    Options Indexes
    AllowOverride None
    Order allow,deny
    Allow from all

    <Files *.html>
        SetHandler type-map
    </Files>

    SetEnvIf Request_URI ^/manual/de/ prefer-language=de
    SetEnvIf Request_URI ^/manual/en/ prefer-language=en
    SetEnvIf Request_URI ^/manual/es/ prefer-language=es
    SetEnvIf Request_URI ^/manual/fr/ prefer-language=fr
    SetEnvIf Request_URI ^/manual/ja/ prefer-language=ja
    SetEnvIf Request_URI ^/manual/ko/ prefer-language=ko
    SetEnvIf Request_URI ^/manual/ru/ prefer-language=ru
    RedirectMatch 301 ^/manual(?:/(de|en|es|fr|ja|ko|ru)){2,}(/.*)?$ /manual/$1$2
</Directory>
↓
マニュアルを表示させたくない場合は
    Allow from 127.0.0.1

625行目付近
ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"
↓
cgiを別ディレクトリにしない場合はコメントアウト

639行目付近
<Directory "/usr/local/apache2/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>
↓
cgiを別ディレクトリにしない場合はコメントアウト

800行目付近
LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
↓
LanguagePriority ja en ca cs da de el eo es et fr he hr it ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW

819行目付近
AddDefaultCharset ISO-8859-1
↓
AddDefaultCharset none

895行目付近
#AddHandler cgi-script .cgi
↓
AddHandler cgi-script .cgi .pl

920行目付近
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
↓
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

以下を追記
AddType application/x-httpd-php  .php
AddType application/x-httpd-php-source  .phps

サーバーの詳細を隠す(バージョン情報・PHPの使用)
550行目付近
ServerTokens Full
↓
ServerTokens ProductOnly

730行目付近
#DefaultLanguage nl
↓
DefaultLanguage ja

ぺんたん.info
あかいひ.com
IPくん.com
8枠.com - 競馬情報
galhime.com

PC Q&A||古い記事|雑学|ラーメン