[Linux]ApacheがPermission deniedを吐いてくる
VirtualBoxでFedora 7をせこせこがんばっている最中です。sshやsftpなんかも問題なく繋がって、あとはApacheの設定を終わらせればLinuxのWeb開発環境が完成するというところまで来ていますが、VirtualHostを設定すると、wgetできなくなるという現象が発生しました。
エラーログはこんな感じです。
[Mon Dec 31 14:30:13 2007] [error] [client 127.0.0.1] (13)Permission denied: access to /index.html denied [Mon Dec 31 14:31:10 2007] [error] [client 127.0.0.1] (13)Permission denied: access to /index.html denied [Mon Dec 31 14:35:01 2007] [error] [client 127.0.0.1] (13)Permission denied: access to /index.html denied [Mon Dec 31 14:36:01 2007] [error] [client 127.0.0.1] (13)Permission denied: access to /index.html denied [Mon Dec 31 14:38:02 2007] [error] [client 127.0.0.1] (13)Permission denied: access to /index.html denied [Mon Dec 31 14:52:10 2007] [error] [client 127.0.0.1] (13)Permission denied: access to / denied [Mon Dec 31 14:54:00 2007] [error] [client 127.0.0.1] (13)Permission denied: access to / denied [Mon Dec 31 14:54:55 2007] [error] [client 127.0.0.1] (13)Permission denied: access to /index.html denied [Mon Dec 31 14:59:57 2007] [error] [client 127.0.0.1] (13)Permission denied: access to / denied [Mon Dec 31 15:00:18 2007] [error] [client 127.0.0.1] (13)Permission denied: access to / denied
/var/www/htmlが初期設定ののDocumentRootです。症状としては
- /var/www/htmlをDocumentRootに設定したVirtualHostはOK
- /var/www以下に作ったディレクトリをDocumentRootに設定したVirtualHostはOK
- /var/www2/htmlとか/home/hoge/htmlとかいろんなところに新しく作ったディレクトリをDocumentRootに設定したVirtualHostはNG
な感じです。AA-Camp #6に参加しているakkyさん、studio15さん、shinさんにアドバイスをもらいながらもなかなか原因がわからなかったのですが、もしかしてSELinuxじゃない?っていうアドバイスももらったので
echo 0 > /selinux/enforce
というコマンドでSELinuxをとりあえず切ってみたら、さっきまでNGだった場所をDocumentRootに設定したVirtualHostもしっかりと受け付けてくれました。仮想環境のLinuxだから、セキュリティはそんなに意識しなくてもいいでしょということで、/etc/selinux/config で
# /etc/selinux/config SELINUX=disabled
としてSELinuxが起動しないように設定しました。
Apacheが動かないからずっとhttpd.confとにらめっこしたりディレクトリのパーミッションを全部777にしてみたりrootオーナーに変えてみたりを繰り返していましたが、こんなところに魔物が潜んでいたんですね。勉強になりました。
[xampp]ローカルにサブドメイン切ったらaccess forbidden食らった
XREAのWebスペース上で開発することが多々あるのですが、たまにSAFE_MODEの弊害があってローカルのXAMPP / Windows 上での開発に移行したりします。
で、たまたまlocalhostのサブドメインをまだ切っていないマシンだったので、サブドメインを追加しようと思って、
C:\xampp\apache\conf\extra\httpd-vhosts.conf
のNameVirtualHostを有効にして、該当の<VirtualHost>ディレクティブを追加して、
C:\WINDOWS\system32\drivers\etc\hosts
に
127.0.0.1 localhost
127.0.0.1 subdomain1.localhost
を追加して見たのですが、早速 http://subdomain1.localhost/ にアクセスしても
Access forbidden!
といわれました。なぜだーとおもって昔のhttpd.confを覘いたら、<Directory>ディレクトリを書き忘れていたようです。
こういう細かいところのノウハウ(?)ってすぐに忘れちゃうんですよね。ってことで備忘録的に設定載せておきます。
httpd-vhosts.conf
NameVirtualHost *:80
<VirtualHost *:80>
DirectoryIndex index.php index.html
DocumentRoot “C:/path/to/subdomain1″
ServerName subdomain1.localhost
</VirtualHost><Directory “C:/path/to/subdomain1″>
order deny,allow
allow from ALL
</Directory><VirtualHost *:80>
DocumentRoot “C:/xampp/htdocs”
ServerName localhost
</VirtualHost>
[php][CakePHP]コピペでCakeをxamppに突っ込んだらスタイルシートが適用されなかった
つまらない備忘録。
電車の中でCakePHPの日本語pdfマニュアルをみてました。順番にみていき、インストールのところまで来たのでCakeのVer1.1.17を解凍して、xamppのhtdocsに突っ込んだところ、スタイルシートの適用されない素のHTMLみたいな画面でDBがないって言われました。
マニュアルに載っていたとおり、原因を探ると、xamppをインストールしたばかりで、httpd.confの中で、
#LoadModule rewrite_module libexec/httpd/mod_rewrite.so
となっていただけでした。#をとって、非コメント化したら、無事にスタイルシートの適用されたHTMLでDBがないって言われるようになりました。
そういえば、1.2のデザインはとってもキツい感じだったけど、1.1系のデザインに戻すことって簡単なのかな?まぁ日本語のマニュアルが整備されているのかどうかわからないので、今は1.1系で勉強します。
