どんな事でもお気軽にお問い合わせください
0120-803-656
24時間受付いたします

apache2.4でForbidden連発で消耗したあなたへ


こんにちは。
開発チームのワイルド担当、まんだいです。

久しぶりにapache2.4の設定をやったところ、Forbidden連発で悔しい思いをしたので、試してみた事をまとめました。

 

今回のエラー内容

今回遭遇したエラーはこんな感じです。

[Mon Jun 05 09:45:45.490521 2017] [core:crit] [pid 8125] (13)Permission denied: [client 127.0.0.1:36174] AH00529: /var/www/vhosts/wordpress/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/var/www/vhosts/wordpress/' is executable, referer: http://wp.localhost/readme.html

 

/etc/hostsでwp.localhostというサブドメインを127.0.0.1に振っています。
想像通り、wordpressの開発用サブドメインです。

VirtualBoxで過去に作ったVMを使い回したので、この辺りの設定はすっ飛ばして行けると思ったのに!

今回はVM内のデスクトップ上でEclipseを立ち上げて開発しようと思い、ディスプレイを2枚にするため再起動。
今思えば、ここが良くなかった。

 

今回の解法

小一時間調べて、パーミッション周りの情報しか出てこないな~と思って諦めて帰ろうとしたその矢先、すっかり忘れていたSELinuxの文字が・・・。
こういう時は、素直に

sudo setenforce 0

 

これしかないです。

無事動きました!

再起動した際に、前回実行したsetenforceがリセットされたという訳ですね。
その場しのぎの対応なので、/etc/selinux/config の編集はしないスタンスでした。

そのスタンスを自分で忘れているという、もはやスタンスでもなんでもないという顛末でした。

基本、VMは「状態を保存」で停止するので、VM的にはシャットダウンしてないんですね。

 

他の可能性もある

今回のエラー、常にSELinuxが原因という訳ではないようで、色々な答えが見つかりました。

 

パーミッションが原因の場合

ドキュメントルートのディレクトリ(今回なら、/var/www/vhosts/wordpress/)に、閲覧権限が付いていないので、下層にあるファイルにアクセスできないパターン。

これは、ドキュメントルートのディレクトリで実行権限を追加すれば大丈夫です。

chmod +x /var/www/vhosts/wordpress/

 

こういうパターンもあるんですね。

 

ユーザー権限が原因の場合

これは最初に勘ぐりますね。
でも、だいたいこれじゃない場合が多いです。

そもそも、「770」や「750」みたいなパーミッションでファイル作りませんからね、開発環境では。
「755」「644」を基本に考えていきたいところです。

 

シンボリックリンクが無効になっている

これは、恥ずかしながらたまにありますね。

Options FollowSymlinks を追記します。

気を付けるしかありません。

 

まとめ

今回のケースであれば、httpd.confは以下のような最小構成で行って、なるべく環境構築には手を掛けないで行きたいなと思います。

<VirtualHost wp.localhost:80>
    ServerName wp.localhost
    DocumentRoot /var/www/vhosts/wordpress
    <Directory /var/www/vhosts/wordpress>
        Options FollowSymlinks Includes
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

 

これとSELinuxの設定は絶対忘れたくないと思います。

 
以上です。


お問い合わせ 採用情報 エンジニアブログ
ISO27001認証
Contact PageTop
株式会社ビヨンド

© beyond Co., Ltd. All rights reserved.