2012-09-14 38 views
5

Bất kỳ ai có ý tưởng về điều này? Tôi kiểm tra tệp với file_exists()is_writable(), cả hai đều trả về true. Tôi thiết lập các thư mục và tập tin để 777 chỉ để được an toàn là tốt, nhưng cố gắng fwrite() hoặc file_put_contents() cả hai kết quả không có sự thay đổi trong fileKhông thể ghi vào tệp, mặc dù is_writable trả về đúng

Đây là mã có liên quan:

$filePath = dirname(__FILE__) . '/' . 'myfile.txt'; 
file_put_contents($filePath, "waffles are delicious"); 
+0

Chúng có dẫn đến thông báo lỗi không? –

+0

@ IgnacioVazquez-Abrams không có thông báo lỗi: -/ – JoeCortopassi

+3

Giá trị trả về của 'file_put_contents()' –

Trả lời

1

Bạn đã kiểm tra quyền của tệp nhưng cũng có thể xem xét quyền sở hữu.

Tôi thường thấy các sự cố trong đó tệp được giải nén khỏi lưu trữ với uid/gid từ hệ thống gốc. Điều này thường xảy ra khi bạn tải lên và giải nén một kho lưu trữ cài đặt zip hoặc tar.gz của một khung công tác, CMS hoặc diễn đàn thay vì chờ tất cả các tệp được tải lên qua FTP.

Để thay đổi chủ sở hữu tệp, bạn cần phải thực hiện lệnh chown trong trình bao để thay đổi thành tên người dùng/nhóm tài khoản của bạn. Bạn có thể sẽ cần phải được root/su để làm điều này.

chown -R username:groupname *

-R làm cho nó đệ quy áp dụng cho tất cả các tệp trong tất cả các thư mục con.

0

Hãy thử xóa thẻ đóng php để đảm bảo đây không phải là vấn đề khoảng trắng.