CentOS7でapacheを使ってウェブサーバを構築している時に、Forbiddenエラーが出ました。
しかし、何度apacheの設定を調べても間違いが見つかりません。ウェブサイトのDocumentRootはVirtualHostで設定しています。
原因
SELinuxが有効になっているのがForbiddenの原因でした。SELinuxが有効になっていると、ディレクトリ表示でパーミッションの最後にドット"."表示されます。
drwx------. 6 katsuwo users 222 Apr 16 17:00 .
drwxr-xr-x. 3 root root 20 Apr 16 12:56 ..
-rw-------. 1 katsuwo users 1519 Apr 16 17:01 .bash_history
-rw-r--r--. 1 katsuwo users 18 Aug 8 2019 .bash_logout
-rw-r--r--. 1 katsuwo users 193 Aug 8 2019 .bash_profile
-rw-r--r--. 1 katsuwo users 231 Aug 8 2019 .bashrc
drwxr-xr-x. 3 katsuwo users 22 Apr 16 13:43 .cache
drwxr-xr-x. 3 katsuwo users 22 Apr 16 13:43 .config
-rw-r--r--. 1 katsuwo users 4 Apr 16 17:00 index.html
SELinuxを無効にするには、/etc/selinux/configのSELINUXをdisableにして、機器をリブートする必要があります。
/etc/selinux/config
#SELINUX=enforcing
SELINUX=disabled
SELinuxの状態は、getenforceで確認できます。
$getenforce
Disabled
SELinuxが有効(enforcing)時に作成したファイルは、SELiuxを無効(disabled)にした後もドット"."が表示されたままになります。SELInuxを無効にした後に作成したファイルにはドット"."は表示されません。