【大阪 / 横浜 / 徳島】インフラ / サーバーサイドエンジニア募集中!

【大阪 / 横浜 / 徳島】インフラ / サーバーサイドエンジニア募集中!

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【WordPress 専用】クラウドサーバー『ウェブスピード』

【WordPress 専用】クラウドサーバー『ウェブスピード』

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

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

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

 

今回のエラー内容

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

1
[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の文字が・・・。
こういう時は、素直に

1
sudo setenforce 0

 

これしかないです。

無事動きました!

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

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

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

 

他の可能性もある

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

 

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

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

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

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

 

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

 

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

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

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

 

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

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

Options FollowSymlinks を追記します。

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

 

まとめ

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

1
2
3
4
5
6
7
8
9
<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の設定は絶対忘れたくないと思います。

 
以上です。

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
0
読み込み中...
0 票, 平均: 0.00 / 10
20,883
X facebook はてなブックマーク pocket
【2026.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

【2026.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

この記事をかいた人

About the author

萬代陽一

ソーシャルゲームのウェブ API などの開発がメイン業務ですが、ありがたいことにマーケティングなどいろんな仕事をさせてもらえています。
なおビヨンド内での私の肖像権は CC0 扱いになっています。