Apacheメモ
提供: 初心者エンジニアの簡易メモ
目次
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/common.conf
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b common
/etc/httpd/conf.d/hogehoge.com.conf
CustomLog "/var/log/httpd/hogehoge.com.access_log" common