Я пытаюсь прочитать файл в 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
Настроена для отслеживания символических ссылок ( Параметры Все
). Добавление директивы 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
Любая идея, как почему я получаю сообщение об ошибке?