CentOS6.3とApache2.2.15を実行しています。
Apacheのデフォルト設定を使用しています。私が提供しているファイルは
/var/www/html
ここにそれらの2つがあります
[root@gisele html]# ls -l *-production-1.0.6.pdf
-r--r--r--. 1 root root 171769 Jan 1 21:12 copy-installation-production-1.0.6.pdf
-r--r--r--. 1 root root 171769 Jan 1 20:59 installation-production-1.0.6.pdf
コピーファイルは、
cp installation-production-1.0.6.pdf copy-installation-production-1.0.6.pdf
仮想ホストマッピングを介して、これらのドキュメントにアクセスしています。
copy-installation-production-1.0.6.pdf
が役立ちます。 installation-production-1.0.6.pdf
は403forbiddenを返します。
唯一の違いは、元のファイルが別のマシンからサーバーにコピーされたことです。
この元のファイルが機能しないのにコピーが機能する理由はありますか?
SELinuxを無効にすることは一時的な回避策であり、解決策ではありません。 ダンウォルシュを泣かせたくない ;)
次のいずれかのオプションを試してください。
chcon --reference=/var/www/html/FileThatCanBeServed /var/www/html/FileWithError403
または
chcon -R --reference=/var/www/html /var/www/html/
または
chcon -R -t httpd_sys_content_t /var/www/html/
ls -lZ
でアクセス可能なファイルのSELinuxコンテキストを常に確認してから、chcon
と--reference
オプションを使用して、コンテキストを他のファイルにコピーします。
ああ、SELinux。この質問と同じ確率: Apacheはいくつかのファイルを提供し、他のファイルは403を取得します
解決策であるSELinuxをオフにします。
http://www.crypt.gen.nz/selinux/disable_selinux.html
CentOSのインストールにプロンプトが表示されるはずです
Is this machine primarily a
Server (1) / Desktop (2)
1/2...? 1
Would you like to run into bizarre errors later on?
Y/N...? y
Installing SELinux.