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

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

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

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

【圧倒的 低コスト】Oracle Cloud 構築・運用保守・監視サービス

【圧倒的 低コスト】Oracle Cloud 構築・運用保守・監視サービス

【WordPress専用】高速 クラウド / サーバー『WebSpeed』

【WordPress専用】高速 クラウド / サーバー『WebSpeed』

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【次世代】ゲーム専用データ分析エンジン『ThinkingEngine』

【次世代】ゲーム専用データ分析エンジン『ThinkingEngine』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【SNSアプリ開発】LINE カスタムアプリ開発サービス

【SNSアプリ開発】LINE カスタムアプリ開発サービス

【ECアプリ開発】Shopify カスタムアプリ開発サービス

【ECアプリ開発】Shopify カスタムアプリ開発サービス

【音声アプリ開発】Twilio カスタムアプリ開発サービス

【音声アプリ開発】Twilio カスタムアプリ開発サービス

【グローバル対応】北米リージョン・クラウド / サーバー サポート

【グローバル対応】北米リージョン・クラウド / サーバー サポート

【取材記事】サーバーサイド・バックエンドエンジニアを募集中

【取材記事】サーバーサイド・バックエンドエンジニアを募集中

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

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の設定は絶対忘れたくないと思います。

 
以上です。

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
0
読み込み中...
0 票, 平均: 0.00 / 10
15,785
facebook twitter はてなブックマーク
【大阪 / 横浜】インフラエンジニア / サーバーサイドエンジニア 積極採用中!

【大阪 / 横浜】インフラエンジニア / サーバーサイドエンジニア 積極採用中!

この記事をかいた人

About the author

萬代陽一

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