Tôi đang cố đọc một tệp bằng PHP và tôi nhận được sự cho phép bị từ chối lỗi mặc dù mọi người đều có quyền truy cập đọc tệp.Quyền bị từ chối bất chấp các điều khoản thích hợp khi sử dụng PHP
Mã PHP:
$config=file_get_contents('/opt/jenkins/home/config.xml');
Lỗi:
Warning: file_get_contents(/opt/jenkins/home/config.xml): failed to open stream: Permission denied in [...]
Việc cho phép hệ thống tập tin:
Có một liên kết tượng trưng chỉ /opt/jenkins/home/
để /var/lib/jenkins
và mỗi cơ thể đã đọc quyền trên liên kết tượng trưng, thư mục thực tế và tệp.
$ 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 cấu hình
Cấu hình để folllow symlink (Options All
). Thêm một chỉ thị Directory
cho /var/lib/jenkins/
không có sự khác biệt.
<Directory /opt/jenkins/home/>
Options All
AllowOverride All
Order Allow,Deny
Allow from All
</Directory>
thông tin bổ sung
Cho dù tôi sử dụng đường dẫn thông qua các liên kết tượng trưng ("/opt/jenkins/home/config.xml"
) hoặc con đường thực ("/var/lib/jenkins/config.xml"
) Tôi có cùng một vấn đề.
apache2 version=2.2.14-5ubuntu8.4
php version=5.3.2-1ubuntu4.9
Bất kỳ ý tưởng nào về lý do tôi gặp lỗi?
[ 'is_writable()'] (http://php.net/manual/en/function.is-writable.php) trả về 'FALSE'? – alex
là apache được cấu hình để theo dõi các liên kết không? afaik có một tùy chọn SymLink – knittl
cảm ơn cho các ý kiến nhưng xin vui lòng đọc câu hỏi cẩn thận hơn (Tôi muốn đọc các tập tin, và có, apache sau được cấu hình để làm theo các liên kết). – Max