NỘI DUNG
Nguyên nhân vấn đề
Khi bạn làm điều gì đó và yêu cầu WordPress ghi vào hệ thống tệp, nó sẽ kiểm tra xem nó có quyền làm như vậy hay không bằng cách ghi một tệp tạm thời và thường có tên là temp-write-test-******
như ảnh minh hoạ bên dưới. Nếu kiểm tra này không thành công, nó sẽ yêu cầu chi tiết FTP để ghi các tệp vào máy chủ của bạn.
Cách xử lý
Cách 1: Sửa file.php
Bạn mở file wp-admin/includes/file.php
và tìm đến dòng thứ 843, để biết get_filesystem_method
Tại dòng 853
if ( getmyuid() == @fileowner($temp_file_name) )
Việc sử dụng getmyuid()
là sai đối với unix – thay vào đó phải là posix_getuid()
. Vấn đề là getmyuid()
sẽ trả về chủ sở hữu của tệp script không phải người dùng đang chạy script. Trên unix, điều đó có nghĩa là nếu tệp được cài đặt bởi root và máy chủ web đang chạy dưới dạng dữ liệu www của người dùng thì quá trình kiểm tra sẽ không thành công ngay cả khi nghĩ rằng tệp được ghi trong quá trình kiểm tra.
Vì vậy, để khắc phục, hãy thay đổi dòng với getmyuid()
thành:
if ( posix_getuid() == @fileowner($temp_file_name) )
Cách 2: (Khuyến nghị)
Với cách thứ 2 sẽ đơn giản hơn, bạn hãy mở file wp-config.php
sau đó thêm vào dòng sau.
define('FS_METHOD', 'direct');
Như vậy với 2 cách trên sẽ giúp bạn xử lý được vấn đề. Chúc bạn thực hiện thành công.