Tôi biết đây là lỗi phổ biến với nhiều chuỗi nhưng tôi mệt mỏi vì tìm kiếm và tôi vẫn chưa giải quyết được. Khi tôi cố gắng để chạy các chức năng file_put_contents tôi nhận được lỗi sau:Không thể mở luồng trên file_put_contents bằng PHP trên CentOS 7
Warning: file_put_contents(test.txt): failed to open stream: Permission denied in /var/www/html/nurses/adminWriter.php on line 29
Tôi đã thực hiện câu trả lời phổ biến nhất, thay đổi các điều khoản của y tá thư mục và test.txt tập tin đến 777. Điều đó không hiệu quả.
Tôi hiện đang cài đặt mới máy chủ CentOS 7 mới nhất.
tôi đã tìm thấy rằng nếu tôi chạy script php thông qua giao diện điều khiển:
# php /var/www/html/nurses/adminWriter.php
Nó hoạt động tốt, tôi nhận được lỗi chỉ khi chạy nó thông qua trình duyệt, nhưng tôi thực sự cần phải chạy nó cách này.
Trân trọng!
Khi bạn chạy tập lệnh php thông qua apache, nó chạy như (bất kỳ người dùng nào bạn chỉ định), thường là "apache". Khi bạn chạy một tập lệnh php thông qua giao diện điều khiển, bạn đang chạy nó như bất cứ điều gì bạn đang đăng nhập như. Đảm bảo người dùng "apache" (hoặc bất kỳ điều gì) có thể truy cập tệp đó (bao gồm bất kỳ thư mục cha nào). Ngoài ra, bạn có thể thử sử dụng một đường dẫn tuyệt đối để test.txt - bạn có thể đang cố gắng viết một nơi nào đó mà bạn không mong đợi. – jedwards
Bạn đã bỏ qua báo giá theo mục đích? Hãy thử rằng: 'file_put_contents (__ DIR__. '/test.txt');' – alfallouji
Bạn có nghĩa là làm một cái gì đó như: # chown -R apache: apache/var/www/html/y tá/ – danielnovais92