Звучит так, как будто ваш сервер настроен с включенным Security-Enhanced Linux (SELinux). Если это так, ваш Apache, вероятно, настроен так, что он может обращаться только к специально помеченным каталогам.
Чтобы проверить, активен ли SELinux, попробуйте выполнить следующие команды:
cat /etc/sysconfig/selinux
Или:
sestatus
Обновление:
Если у вас не включен SELinux, возможно, это простая проблема с правами доступа. Недостаточно установить разрешение для вашего каталога на 777, пользователь Apache также должен иметь (выполнять) разрешение для каждого каталога, ведущего от корневого каталога к вашему домашнему каталогу. Кроме того, файлы, к которым вы хотите получить доступ, также должны иметь (чтение) разрешения для Apache.
Команды, которые вы должны выполнить:
chmod o+x /home
chmod o+rx /home/someuser
chmod o+r /home/someuser/*
(при условии, что ваш домашний каталог - /home/someuser) .
Если у вас есть подкаталоги, то вы должны повторить это и для них.
Не думаю, что это проблема шифрования. Тогда вы бы предпочли получить искаженные данные вместо ошибки разрешения. Если вы используете шифрование, то у вас, вероятно, есть каталог с именем Private в вашем домашнем каталоге. В любом случае, Apache не может получить доступ к зашифрованным данным. Вам необходимо отключить шифрование.