サーバ交換作業(--[2013-10-14-1])のため、apache をバージョンアップ。
apache 2.4 からは、Orderによるアクセス制限は使えなくなって、
Requireを使うようになってるのね。
Order allow,deny
Allow from all
今までこう書いてたのは以下のように修正が必要。
Require all granted
互換性確保のため、mod_access_compat を使えば、Order も使えるらしいけどね。
参考)
おほ。2.4系じゃ .htaccess ファイルの許可の仕方も変わってるんだなあ
http://blog.netandfield.com/shar/2012/10/24-htaccess.html
Apache2.4/Tips
http://www.sssc.cc/wiki/index.php?Apache2.4%2FTips
ちょっとハマった。
それっぽいエラーが出ないから気付くのに時間がかかったよ。
Apache の設定で Include 構文にこんな罠あるなんて。
Apache のマニュアルにも書いてない。
core - Apache HTTP Server Include Directive
http://httpd.apache.org/docs/current/en/mod/core.html#include
Shell-style (fnmatch()) wildcard characters can be used in the filename ...
としか書いてない。
該当しそうなソースを見ても、コロンが駄目みたいな記述はないのよね。
apr_fnmatch.c
http://svn.apache.org/repos/asf/apr/apr/trunk/strings/apr_fnmatch.c
このソースに書いてあるリンクにも特にコロンが駄目みたいな記述はない。
たとえば以下とかね。
Filename pattern matches defined in section 2.13, "Pattern Matching Notation"
from chapter 2. "Shell Command Language"
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_13
ソースをざっと見ても駄目そうなところはない。
もうちょっと追えば見付かるのかもだけど。
ググってみると、こんなのが見付かった。
ちなみにググるときには、「:」でググっても出てこないので、
「コロン」「colon」でググるべし。
Debian Bug report logs - #676610
silently ignores config files with a colon in its name
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=676610
これ、ずばり書いてあるけど、まだ解決してない問題っぽいなあ。
しかも、IPアドレス.conf みたいなのを読みこませたい、ってのも
私がやりたかったことと一緒だ。
IPv6のアドレスはコロンを使うんだよね。
困ったもんだ。
ただ、どうやらコロンはファイル名には使っちゃいけない文字っぽい。
UNIXだと問題ないんだけど、Windowsや、Macだと駄目みたいね。
Wikipedia - ファイル名
コロン:
ドライブレターに使用される、またはパス名分離符であるなどの理由から、
Windows、AmigaOS、Mac OSでは使用不可能。
この辺を考慮してるのかもね。
エラーが出てないのでトラブルシュートに手間取ったんだけど、
vhost が読みこまれないことで気付くことができた。
具体的には、apacheの動作するユーザになって、以下のコマンドを実行。
su -s /bin/bash www-data
apachectl -t -D DUMP_VHOSTS
読みこんだ設定ファイル一覧を出してくれるコマンドもあれば良いんだけどなあ。
調べてみたら、わりと簡単に apache に SPDY を喋らせることができる。
まずは、mod_spdy を以下のサイトから拾ってくる。
https://developers.google.com/speed/spdy/mod_spdy/
wget https://dl-ssl.google.com/dl/linux/direct/mod-spdy-beta_current_amd64.deb
dpkg でインストール
sudo dpkg -i mod-spdy-beta_current_amd64.deb
設定ファイルもちゃんと以下に入る。
ls /etc/apache2/mods-enabled/spdy.*
mod_spdy の有効化。
sudo a2enmod spdy
apache の再起動。
sudo service apache2 restart
SPDY はSSL接続の上で動くので、SSL接続できるようにしなきゃ駄目。
ひとまずオレオレ証明書で良いか。
mod_ssl の有効化
sudo a2enmod ssl
オレオレ証明書の作成。
sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/www.pochi.cc.pem
SSL接続用のバーチャルホスト設定の作成
cd /etc/apache2/site-enabled
sudo cp 001-www.pochi.cc 006-www.pochi.cc-ssl
sudo vi 006-www.pochi.cc-ssl
以下のように修正。
- <VirtualHost *:80>
+ <VirtualHost *:443>
+ SSLEngine On
+ SSLCertificateFile /etc/apache2/ssl/www.pochi.cc.pem
apacheの再起動。
sudo service apache2 restart
さて確認。
chromeを立ち上げて、URLに以下を入力して、SPDYのステータスを表示させながら、
chrome://net-internals/#spdy
別のタブで、HTTPSでアクセス。
https://www.pochi.cc/~sasaki/chalow/
たしかに体感速いかも。