我试图读取一个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