「Apacheメモ」の編集履歴(バックアップ)一覧はこちら

Apacheメモ」(2006/01/24 (火) 14:16:58) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

#contents *Apache2をlinuxにインストール http://www.apache.jp/misc/download.html あたりからhttpd-2.0.54.tar.gz をダウンロード。ダウンロードしたファイルを/usr/local/src にコピー。 解凍。 # cd /usr/local/src # tar xfvz httpd-2.0.54.tar.gz いらないので消す。 # rm httpd-2.0.54.tar.gz インストール。 注)SSL通信使う場合は # ./configure --enable-so --enable-ssl としないとだめ。 # cd /usr/local/src/httpd-2.0.54 # ./configure --enable-so # make # make install 完了。 *再起動の方法 普通の再起動 /usr/local/apache2/bin/apachectl restart ゆるやかに再起動 /usr/local/apache2/bin/apachectl graceful *webalizerの日本語化設定 webalizerはlinuxなら?標準でインストールされているアクセス解析ツール。見た目も結構ハデでいい感じ。ただ、標準だと日本語化されていない(日本語化は可能)。rpmの再インストールで日本語化することにした。 まず、webalizer実行に必要なrpmの確認。 #rpm -qa rpm-build gd-devel libpng-devel zlib gd libpng db4 うちの環境の場合、gd-develとlibpng-develが見つからなかったのでインストールする。レッドハットCDから以下のファイルをwinscpとかで/usr/local/src以下にコピー。 gd-devel-1.8.4-12.i386.rpm libpng-devel-1.2.2-16.i386.rpm gd-devel-1.8.4-12.i386.rpmとlibpng-devel-1.2.2-16.i386.rpmをインストール。 # cd /usr/local/src/ # rpm -ivh gd-devel-1.8.4-12.i386.rpm # rpm -ivh libpng-devel-1.2.2-16.i386.rpm インストールされているか、一応確認。 # rpm -qa gd-devel libpng-devel libpng-devel-1.2.2-16 gd-devel-1.8.4-12 次に、SRPM形式の webalizer-2.01_10-15.ent.src.rpm をレッドハットCDからwinscpとかで/usr/local/srcにコピー。 インストール開始。 # cd /usr/local/src # rpm -ivh webalizer-2.01_10-15.ent.src.rpm 日本語化設定にするため、webalizer.specファイルをちょっといじる。 # cd /usr/src/redhat/SPECS/ # vi webalizer.spec 48行目を以下に変更(--with-language=japaneseを追記) %configure --with-language=japanese --enable-dns --with-dblib=/lib ビルド。 # rpmbuild -ba webalizer.spec 一回アンインストールする。これやらないと失敗する可能性がある。 # rpm -e webalizer 日本語化webzlizerのインストール。 # cd /usr/src/redhat/RPMS/i386/ # rpm -ivh webalizer-2.01_10-15.ent.i386.rpm 終了。 本当に日本語化されているかチェック。の前に、webalizerの設定ファイルの重要そうなところだけ環境に合わせて修正。 # vi /etc/webalizer.conf # 解析するapacheのログファイル LogFile /usr/local/apache2/logs/access_log # 解析結果を出力するディレクトリの指定 OutputDir /usr/local/apache2/htdocs/access # 過去の解析結果を覚えておく。 Incremental yes # ここyesにしないと、ログが長い場合エラーになってしまうぽい。 ReallyQuiet yes 解析開始。 ※ログローテイト等で複数アクセスログがある場合は、古いアクセスログから順次上記コマンドを投げていかなければならない。 # webalizer -c /etc/webalizer.conf \ /usr/local/apache2/logs/access_log ブラウザで確認。 オーケー。 ※アクセスログの解析の順番を間違った場合は /var/lib/webalizer/webalizer.current と /val/lib/webalizer/webalizer.hist の2ファイルを削除してやり直せばOK。 *httpd.confでリダイレクト設定 リダイレクト先のディレクトリ作成。アンド簡単なページを作成 # mkdir /usr/local/apache2/htdocs/hoge/ # vi /usr/local/apache2/htdocs/hoge/index.html <html> <body> hoge </body> </html> 次に/usr/local/apache2/conf/httpd.confに以下追記。 Redirect permanent / http://localhost/hoge/ 最後にapache再起動 # /usr/local/apache2/bin/apachectl restart ブラウザでhttp://localhost/にアクセスして、http://localhost/hoge/にリダイレクトされればOK...と思ったらリダイレクトされない... いろいろ試した結果、 Redirect permanent / http://localhost/hoge/ のpermanentのあとはファイル名が必要らしい。ということで、/usr/local/apache2/htdocs/以下にダミーのindex.htmlファイルを作成。 # vi /usr/local/apache2/htdocs/index.html <html> </html> 再度、/usr/local/apache2/conf/httpd.confを編集。 Redirect permanent /index.html http://localhost/hoge/ 再度、apache再起動 # /usr/local/apache2/bin/apachectl restart http://localhost/にアクセス...よし、リダイレクトされました。 *ログのローテイト 標準インストールだと、アクセスログとエラーログがひとつずつしかないため時間とともに徐々に肥大していく。後々ログ削除する場合や確認したい場合に非常に困るので、ログを日付ごとに吐き出す設定をする。apacheに付いているrotatelogsという機能を使う。 アクセスログとエラーログ格納ディレクトリ作成 # mkdir /usr/local/apache2/logs/access/ # mkdir /usr/local/apache2/logs/error/ httpd.confのErroLogとCustomLog記述を以下のように変更(1行で記述する) ErrorLog "| /usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/error/error%Y%m%d_log 86400" CustomLog "| /usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/access/access%Y%m%d_log 86400" common Apacheを再起動 # /usr/local/apache2/bi/apachectl restart これで、logs/access,logs/error以下に日付の入ったログが作成される。 ※上記の設定をしたのに、何故かログが0時に切り出されない場合がある。 その場合は以下のように540をくっつける。 CustomLog "| /usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/access/access%Y%m%d_log 86400 540" common ※エラーログのディレクトリを指定したのに、/usr/local/apache2/logs/以下に未だにエラーログが作成される。何故だ? *アクセス制限をかける 参考:http://dog.intcul.tohoku.ac.jp/unix/accs-rest.html httpd.confの<Directory htdocsへの絶対パス>タグを探す。タグ内のAllowoverrideを以下のように変更。 #AllowOverride None コメントアウト AllowOverride Limit 制限を欠けたいフォルダ内に「.htaccess」という名前のファイルを作成。.htaccessファイル内に以下のように記述 order deny,allow deny from all 特定のIPからのみアクセスを許す場合は以下のように作成する。 order deny,allow deny from all allow from xxx.xxx.xxx.xxx #許すIPアドレス allow from 192.168.0. #イントラ Apache再起動。 *ベーシック認証設定 サイトアクセス時にユーザ名とパスワード入力ダイアログを表示させるベーシック認証の設定。 まずパスワードファイルの作成。 # /usr/local/apache2/bin/htpasswd -c \ /usr/local/apache2/.htpasswd ユーザ名 New password: xxxx Re-type new password: xxxx Adding password for user ユーザ名 次にhttpd.conf内の<Directory "/usr/local/apache2/htdocs"></Directory>の記述を探して以下の記述を追加。 #vi /usr/local/apache2/conf/httpd.conf <Directory "/usr/local/apache2/htdocs"> AuthUserFile /usr/local/apache2/.htpasswd AuthGroupFile /dev/null AuthName "Please Enter Your Password" AuthType Basic Require valid-user </Directory> アパッチ再起動。 ※解除するときは、上記記述をコメントアウトしてアパッチ再起動。 特定ディレクトリのみベーシック認証かける場合は以下のようにする。 (hogehogeディレクトリにベーシック認証かける場合) <Directory "/usr/local/apache2/htdocs/hogehoge"> AuthUserFile /usr/local/apache2/.htpasswd AuthGroupFile /dev/null AuthName "Please Enter Your Password" AuthType Basic Require valid-user </Directory>
#contents *Apache2をlinuxにインストール http://www.apache.jp/misc/download.html あたりからhttpd-2.0.54.tar.gz をダウンロード。ダウンロードしたファイルを/usr/local/src にコピー。 解凍。 # cd /usr/local/src # tar xfvz httpd-2.0.54.tar.gz いらないので消す。 # rm httpd-2.0.54.tar.gz インストール。 注)SSL通信使う場合は # ./configure --enable-so --enable-ssl としないとだめ。 # cd /usr/local/src/httpd-2.0.54 # ./configure --enable-so # make # make install 完了。 *再起動の方法 普通の再起動 /usr/local/apache2/bin/apachectl restart ゆるやかに再起動 /usr/local/apache2/bin/apachectl graceful *webalizerの日本語化設定 webalizerはlinuxなら?標準でインストールされているアクセス解析ツール。見た目も結構ハデでいい感じ。ただ、標準だと日本語化されていない(日本語化は可能)。rpmの再インストールで日本語化することにした。 まず、webalizer実行に必要なrpmの確認。 #rpm -qa rpm-build gd-devel libpng-devel zlib gd libpng db4 うちの環境の場合、gd-develとlibpng-develが見つからなかったのでインストールする。レッドハットCDから以下のファイルをwinscpとかで/usr/local/src以下にコピー。 gd-devel-1.8.4-12.i386.rpm libpng-devel-1.2.2-16.i386.rpm gd-devel-1.8.4-12.i386.rpmとlibpng-devel-1.2.2-16.i386.rpmをインストール。 # cd /usr/local/src/ # rpm -ivh gd-devel-1.8.4-12.i386.rpm # rpm -ivh libpng-devel-1.2.2-16.i386.rpm インストールされているか、一応確認。 # rpm -qa gd-devel libpng-devel libpng-devel-1.2.2-16 gd-devel-1.8.4-12 次に、SRPM形式の webalizer-2.01_10-15.ent.src.rpm をレッドハットCDからwinscpとかで/usr/local/srcにコピー。 インストール開始。 # cd /usr/local/src # rpm -ivh webalizer-2.01_10-15.ent.src.rpm 日本語化設定にするため、webalizer.specファイルをちょっといじる。 # cd /usr/src/redhat/SPECS/ # vi webalizer.spec 48行目を以下に変更(--with-language=japaneseを追記) %configure --with-language=japanese --enable-dns --with-dblib=/lib ビルド。 # rpmbuild -ba webalizer.spec 一回アンインストールする。これやらないと失敗する可能性がある。 # rpm -e webalizer 日本語化webzlizerのインストール。 # cd /usr/src/redhat/RPMS/i386/ # rpm -ivh webalizer-2.01_10-15.ent.i386.rpm 終了。 本当に日本語化されているかチェック。の前に、webalizerの設定ファイルの重要そうなところだけ環境に合わせて修正。 # vi /etc/webalizer.conf # 解析するapacheのログファイル LogFile /usr/local/apache2/logs/access_log # 解析結果を出力するディレクトリの指定 OutputDir /usr/local/apache2/htdocs/access # 過去の解析結果を覚えておく。 Incremental yes # ここyesにしないと、ログが長い場合エラーになってしまうぽい。 ReallyQuiet yes 解析開始。 ※ログローテイト等で複数アクセスログがある場合は、古いアクセスログから順次上記コマンドを投げていかなければならない。 # webalizer -c /etc/webalizer.conf \ /usr/local/apache2/logs/access_log ブラウザで確認。 オーケー。 ※アクセスログの解析の順番を間違った場合は /var/lib/webalizer/webalizer.current と /val/lib/webalizer/webalizer.hist の2ファイルを削除してやり直せばOK。 *httpd.confでリダイレクト設定 リダイレクト先のディレクトリ作成。アンド簡単なページを作成 # mkdir /usr/local/apache2/htdocs/hoge/ # vi /usr/local/apache2/htdocs/hoge/index.html <html> <body> hoge </body> </html> 次に/usr/local/apache2/conf/httpd.confに以下追記。 Redirect permanent / http://localhost/hoge/ 最後にapache再起動 # /usr/local/apache2/bin/apachectl restart ブラウザでhttp://localhost/にアクセスして、http://localhost/hoge/にリダイレクトされればOK...と思ったらリダイレクトされない... いろいろ試した結果、 Redirect permanent / http://localhost/hoge/ のpermanentのあとはファイル名が必要らしい。ということで、/usr/local/apache2/htdocs/以下にダミーのindex.htmlファイルを作成。 # vi /usr/local/apache2/htdocs/index.html <html> </html> 再度、/usr/local/apache2/conf/httpd.confを編集。 Redirect permanent /index.html http://localhost/hoge/ 再度、apache再起動 # /usr/local/apache2/bin/apachectl restart http://localhost/にアクセス...よし、リダイレクトされました。 *ログのローテイト 標準インストールだと、アクセスログとエラーログがひとつずつしかないため時間とともに徐々に肥大していく。後々ログ削除する場合や確認したい場合に非常に困るので、ログを日付ごとに吐き出す設定をする。apacheに付いているrotatelogsという機能を使う。 アクセスログとエラーログ格納ディレクトリ作成 # mkdir /usr/local/apache2/logs/access/ # mkdir /usr/local/apache2/logs/error/ httpd.confのErroLogとCustomLog記述を以下のように変更(1行で記述する) ErrorLog "| /usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/error/error%Y%m%d_log 86400" CustomLog "| /usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/access/access%Y%m%d_log 86400" common Apacheを再起動 # /usr/local/apache2/bi/apachectl restart これで、logs/access,logs/error以下に日付の入ったログが作成される。 ※上記の設定をしたのに、何故かログが0時に切り出されない場合がある。 その場合は以下のように540をくっつける。 CustomLog "| /usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/access/access%Y%m%d_log 86400 540" common ※エラーログのディレクトリを指定したのに、/usr/local/apache2/logs/以下に未だにエラーログが作成される。何故だ? →ssl.confのログファイルの設定が抜けていたためだと思われ。 *アクセス制限をかける 参考:http://dog.intcul.tohoku.ac.jp/unix/accs-rest.html httpd.confの<Directory htdocsへの絶対パス>タグを探す。タグ内のAllowoverrideを以下のように変更。 #AllowOverride None コメントアウト AllowOverride Limit 制限を欠けたいフォルダ内に「.htaccess」という名前のファイルを作成。.htaccessファイル内に以下のように記述 order deny,allow deny from all 特定のIPからのみアクセスを許す場合は以下のように作成する。 order deny,allow deny from all allow from xxx.xxx.xxx.xxx #許すIPアドレス allow from 192.168.0. #イントラ Apache再起動。 *ベーシック認証設定 サイトアクセス時にユーザ名とパスワード入力ダイアログを表示させるベーシック認証の設定。 まずパスワードファイルの作成。 # /usr/local/apache2/bin/htpasswd -c \ /usr/local/apache2/.htpasswd ユーザ名 New password: xxxx Re-type new password: xxxx Adding password for user ユーザ名 次にhttpd.conf内の<Directory "/usr/local/apache2/htdocs"></Directory>の記述を探して以下の記述を追加。 #vi /usr/local/apache2/conf/httpd.conf <Directory "/usr/local/apache2/htdocs"> AuthUserFile /usr/local/apache2/.htpasswd AuthGroupFile /dev/null AuthName "Please Enter Your Password" AuthType Basic Require valid-user </Directory> アパッチ再起動。 ※解除するときは、上記記述をコメントアウトしてアパッチ再起動。 特定ディレクトリのみベーシック認証かける場合は以下のようにする。 (hogehogeディレクトリにベーシック認証かける場合) <Directory "/usr/local/apache2/htdocs/hogehoge"> AuthUserFile /usr/local/apache2/.htpasswd AuthGroupFile /dev/null AuthName "Please Enter Your Password" AuthType Basic Require valid-user </Directory>

表示オプション

横に並べて表示:
変化行の前後のみ表示:
目安箱バナー