Я пытаюсь прочитать файл на PHP и получаю сообщение об ошибке «Отказано в доступе», хотя у всех есть доступ на чтение к файлу.
Код PHP:
$config=file_get_contents('/opt/jenkins/home/config.xml');
Ошибка:
Warning: file_get_contents(/opt/jenkins/home/config.xml): failed to open stream: Permission denied in [...]
Разрешение файловой системы:
Существует символическая ссылка, указывающая /opt/jenkins/home/
на /var/lib/jenkins
, и каждый имеет разрешение на чтение символической ссылки, фактической папки и файла.
$ ls -lh /opt/jenkins/
lrwxrwxrwx 1 sysadmin sysadmin 16 2011-08-04 08:12 home -> /var/lib/jenkins
$ ls -lh /var/lib/ | grep jenkins
drwxr-xr-- 6 jenkins adm 4.0K 2011-08-04 10:04 jenkins
$ ls -lh /var/lib/jenkins/config.xml
-rwxr-xr-- 1 jenkins adm 3.9K 2011-08-04 10:05 /var/lib/jenkins/config.xml
Конфигурация Apache
Настроен на следующие символические ссылки (Options All
). Добавление директивы Directory
для /var/lib/jenkins/
не имеет значения.
<Directory /opt/jenkins/home/>
Options All
AllowOverride All
Order Allow,Deny
Allow from All
</Directory>
Дополнительная информация
Использую ли я путь через символическую ссылку ("/opt/jenkins/home/config.xml"
) или реальный путь ("/var/lib/jenkins/config.xml"
), у меня та же проблема.
apache2 version=2.2.14-5ubuntu8.4
php version=5.3.2-1ubuntu4.9
Есть идеи, почему я получаю ошибку?