facebook twitter hatena line email

「Apacheメモ」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(ページの作成:「=apacheメモ= ==VirtualHostの設定方法== httpd.confを以下のように修正 *:80の部分は変更可能です。 Listen 80 # 追加 NameVirtualHost *:80 <<...」)
 
 
(同じ利用者による、間の9版が非表示)
行1: 行1:
 
=apacheメモ=
 
=apacheメモ=
 +
==Apatch2.4の時に404エラーとなった場合==
 +
AH01630: client denied by server configuration:
 +
 +
<Directory "/var/www/hoge">
 +
     AllowOverride All
 +
      Require all granted
 +
</Directory>
 +
 
==VirtualHostの設定方法==
 
==VirtualHostの設定方法==
 
  httpd.confを以下のように修正
 
  httpd.confを以下のように修正
行10: 行18:
 
   DocumentRoot "/var/www/html"
 
   DocumentRoot "/var/www/html"
 
   <<nowiki />Directory "/var/www/html">
 
   <<nowiki />Directory "/var/www/html">
     AllowOverride All
+
     AllowOverride All # .htaccessを許可
 
     Allow from All
 
     Allow from All
 
   </Directory>
 
   </Directory>
 
  </VirtualHost>
 
  </VirtualHost>
# .htaccessを許可
 
 
  <<nowiki />VirtualHost *:80>
 
  <<nowiki />VirtualHost *:80>
 
   ServerName sample2.example.com
 
   ServerName sample2.example.com
行22: 行29:
 
   <<nowiki />Directory "/var/www/html/2">
 
   <<nowiki />Directory "/var/www/html/2">
 
     Options Indexes FollowSymLinks Includes ExecCGI
 
     Options Indexes FollowSymLinks Includes ExecCGI
     AllowOverride All
+
     AllowOverride All # .htaccessを許可
 
     Allow from All
 
     Allow from All
 
   </Directory>
 
   </Directory>
行31: 行38:
 
  127.0.0.1      sample2.example.com
 
  127.0.0.1      sample2.example.com
  
==mod_rewriteの使い方==
+
==htaccessを許可/拒否==
 +
AllowOverride All # すべて許可
 +
AllowOverride None # すべて拒否
 +
詳細に設定したい場合は以下の通り
 +
AllowOverride AuthConfig FileInfo Indexes Limit Options=Indexes,SymLinksIfOwnerMatch,MultiViews,FollowSymLinks,ExecCGI,Includes,IncludesNOEXEC
  
 +
==mod_rewriteの使い方==
 
apacheのhttpd.confの以下コメントを外す。
 
apacheのhttpd.confの以下コメントを外す。
 
  LoadModule rewrite_module modules/mod_rewrite.so
 
  LoadModule rewrite_module modules/mod_rewrite.so
行42: 行54:
  
 
==localhostでサブドメインを使用==
 
==localhostでサブドメインを使用==
http://www.localhostをd:/home/に割り当ててみる
+
ttp://www.localhost を d:/home/に割り当ててみる
 
  C:\Program Files\Apache Group\Apache\conf\httpd.conf
 
  C:\Program Files\Apache Group\Apache\conf\httpd.conf
 
  一番下の
 
  一番下の
行90: 行102:
 
  #特定パスのみからip集計
 
  #特定パスのみからip集計
 
  grep /test1/ /etc/httpd/logs/access_log | awk '{print $1;}' |sort|uniq -c|sort -r|head -n 100
 
  grep /test1/ /etc/httpd/logs/access_log | awk '{print $1;}' |sort|uniq -c|sort -r|head -n 100
 +
 +
==proxyを挟んでもip適切に出力する方法==
 +
/etc/httpd/conf.d/combined_x.conf
 +
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{X-Forwarded-For}i\"" combined_x
 +
/etc/httpd/conf.d/hogehoge.com.conf
 +
CustomLog "/var/log/httpd/hogehoge.com.access_log" combined_x
 +
 +
参考:https://kakakikikeke.blogspot.jp/2013/07/apachex-forwarded-for.html
 +
 +
参考:http://rriifftt.hatenablog.com/entry/2016/02/10/155744
 +
 +
参考:http://dotnsf.blog.jp/archives/1018169332.html

2018年2月21日 (水) 15:50時点における最新版

apacheメモ

Apatch2.4の時に404エラーとなった場合

AH01630: client denied by server configuration:
<Directory "/var/www/hoge">
     AllowOverride All
     Require all granted
</Directory>

VirtualHostの設定方法

httpd.confを以下のように修正
*:80の部分は変更可能です。
Listen 80
# 追加
NameVirtualHost *:80
<VirtualHost *:80>
  ServerName sample1.example.com
  DocumentRoot "/var/www/html"
  <Directory "/var/www/html">
    AllowOverride All # .htaccessを許可
    Allow from All
  </Directory>
</VirtualHost>
<VirtualHost *:80>
  ServerName sample2.example.com
  DocumentRoot "/var/www/html/2"
  HostNameLookups off
  UseCanonicalName on
  <Directory "/var/www/html/2">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All # .htaccessを許可
    Allow from All
  </Directory>
</VirtualHost>
hostsに以下を追加し確認
127.0.0.1       sample2.example.com
127.0.0.1       sample2.example.com

htaccessを許可/拒否

AllowOverride All # すべて許可
AllowOverride None # すべて拒否

詳細に設定したい場合は以下の通り

AllowOverride AuthConfig FileInfo Indexes Limit Options=Indexes,SymLinksIfOwnerMatch,MultiViews,FollowSymLinks,ExecCGI,Includes,IncludesNOEXEC

mod_rewriteの使い方

apacheのhttpd.confの以下コメントを外す。

LoadModule rewrite_module modules/mod_rewrite.so

例)URLの./abc/を./new/に変更する場合 .htaccess

RewriteEngine on
RewriteRule ^abc/(.*)$ new/$1 [L]

localhostでサブドメインを使用

ttp://www.localhost を d:/home/に割り当ててみる

C:\Program Files\Apache Group\Apache\conf\httpd.conf
一番下の
#</VirtualHost>
の下に追加記述
<VirtualHost *>
DocumentRoot d:/home
ServerName www.localhost
</VirtualHost>

C:\WINDOWS\system32\drivers\etc\
hostsに以下を追加
127.0.0.1       localhost
127.0.0.1       www.localhost
アパッチとブラウザを再起動

Index Of非表示方法

httpd.conf
Options Indexes FollowSymlinks MultiViews
↓
Options FollowSymlinks MultiViews

バーチャルホストconfを別ファイルで設定

  • httpd.confの最下に設定
Include conf/extra/httpd-vhosts.conf
  • extra/httpd-vhosts.confにVirtualHost設定記述

mod_proxy

<Location />
  ProxyPass http://localhost:8080/
  ProxyPassReverse  http://localhost:8080/
</Location>

test.example.comを内部的に別サーバ(test.cloudcore)で動作させる場合

 略
 </Directory>
 ProxyPass / http://test.cloudcore/
 ProxyPassReverse / http://test.cloudcore/
 ProxyPassReverseCookieDomain test.cloudcore test.example.com
 ProxyPassReverseCookiePath / /
</VirtualHost>

accesslogからipの集計

awk '{print $1;}' /etc/httpd/logs/access_log|sort|uniq -c
#アクセスの多いip上位100件
awk '{print $1;}' /etc/httpd/logs/access_log|sort|uniq -c|sort -r|head -n 100
#特定パスのみからip集計
grep /test1/ /etc/httpd/logs/access_log | awk '{print $1;}' |sort|uniq -c|sort -r|head -n 100

proxyを挟んでもip適切に出力する方法

/etc/httpd/conf.d/combined_x.conf

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{X-Forwarded-For}i\"" combined_x

/etc/httpd/conf.d/hogehoge.com.conf

CustomLog "/var/log/httpd/hogehoge.com.access_log" combined_x

参考:https://kakakikikeke.blogspot.jp/2013/07/apachex-forwarded-for.html

参考:http://rriifftt.hatenablog.com/entry/2016/02/10/155744

参考:http://dotnsf.blog.jp/archives/1018169332.html