Apacheサーバー設定のトラブルシューティング







client denied by server configurationエラー


Apache のエラーログで「client denied by server configuration:」と出た時の対処法。放っておいても問題はなさそうだが、Apacheのエラーログを見やすくしたいため細かいエラーを徹底的になくしていく。
バーチャルホストでの運営なので、バーチャルホストの設定ファイル、virtualhost.conf を開く。

「Require all granted」を記述するする。
<VirtualHost *:80>
        ServerName hogehoge.xxxxxxxxx.com
        DocumentRoot /somewhere/hogehoge
        <Directory "/somewhere/hogehoge">
            Require all granted
        </Directory>
<VirtualHost>


Apache 再起動。
/etc/rc.d/init.d/httpd restart

これで解決したと思ったが、今度は下記のようなエラーが出てしまった。
configuration error: couldn't perform authentication. AuthType not set!:

「Require all granted」はApache2.4系の書き方のようだ。
でApacheのバージョンを確認してみる。
httpd -v

やはり2.4以前のバージョンがインストールされていた。
この場合「Require all granted」ではなく、「Order allow,deny」「Allow from all」と書くようだ。
なので、最終的な書き方は次のようになる。
<VirtualHost *:80>
        ServerName hogehoge.xxxxxxxxx.com
        DocumentRoot /somewhere/hogehoge
        <Directory "/somewhere/hogehoge">
            Order allow,deny
            Allow from all
        </Directory>
</VirtualHost>


これで解決!と思ったが、またエラーが出てしまった。
client denied by server configuration:




バーチャルホストで.htaccessが無視される?


「バーチャルホストのドメインでアクセス」した場合と、「メインドメイン + フォルダを指定してアクセス」した場合の動作が異なることを発見した。
どうも、バーチャルホストでのアクセスだと.htaccessが読み込まれないようであった。
原因は、「AllowOverride None」を追記してしまったこと。下記のように「AllowOverride All」としたら、.htaccessの設定がちゃんと反映されるようになった。
<VirtualHost *:80>
        ServerName hoge.xxxxxxxxxxx.com
        DocumentRoot /home/xxxxxxxxxxx/hoge
        <Directory "/home/xxxxxxxxxxx/hoge">
             Options FollowSymLinks
             AllowOverride All
             Order deny,allow
             Allow from all
        </Directory>
</VirtualHost>





Directory index forbidden by Options directiveエラーとFile does not exist favicon.ico


Apacheで発生したアクセスエラーログ。

Directory index forbidden by Options directive: /xxxx/

アクセスされたフォルダに、index.htmlが置かれていないために発生するようだ。
このフォルダにはアクセスされることを想定していないため、空のindex.htmlを置いて解決する。
しかし今度は、ブラウザがfaviconをリクエストするために下記のようなエラーが発生してしまった。

File does not exist: /xxxx/favicon.ico, referer: http://xxxx.com/

空のfaviconを作成して、index.htmlと同じディレクトリにおけば解決する。

cat /dev/null > favicon.ico


サーバ構築の実際がわかる Apache[実践]運用/管理

本書はApacheの基礎から導入をはじめ、設定ファイルであるhttpd.confの解説、拡張モジュールを解説しています。また実際にHTTPサーバを構築、運用する際に必要な、パフォーマンスチューニング、セキュリティ対策、大規模運用(負荷分散や高速化)、WebDAV機能や、コンテンツフィルタリング、トラフィック量やコネクション数の制御など最新の情報を解説、実際にHTTPサーバを運用していくのに必ず役に立ちます。

Amazon

新しいLinuxの教科書

MS-DOSを知らない世代のエンジニアに向けたLinux入門書の決定版。Linux自身の機能だけでなく、シェルスクリプトを使ったプログラミングや、Gitによるソフトウェア開発のバージョン管理など、イマドキのエンジニアなら知っておくべき知識についても、丁寧に解説しました!!

KindleAmazon




あなたにおすすめ