NỘI DUNG
Tìm hiểu nguyên nhân.
Vừa rồi mình gặp khá nhiều trường hợp người dùng tải tệp lên qua SFTP, điều này gây ra sự cố về quyền và nhóm người dùng với PHP. Vì vậy nếu các tệp được tải lên bằng SFTP hoặc được giải nén bằng lệnh SSH, thì các tệp đó thuộc quyền sở hữu của root:root
, mà người dùng PHP sẽ gặp vấn đề về quyền không thể thực thi được
Vậy làm cách nào để xử lỗi này?
Để ngăn điều đó xảy ra, bạn hãy sử dụng trình quản lý tệp (File Manager) để tải lên và giải nén, bạn có thể sử dụng SFTP để tải lên và sau đó sử dụng trình quản lý tệp để giải nén, theo cách đó sẽ không gặp vấn đề về quyền. Tuy nhiên nếu file đã có sẳn thì để fix bạn hãy thực hiện như sau.
Bước 1: SSH vào và kiểm tra quyền của file.
ls -l /home/your-domain/public_html
Lưu ý: Nếu website bạn được lưu tại nơi khác hãy thay đổi /home/your-domain/public_html
bằng đường dẫn web của bạn.
VD: Web bạn đặt trong /var/www/html
bạn sẽ nhập vào đường dẫn này nhé.
Với lệnh trên sẽ giúp bạn kiểm tra xem vấn đề có thực sự là do quyền và chủ sở hữu gây ra hay không.
Sau khi ls -l
bạn sẽ thấy các file đều thuộc quyền root:root
. Đây chính là vấn đề và bạn cần tìm đúng user phù hợp để set lại owner.
Bước 2: Set Owner cho website.
Giả sử website đúng với đường dẫn ở trên, mình sẽ dùng lệnh sau để xem người dùng tương ứng.
ls -l /home
Như ảnh trên bạn sẽ thấy website dotrungquan.info
được dùng với người dùng là dotrung
và nhóm là dotrung
. Đã xác định được người dùng và nhóm bạn hãy thực hiện đặt lại cho chính xác.
Bạn hãy nhập lệnh sau để thay đổi chủ sở hữu cho web.
chown -R dotrung:dotrung /home/your-domain/public_html
Và nhớ lặp lại bước đầu tiên để kiểm tra lại xem chủ sở hữu đã được thay đổi thành công chưa.
Với ảnh trên website đã được gán với người dùng và nhóm chính xác mà website sử dụng. Bây giờ bạn hãy thực hiện kiểm tra lại website còn xuất hiện các lỗi trên nữa không nhé.
Cảm ơn bạn đã dành thời gian theo dõi. Nếu bạn còn cách nào hay và hữu ích hơn đừng quên chia sẽ lại cho mình nhé.