私は新しいFedora 16インストールで作業していて、Apacheを起動して実行しようとしています。私はLinuxに、CentOSにもある程度精通していますが、FedoraやSELinux(それが何であれ)についてはほとんど経験がありません。
最初は、Apacheをインストールした後、サンプルのWebページすら見ることができませんでした。私はいくつかの検索を行い、最終的にiptablesを編集してその問題を修正しました。
Sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
Sudo iptables-save
私は先に進んで、権限が正しく設定されていることを確認して、Webルートにいくつかのファイルをドロップし始めました。
$ ls -Rlhp /var/www/html/
/var/www/html/:
total 8.0K
drwxr-xr-x. 2 Apache root 4.0K Apr 20 22:47 files/
/var/www/html/files:
total 25M
-rw-r--r--. 1 Apache users 25M Apr 20 22:47 SRR022918.errors.tar.gz
しかし、対応するURL(my.server.edu/files/SRR022918.errors.tar.gz
)、403 Permission deniedエラーが発生しました。 Apacheエラーログを確認したところ、このメッセージが見つかりました。
[Fri Apr 20 23:09:55 2012] [error] [client xxx.xxx.xx.xx] (13)Permission denied: file permissions deny server access: /var/www/html/files/SRR022918.errors.tar.gz
ファイルとディレクトリのアクセス許可を777に設定してみましたが、問題は解決しませんでした。これは本当に怪しいので、これはSELinuxと関係があると思います。 SELinuxの経験がないので、順調に進んでいますか?もしそうなら、これをどのように修正しますか?
メモリが機能する場合は、おそらくchcon -R -h -t httpd_sys_content_t /var/www/html
を実行する必要があります
これにより、コンテンツディレクトリがApacheの適切なコンテキストに再帰的に設定されます。
このファイル権限の問題は、ご想像のとおり、SELinuxが原因です。かなり複雑ですが、CentOSの優れた人々が あなたを動かすためのかなり良いwiki をまとめました。つまり、SELinuxを無効にする(まったく悪い考え)、許可モードに設定する(少し悪い考えを減らす)、またはSELinuxで作業することができます。 wikiはかなり簡潔な方法で詳細を説明しているので、DRYにして、wikiを読んでもらいます。
ファイルを/ var/www/htmlにコピーし、そのフォルダーのデフォルトコンテキストを復元することで、次のように修正しました。
restorecon -Rv /var/www/html