Próbuję odczytać plik w PHP i otrzymuję błąd odmowy uprawnień, mimo że wszyscy mają dostęp do pliku do odczytu.Odmowa uprawnień pomimo odpowiednich uprawnień przy użyciu PHP
Kod PHP:
$config=file_get_contents('/opt/jenkins/home/config.xml');
Błąd:
Warning: file_get_contents(/opt/jenkins/home/config.xml): failed to open stream: Permission denied in [...]
Pozwolenie plików:
Jest dowiązaniem wskazując /opt/jenkins/home/
do /var/lib/jenkins
i każdy ciało ma uprawnienia do odczytu w dowiązaniu symbolicznym, folderze i pliku.
$ 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
konfiguracyjne apache'a
skonfigurowana do folllow symlinki (Options All
). Dodanie dyrektywy Directory
dla /var/lib/jenkins/
nie ma znaczenia.
<Directory /opt/jenkins/home/>
Options All
AllowOverride All
Order Allow,Deny
Allow from All
</Directory>
Dodatkowe informacje
Czy mogę użyć ścieżki przez dowiązanie symboliczne ("/opt/jenkins/home/config.xml"
) lub realnej ścieżki ("/var/lib/jenkins/config.xml"
) Mam ten sam problem.
apache2 version=2.2.14-5ubuntu8.4
php version=5.3.2-1ubuntu4.9
Każdy pomysł, dlaczego otrzymuję błąd?
[ 'is_writable()'] (http://php.net/manual/en/function.is-writable.php) zwraca 'FALSE'? – alex
czy apache jest skonfigurowany tak, aby śledzić dowiązania symboliczne? afaik istnieje opcja SymLink – knittl
dzięki za komentarze, ale proszę przeczytaj uważnie pytanie (chcę przeczytać plik, i tak, apache jest skonfigurowany tak, aby podążał za dowiązaniami symbolicznymi). – Max