我試圖讀取一個PHP文件,我得到一個權限被拒絕的錯誤,雖然每個人都有讀取權限的文件。權限被拒絕,儘管適當的權限使用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配置
配置爲folllow符號鏈接(Options All
)。爲/var/lib/jenkins/
添加Directory
指令沒有區別。
<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
任何想法爲什麼我得到錯誤?
['is_writable()'](http://php.net/manual/en/function.is-writable.php)返回'FALSE'? – alex
是配置爲遵循符號鏈接的apache嗎? afaik有一個SymLink選項 – knittl
感謝您的評論,但請仔細閱讀該問題(我想閱讀該文件,是的,Apache配置遵循符號鏈接)。 – Max